• W
    x86, intr-remap: fix ack for interrupt remapping · 5d0ae2db
    Weidong Han 提交于
    Shouldn't call ack_apic_edge() in ir_ack_apic_edge(), because
    ack_apic_edge() does more than just ack: it also does irq migration
    in the non-interrupt-remapping case. But there is no such need for
    interrupt-remapping case, as irq migration is done in the process
    context.
    
    Similarly, ir_ack_apic_level() shouldn't call ack_apic_level, and
    instead should do the local cpu's EOI + directed EOI to the io-apic.
    
    ack_x2APIC_irq() is not neccessary, because ack_APIC_irq() will use MSR
    write for x2apic, and uncached write for non-x2apic.
    
    [ Impact: simplify/standardize intr-remap IRQ acking, fix on !x2apic ]
    Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
    Signed-off-by: NWeidong Han <weidong.han@intel.com>
    Acked-by: NDavid Woodhouse <David.Woodhouse@intel.com>
    Cc: iommu@lists.linux-foundation.org
    Cc: allen.m.kay@intel.com
    Cc: fenghua.yu@intel.com
    LKML-Reference: <1239957736-6161-3-git-send-email-weidong.han@intel.com>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    5d0ae2db
apic.h 13.2 KB