summaryrefslogtreecommitdiff
path: root/include/linux/resource.h
diff options
context:
space:
mode:
authorSebastian Frias <sf84@laposte.net>2016-08-16 16:05:08 +0200
committerThomas Gleixner <tglx@linutronix.de>2016-09-02 20:20:59 +0200
commitf88eecfe2f22b2790e7527c0aaec14ea175919de (patch)
tree057a63155ecd74e71451f13efed04f2184940593 /include/linux/resource.h
parent0c228919e04ddec195402296e7ebf2472ed6caef (diff)
genirq/generic_chip: Verify irqs_per_chip <= 32
Most (if not all) code here implicitly assumes that the maximum number of IRQs per chip will be 32, and thus uses 'u32' or 'unsigned long' for many tasks (for example "struct irq_data" declares its 'mask' field as 'u32', and "struct irq_chip_generic" declares its 'installed' field as 'unsigned long') However, there is no check to verify that irqs_per_chip is <= 32. Hence, calling irq_alloc_domain_generic_chips() with a bigger value will result in unexpected results. Provide a wrapper with a MAYBE_BUILD_BUG_ON(nrirqs >= 32) to catch such cases. [ tglx: Reduced changelog to the essential information ] Signed-off-by: Sebastian Frias <sf84@laposte.net> Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: Mason <slash.tmp@free.fr> Cc: Jason Cooper <jason@lakedaemon.net> Link: http://lkml.kernel.org/r/57B31D94.5040701@laposte.net Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/linux/resource.h')
0 files changed, 0 insertions, 0 deletions