aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/io_apic.h
diff options
context:
space:
mode:
authorSuresh Siddha <suresh.b.siddha@intel.com>2009-03-16 17:05:03 -0700
committerH. Peter Anvin <hpa@linux.intel.com>2009-03-17 15:45:29 -0700
commit05c3dc2c4b60387769cbe73174347de4cf85f0c9 (patch)
tree7e5918518c5f22f6121ff885283bef5397a0a842 /arch/x86/include/asm/io_apic.h
parentx86, x2apic: cleanup ifdef CONFIG_INTR_REMAP in io_apic code (diff)
downloadlinux-dev-05c3dc2c4b60387769cbe73174347de4cf85f0c9.tar.xz
linux-dev-05c3dc2c4b60387769cbe73174347de4cf85f0c9.zip
x86, ioapic: Fix non atomic allocation with interrupts disabled
Impact: fix possible race save_mask_IO_APIC_setup() was using non atomic memory allocation while getting called with interrupts disabled. Fix this by splitting this into two different function. Allocation part save_IO_APIC_setup() now happens before disabling interrupts. Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/include/asm/io_apic.h')
-rw-r--r--arch/x86/include/asm/io_apic.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/include/asm/io_apic.h b/arch/x86/include/asm/io_apic.h
index ffcd08f96e47..373cc2bbcad2 100644
--- a/arch/x86/include/asm/io_apic.h
+++ b/arch/x86/include/asm/io_apic.h
@@ -162,7 +162,8 @@ extern int (*ioapic_renumber_irq)(int ioapic, int irq);
extern void ioapic_init_mappings(void);
#ifdef CONFIG_X86_64
-extern int save_mask_IO_APIC_setup(void);
+extern int save_IO_APIC_setup(void);
+extern void mask_IO_APIC_setup(void);
extern void restore_IO_APIC_setup(void);
extern void reinit_intr_remapped_IO_APIC(int);
#endif