diff --git a/target/linux/brcm63xx/patches-4.9/324-irqchip-bcm6345-periph-fix-block-uninitialized.patch b/target/linux/brcm63xx/patches-4.9/324-irqchip-bcm6345-periph-fix-block-uninitialized.patch new file mode 100644 index 0000000000..60a645e1bf --- /dev/null +++ b/target/linux/brcm63xx/patches-4.9/324-irqchip-bcm6345-periph-fix-block-uninitialized.patch @@ -0,0 +1,20 @@ +--- a/drivers/irqchip/irq-bcm6345-periph.c ++++ b/drivers/irqchip/irq-bcm6345-periph.c +@@ -52,7 +52,7 @@ static void bcm6345_periph_irq_handle(st + { + struct intc_data *data = irq_desc_get_handler_data(desc); + struct irq_chip *chip = irq_desc_get_chip(desc); +- struct intc_block *block; ++ struct intc_block *block = NULL; + unsigned int irq = irq_desc_get_irq(desc); + unsigned int idx; + +@@ -62,7 +62,7 @@ static void bcm6345_periph_irq_handle(st + if (irq == data->block[idx].parent_irq) + block = &data->block[idx]; + +- for (idx = 0; idx < data->num_words; idx++) { ++ for (idx = 0; block && idx < data->num_words; idx++) { + int base = idx * IRQS_PER_WORD; + unsigned long pending; + int hw_irq;