• Thomas Gleixner's avatar
    genirq: Handle managed irqs gracefully in irq_startup() · 761ea388
    Thomas Gleixner authored
    Affinity managed interrupts should keep their assigned affinity accross CPU
    hotplug. To avoid magic hackery in device drivers, the core code shall
    manage them transparently and set these interrupts into a managed shutdown
    state when the last CPU of the assigned affinity mask goes offline. The
    interrupt will be restarted when one of the CPUs in the assigned affinity
    mask comes back online.
    
    Add the necessary logic to irq_startup(). If an interrupt is requested and
    started up, the code checks whether it is affinity managed and if so, it
    checks whether a CPU in the interrupts affinity mask is online. If not, it
    puts the interrupt into managed shutdown state. 
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Keith Busch <keith.busch@intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Christoph Hellwig <hch@lst.de>
    Link: http://lkml.kernel.org/r/20170619235447.189851170@linutronix.de
    761ea388
chip.c 32.7 KB