aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2009-06-08 05:57:43 -0400
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2009-07-14 16:32:49 -0400
commit890aeacf64c55a7ada7054a140d249ab13899f2d (patch)
tree799eb5d7904a62e68c02a746c6bbc7f14c9e9c59 /arch/x86/kernel/apic
parent2f210deba9887dd9143b63b217506f1ac152e91c (diff)
x86/ioapic.c: unify __mask_IO_APIC_irq()
The main difference between 32 and 64-bit __mask_IO_APIC_irq() does a readback from the I/O APIC to synchronize it. If there's a hardware requirement to do a readback sync after updating an APIC register, then it will be a hardware requrement regardless of whether the kernel is compiled 32 or 64-bit. Unify __mask_IO_APIC_irq() using the 64-bit version which always syncs with io_apic_sync(). Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Diffstat (limited to 'arch/x86/kernel/apic')
-rw-r--r--arch/x86/kernel/apic/io_apic.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 82271eb87bb0..f8aa5461071b 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -580,7 +580,6 @@ static void __unmask_IO_APIC_irq(struct irq_cfg *cfg)
580 io_apic_modify_irq(cfg, ~IO_APIC_REDIR_MASKED, 0, NULL); 580 io_apic_modify_irq(cfg, ~IO_APIC_REDIR_MASKED, 0, NULL);
581} 581}
582 582
583#ifdef CONFIG_X86_64
584static void io_apic_sync(struct irq_pin_list *entry) 583static void io_apic_sync(struct irq_pin_list *entry)
585{ 584{
586 /* 585 /*
@@ -596,12 +595,8 @@ static void __mask_IO_APIC_irq(struct irq_cfg *cfg)
596{ 595{
597 io_apic_modify_irq(cfg, ~0, IO_APIC_REDIR_MASKED, &io_apic_sync); 596 io_apic_modify_irq(cfg, ~0, IO_APIC_REDIR_MASKED, &io_apic_sync);
598} 597}
599#else /* CONFIG_X86_32 */
600static void __mask_IO_APIC_irq(struct irq_cfg *cfg)
601{
602 io_apic_modify_irq(cfg, ~0, IO_APIC_REDIR_MASKED, NULL);
603}
604 598
599#ifdef CONFIG_X86_32
605static void __mask_and_edge_IO_APIC_irq(struct irq_cfg *cfg) 600static void __mask_and_edge_IO_APIC_irq(struct irq_cfg *cfg)
606{ 601{
607 io_apic_modify_irq(cfg, ~IO_APIC_REDIR_LEVEL_TRIGGER, 602 io_apic_modify_irq(cfg, ~IO_APIC_REDIR_LEVEL_TRIGGER,