kgdb, x86, arm, mips, powerpc: ignore user space single stepping
On the x86 arch, user space single step exceptions should be ignored if they occur in the kernel space, such as ptrace stepping through a system call. First check if it is kgdb that is executing a single step, then ensure it is not an accidental traversal into the user space, while in kgdb, any other time the TIF_SINGLESTEP is set, kgdb should ignore the exception. On x86, arm, mips and powerpc, the kgdb_contthread usage was inconsistent with the way single stepping is implemented in the kgdb core. The arch specific stub should always set the kgdb_cpu_doing_single_step correctly if it is single stepping. This allows kgdb to correctly process an instruction steps if ptrace happens to be requesting an instruction step over a system call. Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
This commit is contained in:
@@ -236,8 +236,7 @@ int kgdb_arch_handle_exception(int vector, int signo, int err_code,
|
||||
|
||||
atomic_set(&kgdb_cpu_doing_single_step, -1);
|
||||
if (remcom_in_buffer[0] == 's')
|
||||
if (kgdb_contthread)
|
||||
atomic_set(&kgdb_cpu_doing_single_step, cpu);
|
||||
atomic_set(&kgdb_cpu_doing_single_step, cpu);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user