Loading arch/x86/kernel/traps_64.c +28 −28 Original line number Diff line number Diff line Loading @@ -630,16 +630,17 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs, { struct task_struct *tsk = current; if (user_mode(regs)) { if (!user_mode(regs)) goto kernel_trap; /* * We want error_code and trap_no set for userspace * faults and kernelspace faults which result in * die(), but not kernelspace faults which are fixed * up. die() gives the process no chance to handle * the signal and notice the kernel fault information, * so that won't result in polluting the information * about previously queued, but not yet delivered, * faults. See also do_general_protection below. * We want error_code and trap_no set for userspace faults and * kernelspace faults which result in die(), but not * kernelspace faults which are fixed up. die() gives the * process no chance to handle the signal and notice the * kernel fault information, so that won't result in polluting * the information about previously queued, but not yet * delivered, faults. See also do_general_protection below. */ tsk->thread.error_code = error_code; tsk->thread.trap_no = trapnr; Loading @@ -659,9 +660,8 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs, else force_sig(signr, tsk); return; } kernel_trap: if (!fixup_exception(regs)) { tsk->thread.error_code = error_code; tsk->thread.trap_no = trapnr; Loading Loading
arch/x86/kernel/traps_64.c +28 −28 Original line number Diff line number Diff line Loading @@ -630,16 +630,17 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs, { struct task_struct *tsk = current; if (user_mode(regs)) { if (!user_mode(regs)) goto kernel_trap; /* * We want error_code and trap_no set for userspace * faults and kernelspace faults which result in * die(), but not kernelspace faults which are fixed * up. die() gives the process no chance to handle * the signal and notice the kernel fault information, * so that won't result in polluting the information * about previously queued, but not yet delivered, * faults. See also do_general_protection below. * We want error_code and trap_no set for userspace faults and * kernelspace faults which result in die(), but not * kernelspace faults which are fixed up. die() gives the * process no chance to handle the signal and notice the * kernel fault information, so that won't result in polluting * the information about previously queued, but not yet * delivered, faults. See also do_general_protection below. */ tsk->thread.error_code = error_code; tsk->thread.trap_no = trapnr; Loading @@ -659,9 +660,8 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs, else force_sig(signr, tsk); return; } kernel_trap: if (!fixup_exception(regs)) { tsk->thread.error_code = error_code; tsk->thread.trap_no = trapnr; Loading