From 143a5d325d35efb1b29dcb8d6031cf27107e183a Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Thu, 25 Oct 2007 14:01:10 +0200 Subject: lockdep: fixup irq tracing Ensure we fixup the IRQ state before we hit any locking code. Signed-off-by: Peter Zijlstra Signed-off-by: Ingo Molnar --- arch/x86/mm/fault_32.c | 5 +++++ arch/x86/mm/fault_64.c | 5 +++++ 2 files changed, 10 insertions(+) (limited to 'arch/x86/mm') diff --git a/arch/x86/mm/fault_32.c b/arch/x86/mm/fault_32.c index 503dfc05111..2e542e89a3e 100644 --- a/arch/x86/mm/fault_32.c +++ b/arch/x86/mm/fault_32.c @@ -303,6 +303,11 @@ fastcall void __kprobes do_page_fault(struct pt_regs *regs, int write, si_code; int fault; + /* + * We can fault from pretty much anywhere, with unknown IRQ state. + */ + trace_hardirqs_fixup(); + /* get the address */ address = read_cr2(); diff --git a/arch/x86/mm/fault_64.c b/arch/x86/mm/fault_64.c index 644b4f7ece1..0e26230669c 100644 --- a/arch/x86/mm/fault_64.c +++ b/arch/x86/mm/fault_64.c @@ -304,6 +304,11 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, unsigned long flags; siginfo_t info; + /* + * We can fault from pretty much anywhere, with unknown IRQ state. + */ + trace_hardirqs_fixup(); + tsk = current; mm = tsk->mm; prefetchw(&mm->mmap_sem); -- cgit v1.2.3