• Suresh Siddha's avatar
    x86: Force irq complete move during cpu offline · a5e74b84
    Suresh Siddha authored
    When a cpu goes offline, fixup_irqs() try to move irq's
    currently destined to the offline cpu to a new cpu. But this
    attempt will fail if the irq is recently moved to this cpu and
    the irq still hasn't arrived at this cpu (for non intr-remapping
    platforms this is when we free the vector allocation at the
    previous destination) that is about to go offline.
    
    This will endup with the interrupt subsystem still pointing the
    irq to the offline cpu, causing that irq to not work any more.
    
    Fix this by forcing the irq to complete its move (its been a
    long time we moved the irq to this cpu which we are offlining
    now) and then move this irq to a new cpu before this cpu goes
    offline.
    Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
    Acked-by: default avatarGary Hade <garyhade@us.ibm.com>
    Cc: Eric W. Biederman <ebiederm@xmission.com>
    LKML-Reference: <20091026230001.848830905@sbs-t61.sc.intel.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    a5e74b84
irq.c 8.34 KB