Commit 07bb2f62 authored by Alexander van Heukelum's avatar Alexander van Heukelum Committed by Ingo Molnar

i386: trace_hardirqs_fixup should now not be necessary: irqs are off.

The exception handlers in entry_32.S should now all call
TRACE_IRQS_OFF before calling the C code. The calls to
trace_hardirqs_fixup should now be unnecessary. Remove them.
Signed-off-by: default avatarAlexander van Heukelum <heukelum@fastmail.fm>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent a790392f
...@@ -533,7 +533,6 @@ do_trap(int trapnr, int signr, char *str, int vm86, struct pt_regs *regs, ...@@ -533,7 +533,6 @@ do_trap(int trapnr, int signr, char *str, int vm86, struct pt_regs *regs,
#define DO_ERROR(trapnr, signr, str, name) \ #define DO_ERROR(trapnr, signr, str, name) \
void do_##name(struct pt_regs *regs, long error_code) \ void do_##name(struct pt_regs *regs, long error_code) \
{ \ { \
trace_hardirqs_fixup(); \
if (notify_die(DIE_TRAP, str, regs, error_code, trapnr, signr) \ if (notify_die(DIE_TRAP, str, regs, error_code, trapnr, signr) \
== NOTIFY_STOP) \ == NOTIFY_STOP) \
return; \ return; \
...@@ -576,7 +575,6 @@ void do_##name(struct pt_regs *regs, long error_code) \ ...@@ -576,7 +575,6 @@ void do_##name(struct pt_regs *regs, long error_code) \
info.si_errno = 0; \ info.si_errno = 0; \
info.si_code = sicode; \ info.si_code = sicode; \
info.si_addr = (void __user *)siaddr; \ info.si_addr = (void __user *)siaddr; \
trace_hardirqs_fixup(); \
if (notify_die(DIE_TRAP, str, regs, error_code, trapnr, signr) \ if (notify_die(DIE_TRAP, str, regs, error_code, trapnr, signr) \
== NOTIFY_STOP) \ == NOTIFY_STOP) \
return; \ return; \
...@@ -860,15 +858,9 @@ void restart_nmi(void) ...@@ -860,15 +858,9 @@ void restart_nmi(void)
void __kprobes do_int3(struct pt_regs *regs, long error_code) void __kprobes do_int3(struct pt_regs *regs, long error_code)
{ {
#ifdef CONFIG_KPROBES #ifdef CONFIG_KPROBES
trace_hardirqs_fixup();
if (notify_die(DIE_INT3, "int3", regs, error_code, 3, SIGTRAP) if (notify_die(DIE_INT3, "int3", regs, error_code, 3, SIGTRAP)
== NOTIFY_STOP) == NOTIFY_STOP)
return; return;
/*
* This is an interrupt gate, because kprobes wants interrupts
* disabled. Normal trap handlers don't.
*/
conditional_sti(regs); conditional_sti(regs);
#else #else
if (notify_die(DIE_TRAP, "int3", regs, error_code, 3, SIGTRAP) if (notify_die(DIE_TRAP, "int3", regs, error_code, 3, SIGTRAP)
...@@ -907,8 +899,6 @@ void __kprobes do_debug(struct pt_regs *regs, long error_code) ...@@ -907,8 +899,6 @@ void __kprobes do_debug(struct pt_regs *regs, long error_code)
unsigned int condition; unsigned int condition;
int si_code; int si_code;
trace_hardirqs_fixup();
get_debugreg(condition, 6); get_debugreg(condition, 6);
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment