aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic/io_apic.c
diff options
context:
space:
mode:
authorSuresh Siddha <suresh.b.siddha@intel.com>2009-04-20 16:02:30 -0400
committerIngo Molnar <mingo@elte.hu>2009-04-22 06:03:04 -0400
commitff166cb57a17124af75714a9c11f448f56f1a4a3 (patch)
tree3f8ea84c24a7dbe82a35172ecc7203880d755ffa /arch/x86/kernel/apic/io_apic.c
parent9d6c26e73bd248c286bb3597aaf788716e8fcceb (diff)
x86: x2apic, IR: remove reinit_intr_remapped_IO_APIC()
When interrupt-remapping is enabled, we are relying on setup_IO_APIC_irqs() to configure remapped entries in the IO-APIC, which comes little bit later after enabling interrupt-remapping. Meanwhile, restoration of old io-apic entries after enabling interrupt-remapping will not make the interrupts through io-apic functional anyway. So remove the unnecessary reinit_intr_remapped_IO_APIC() step. The longer story: When interrupt-remapping is enabled, IO-APIC entries need to be setup in the re-mappable format (pointing to interrupt-remapping table entries setup by the OS). This remapping configuration is happening in the same place where we traditionally configure IO-APIC (i.e., in setup_IO_APIC_irqs()). So when we enable interrupt-remapping successfully, there is no need to restore old io-apic RTE entries before we actually do a complete configuration shortly in setup_IO_APIC_irqs(). Old IO-APIC RTE's may be in traditional format (non re-mappable) or in re-mappable format pointing to interrupt-remapping table entries setup by BIOS. Restoring both of these will not make IO-APIC functional. We have to rely on setup_IO_APIC_irqs() for proper configuration by OS. So I am removing this unnecessary and broken step. [ Impact: remove unnecessary/broken IO-APIC setup step ] Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> Acked-by: Weidong Han <weidong.han@intel.com> Cc: dwmw2@infradead.org LKML-Reference: <20090420200450.552359000@linux-os.sc.intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/apic/io_apic.c')
-rw-r--r--arch/x86/kernel/apic/io_apic.c14
1 files changed, 0 insertions, 14 deletions
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 4baa9cbd630a..8aef5f9d9479 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -833,20 +833,6 @@ int restore_IO_APIC_setup(struct IO_APIC_route_entry **ioapic_entries)
833 return 0; 833 return 0;
834} 834}
835 835
836void reinit_intr_remapped_IO_APIC(int intr_remapping,
837 struct IO_APIC_route_entry **ioapic_entries)
838
839{
840 /*
841 * for now plain restore of previous settings.
842 * TBD: In the case of OS enabling interrupt-remapping,
843 * IO-APIC RTE's need to be setup to point to interrupt-remapping
844 * table entries. for now, do a plain restore, and wait for
845 * the setup_IO_APIC_irqs() to do proper initialization.
846 */
847 restore_IO_APIC_setup(ioapic_entries);
848}
849
850void free_ioapic_entries(struct IO_APIC_route_entry **ioapic_entries) 836void free_ioapic_entries(struct IO_APIC_route_entry **ioapic_entries)
851{ 837{
852 int apic; 838 int apic;