• Milton Miller's avatar
    powerpc/xics: Update default_server during migrate_irqs_away · 302905a3
    Milton Miller authored
    Currently, every time we determine which irq server to use, we check if
    default_server, which is the id of the bootcpu, is still online.  But
    default_server is a hardware cpu, not the logical cpu id needed to index
    cpu_online_map.
    
    Since the default server can only go offline during a cpu hotplug event,
    explicitly check the default server and choose the new one when we move
    irqs away from the cpu being offlined.
    
    This has the added benefit of only needing the boot_cpuid to be updated
    and not relying on the cpu being marked offline during migrate_irqs_away.
    
    Also, since xics_update_irq_servers only reads device tree information, we
    can call it before xics_init_host in xics_init_IRQ and then default_server
    will always be valid when we can reach get_irq_server via the host ops.
    Signed-off-by: default avatarMilton Miller <miltonm@bga.com>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    302905a3
xics.c 19.1 KB