Skip to content
  • Suresh Siddha's avatar
    x86: x2apic, IR: remove reinit_intr_remapped_IO_APIC() · ff166cb5
    Suresh Siddha authored
    
    
    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: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
    Acked-by: default avatarWeidong Han <weidong.han@intel.com>
    Cc: dwmw2@infradead.org
    LKML-Reference: <20090420200450.552359000@linux-os.sc.intel.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    ff166cb5