mirror of
https://github.com/torvalds/linux.git
synced 2024-11-17 09:31:50 +00:00
arm64: debug: Remove redundant user_mode(regs) checks from debug handlers
Now that the debug hook dispatching code takes the triggering exception level into account, there's no need for the hooks themselves to poke around with user_mode(regs). Reviewed-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
This commit is contained in:
parent
a22d570aee
commit
fb610f2a20
@ -244,9 +244,6 @@ int kgdb_arch_handle_exception(int exception_vector, int signo,
|
||||
|
||||
static int kgdb_brk_fn(struct pt_regs *regs, unsigned int esr)
|
||||
{
|
||||
if (user_mode(regs))
|
||||
return DBG_HOOK_ERROR;
|
||||
|
||||
kgdb_handle_exception(1, SIGTRAP, 0, regs);
|
||||
return DBG_HOOK_HANDLED;
|
||||
}
|
||||
@ -254,9 +251,6 @@ NOKPROBE_SYMBOL(kgdb_brk_fn)
|
||||
|
||||
static int kgdb_compiled_brk_fn(struct pt_regs *regs, unsigned int esr)
|
||||
{
|
||||
if (user_mode(regs))
|
||||
return DBG_HOOK_ERROR;
|
||||
|
||||
compiled_break = 1;
|
||||
kgdb_handle_exception(1, SIGTRAP, 0, regs);
|
||||
|
||||
@ -266,7 +260,7 @@ NOKPROBE_SYMBOL(kgdb_compiled_brk_fn);
|
||||
|
||||
static int kgdb_step_brk_fn(struct pt_regs *regs, unsigned int esr)
|
||||
{
|
||||
if (user_mode(regs) || !kgdb_single_step)
|
||||
if (!kgdb_single_step)
|
||||
return DBG_HOOK_ERROR;
|
||||
|
||||
kgdb_handle_exception(1, SIGTRAP, 0, regs);
|
||||
|
@ -445,9 +445,6 @@ kprobe_single_step_handler(struct pt_regs *regs, unsigned int esr)
|
||||
struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
|
||||
int retval;
|
||||
|
||||
if (user_mode(regs))
|
||||
return DBG_HOOK_ERROR;
|
||||
|
||||
/* return error if this is not our step */
|
||||
retval = kprobe_ss_hit(kcb, instruction_pointer(regs));
|
||||
|
||||
@ -468,9 +465,6 @@ static struct step_hook kprobes_step_hook = {
|
||||
static int __kprobes
|
||||
kprobe_breakpoint_handler(struct pt_regs *regs, unsigned int esr)
|
||||
{
|
||||
if (user_mode(regs))
|
||||
return DBG_HOOK_ERROR;
|
||||
|
||||
kprobe_handler(regs);
|
||||
return DBG_HOOK_HANDLED;
|
||||
}
|
||||
|
@ -171,7 +171,7 @@ int arch_uprobe_exception_notify(struct notifier_block *self,
|
||||
static int uprobe_breakpoint_handler(struct pt_regs *regs,
|
||||
unsigned int esr)
|
||||
{
|
||||
if (user_mode(regs) && uprobe_pre_sstep_notifier(regs))
|
||||
if (uprobe_pre_sstep_notifier(regs))
|
||||
return DBG_HOOK_HANDLED;
|
||||
|
||||
return DBG_HOOK_ERROR;
|
||||
@ -182,13 +182,9 @@ static int uprobe_single_step_handler(struct pt_regs *regs,
|
||||
{
|
||||
struct uprobe_task *utask = current->utask;
|
||||
|
||||
if (user_mode(regs)) {
|
||||
WARN_ON(utask &&
|
||||
(instruction_pointer(regs) != utask->xol_vaddr + 4));
|
||||
|
||||
if (uprobe_post_sstep_notifier(regs))
|
||||
return DBG_HOOK_HANDLED;
|
||||
}
|
||||
WARN_ON(utask && (instruction_pointer(regs) != utask->xol_vaddr + 4));
|
||||
if (uprobe_post_sstep_notifier(regs))
|
||||
return DBG_HOOK_HANDLED;
|
||||
|
||||
return DBG_HOOK_ERROR;
|
||||
}
|
||||
|
@ -947,9 +947,6 @@ int is_valid_bugaddr(unsigned long addr)
|
||||
|
||||
static int bug_handler(struct pt_regs *regs, unsigned int esr)
|
||||
{
|
||||
if (user_mode(regs))
|
||||
return DBG_HOOK_ERROR;
|
||||
|
||||
switch (report_bug(regs->pc, regs)) {
|
||||
case BUG_TRAP_TYPE_BUG:
|
||||
die("Oops - BUG", regs, 0);
|
||||
@ -988,9 +985,6 @@ static int kasan_handler(struct pt_regs *regs, unsigned int esr)
|
||||
u64 addr = regs->regs[0];
|
||||
u64 pc = regs->pc;
|
||||
|
||||
if (user_mode(regs))
|
||||
return DBG_HOOK_ERROR;
|
||||
|
||||
kasan_report(addr, size, write, pc);
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user