mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-14 05:12:17 +00:00
arm64: Remove the get_thread_info() function
This function was introduced by previous commits implementing UAO. However, it can be replaced with task_thread_info() in uao_thread_switch() or get_fs() in do_page_fault() (the latter being called only on the current context, so no need for using the saved pt_regs). Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
parent
7054419600
commit
e950631e84
@ -85,12 +85,6 @@ static inline struct thread_info *current_thread_info(void)
|
|||||||
return (struct thread_info *)sp_el0;
|
return (struct thread_info *)sp_el0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Access struct thread_info of another thread */
|
|
||||||
static inline struct thread_info *get_thread_info(unsigned long thread_stack)
|
|
||||||
{
|
|
||||||
return (struct thread_info *)(thread_stack & ~(THREAD_SIZE - 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
#define thread_saved_pc(tsk) \
|
#define thread_saved_pc(tsk) \
|
||||||
((unsigned long)(tsk->thread.cpu_context.pc))
|
((unsigned long)(tsk->thread.cpu_context.pc))
|
||||||
#define thread_saved_sp(tsk) \
|
#define thread_saved_sp(tsk) \
|
||||||
|
@ -315,15 +315,12 @@ static void tls_thread_switch(struct task_struct *next)
|
|||||||
/* Restore the UAO state depending on next's addr_limit */
|
/* Restore the UAO state depending on next's addr_limit */
|
||||||
static void uao_thread_switch(struct task_struct *next)
|
static void uao_thread_switch(struct task_struct *next)
|
||||||
{
|
{
|
||||||
unsigned long next_sp = next->thread.cpu_context.sp;
|
if (IS_ENABLED(CONFIG_ARM64_UAO)) {
|
||||||
|
if (task_thread_info(next)->addr_limit == KERNEL_DS)
|
||||||
if (IS_ENABLED(CONFIG_ARM64_UAO) &&
|
asm(ALTERNATIVE("nop", SET_PSTATE_UAO(1), ARM64_HAS_UAO));
|
||||||
get_thread_info(next_sp)->addr_limit == KERNEL_DS)
|
else
|
||||||
asm(ALTERNATIVE("nop", SET_PSTATE_UAO(1), ARM64_HAS_UAO,
|
asm(ALTERNATIVE("nop", SET_PSTATE_UAO(0), ARM64_HAS_UAO));
|
||||||
CONFIG_ARM64_UAO));
|
}
|
||||||
else
|
|
||||||
asm(ALTERNATIVE("nop", SET_PSTATE_UAO(0), ARM64_HAS_UAO,
|
|
||||||
CONFIG_ARM64_UAO));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -234,7 +234,7 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int esr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (permission_fault(esr) && (addr < USER_DS)) {
|
if (permission_fault(esr) && (addr < USER_DS)) {
|
||||||
if (get_thread_info(regs->sp)->addr_limit == KERNEL_DS)
|
if (get_fs() == KERNEL_DS)
|
||||||
panic("Accessing user space memory with fs=KERNEL_DS");
|
panic("Accessing user space memory with fs=KERNEL_DS");
|
||||||
|
|
||||||
if (!search_exception_tables(regs->pc))
|
if (!search_exception_tables(regs->pc))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user