• Thomas Gleixner's avatar
    irqchip/dw-apb-ictl: Fix generic domain chip wreckage · b6623118
    Thomas Gleixner authored
    The num_ct argument of irq_alloc_domain_generic_chips() tells the core
    code how many chip types (for different control flows,
    e.g. edge/level) should be allocated. It does not control how many
    generic chip instances are created because that's determined from the
    irq domain size and the number of interrupts per chip.
    
    The dw-apb init abuses the num_ct argument for allocating one or two
    chip types depending on the number of interrupts. That's completely
    wrong because the alternate type is never used.
    
    This code was obviously never tested on a system which has more than
    32 interrupts as that would have never worked due to the unitialized
    second generic chip instance.
    
    Hand in the proper num_ct=1 and fixup the chip initialization along
    with the interrupt handler.
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Tested-by: default avatarJisheng Zhang <jszhang@marvell.com>
    Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Jason Cooper <jason@lakedaemon.net>
    Link: http://lkml.kernel.org/r/20150706101543.373582262@linutronix.de
    b6623118
irq-dw-apb-ictl.c 4.34 KB