[PATCH v2] Erroneous double irq_eoi() on CPM IRQ in MPC8xx
DORMANTno replies
From: Christophe Leroy <hidden>
Date: 2013-04-18 05:27:52
Also in:
lkml
From: Christophe Leroy <hidden>
Date: 2013-04-18 05:27:52
Also in:
lkml
irq_eoi() is already called by generic_handle_irq() so it shall not be called a again Signed-off-by: Christophe Leroy <redacted> Index: linux/arch/powerpc/platforms/8xx/m8xx_setup.c ===================================================================
--- linux/arch/powerpc/platforms/8xx/m8xx_setup.c (revision 4802)
+++ linux/arch/powerpc/platforms/8xx/m8xx_setup.c (working copy)@@ -218,19 +218,12 @@ static void cpm_cascade(unsigned int irq, struct irq_desc *desc) { - struct irq_chip *chip; - int cascade_irq; + struct irq_chip *chip = irq_desc_get_chip(desc); + int cascade_irq = cpm_get_irq(); - if ((cascade_irq = cpm_get_irq()) >= 0) { - struct irq_desc *cdesc = irq_to_desc(cascade_irq); - + if (cascade_irq >= 0) generic_handle_irq(cascade_irq); - chip = irq_desc_get_chip(cdesc); - chip->irq_eoi(&cdesc->irq_data); - } - - chip = irq_desc_get_chip(desc); chip->irq_eoi(&desc->irq_data); }