From: Ingo Molnar Date: Fri, 13 Feb 2009 08:44:22 +0000 (+0100) Subject: Merge branch 'linus' into x86/apic X-Git-Url: http://pilppa.org/gitweb/?a=commitdiff_plain;h=f8a6b2b9cee298a9663cbe38ce1eb5240987cb62;p=linux-2.6-omap-h63xx.git Merge branch 'linus' into x86/apic Conflicts: arch/x86/kernel/acpi/boot.c arch/x86/mm/fault.c --- f8a6b2b9cee298a9663cbe38ce1eb5240987cb62 diff --cc arch/arm/kernel/irq.c index 4bb723eadad,363db186cb9..45eacb5a2ec --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c @@@ -101,14 -101,9 +101,14 @@@ unlock /* Handle bad interrupts */ static struct irq_desc bad_irq_desc = { .handle_irq = handle_bad_irq, - .lock = SPIN_LOCK_UNLOCKED + .lock = __SPIN_LOCK_UNLOCKED(bad_irq_desc.lock), }; +#ifdef CONFIG_CPUMASK_OFFSTACK +/* We are not allocating bad_irq_desc.affinity or .pending_mask */ +#error "ARM architecture does not support CONFIG_CPUMASK_OFFSTACK." +#endif + /* * do_IRQ handles all hardware IRQ's. Decoded IRQs should not * come via this function. Instead, they should provide their diff --cc arch/x86/mm/fault.c index d3eee74f830,c76ef1d701c..2a9ea3aee49 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@@ -806,8 -601,8 +806,6 @@@ void __kprobes do_page_fault(struct pt_ /* get the address */ address = read_cr2(); - if (unlikely(notify_page_fault(regs))) - return; - si_code = SEGV_MAPERR; - if (unlikely(kmmio_fault(regs, address))) return; @@@ -834,17 -629,23 +832,22 @@@ return; /* Can handle a stale RO->RW TLB */ - if (spurious_fault(address, error_code)) + if (spurious_fault(error_code, address)) return; + /* kprobes don't want to hook the spurious faults. */ + if (notify_page_fault(regs)) + return; /* * Don't take the mm semaphore here. If we fixup a prefetch * fault we could otherwise deadlock. */ - goto bad_area_nosemaphore; + bad_area_nosemaphore(regs, error_code, address); + return; } - /* kprobes don't want to hook the spurious faults. */ - if (notify_page_fault(regs)) ++ if (unlikely(notify_page_fault(regs))) + return; - /* * It's safe to allow irq's after cr2 has been saved and the * vmalloc fault has been handled.