Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq fixes from Thomas Gleixner:
"Three fixes for irq chip drivers:

- Make sure the allocations in the GIC-V3 ITS driver are large enough
to accomodate the interrupt space

- Fix a misplaced __iomem annotation which causes a splat of 26
sparse warnings

- Remove an unused function in the IMX GPCV2 driver which causes
build warnings"

* 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
irqchip/irq-imx-gpcv2: Remove unused function
irqchip/gic-v3-its: Ensure nr_ites >= nr_lpis
irqchip/gic-v3-its: Fix misplaced __iomem annotations

Changed files
+6 -21
drivers
+6 -7
drivers/irqchip/irq-gic-v3-its.c
··· 1412 1412 * This gives us (((1UL << id_bits) - 8192) >> 5) possible allocations. 1413 1413 */ 1414 1414 #define IRQS_PER_CHUNK_SHIFT 5 1415 - #define IRQS_PER_CHUNK (1 << IRQS_PER_CHUNK_SHIFT) 1415 + #define IRQS_PER_CHUNK (1UL << IRQS_PER_CHUNK_SHIFT) 1416 1416 #define ITS_MAX_LPI_NRBITS 16 /* 64K LPIs */ 1417 1417 1418 1418 static unsigned long *lpi_bitmap; ··· 2119 2119 2120 2120 dev = kzalloc(sizeof(*dev), GFP_KERNEL); 2121 2121 /* 2122 - * At least one bit of EventID is being used, hence a minimum 2123 - * of two entries. No, the architecture doesn't let you 2124 - * express an ITT with a single entry. 2122 + * We allocate at least one chunk worth of LPIs bet device, 2123 + * and thus that many ITEs. The device may require less though. 2125 2124 */ 2126 - nr_ites = max(2UL, roundup_pow_of_two(nvecs)); 2125 + nr_ites = max(IRQS_PER_CHUNK, roundup_pow_of_two(nvecs)); 2127 2126 sz = nr_ites * its->ite_size; 2128 2127 sz = max(sz, ITS_ITT_ALIGN) + ITS_ITT_ALIGN - 1; 2129 2128 itt = kzalloc(sz, GFP_KERNEL); ··· 2494 2495 2495 2496 static void its_vpe_schedule(struct its_vpe *vpe) 2496 2497 { 2497 - void * __iomem vlpi_base = gic_data_rdist_vlpi_base(); 2498 + void __iomem *vlpi_base = gic_data_rdist_vlpi_base(); 2498 2499 u64 val; 2499 2500 2500 2501 /* Schedule the VPE */ ··· 2526 2527 2527 2528 static void its_vpe_deschedule(struct its_vpe *vpe) 2528 2529 { 2529 - void * __iomem vlpi_base = gic_data_rdist_vlpi_base(); 2530 + void __iomem *vlpi_base = gic_data_rdist_vlpi_base(); 2530 2531 u32 count = 1000000; /* 1s! */ 2531 2532 bool clean; 2532 2533 u64 val;
-14
drivers/irqchip/irq-imx-gpcv2.c
··· 28 28 29 29 static struct gpcv2_irqchip_data *imx_gpcv2_instance; 30 30 31 - /* 32 - * Interface for the low level wakeup code. 33 - */ 34 - u32 imx_gpcv2_get_wakeup_source(u32 **sources) 35 - { 36 - if (!imx_gpcv2_instance) 37 - return 0; 38 - 39 - if (sources) 40 - *sources = imx_gpcv2_instance->wakeup_sources; 41 - 42 - return IMR_NUM; 43 - } 44 - 45 31 static int gpcv2_wakeup_source_save(void) 46 32 { 47 33 struct gpcv2_irqchip_data *cd;