On Thu, 2015-05-21 at 15:14 +0200, Ralf Baechle wrote: > On Wed, May 20, 2015 at 05:44:54AM -0700, Joe Perches wrote: > > > Use the generic mechanism to declare a bitmap instead of unsigned long. > > > > This could fix an overwrite defect of whatever follows irq_map. > > > > Not all "#define NR_IRQS <value>" are a multiple of BITS_PER_LONG so > > using DECLARE_BITMAP allocates the proper number of longs required > > for the possible bits. > > > > For instance: > > > > arch/mips/include/asm/mach-ath79/irq.h:#define NR_IRQS 51 > > arch/mips/include/asm/mach-db1x00/irq.h:#define NR_IRQS 152 > > arch/mips/include/asm/mach-lantiq/falcon/irq.h:#define NR_IRQS 328 > > This only matters to user of the allocate_irqno() API and there is only > on such platform, the IP27 which fortunately uses a NR_IRQS value that > is a multiple of 64, so no impact. > > Thanks anyway! I think you should apply it anyway as it's an error-prone style. There are 3 mechanisms used today in the kernel to declare bitmap arrays. DECLARE_BITMAP(array, size) unsigned long array[BITS_TO_LONGS(size)] unsigned long array[size/BITS_PER_LONG] The first 2 are fine, the last has this defect possible whenever size % BITS_PER_LONG != 0. The series I sent converts all the uses of the the possibly defective style. cheers, Joe