Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc/8xx: Erroneous double irq_eoi() on CPM IRQ in MPC8xx

irq_eoi() is already called by generic_handle_irq() so
it shall not be called a again

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Scott Wood <scottwood@freescale.com>

authored by

LEROY Christophe and committed by
Scott Wood
7601f597 2dd1c132

+3 -10
+3 -10
arch/powerpc/platforms/8xx/m8xx_setup.c
··· 219 219 220 220 static void cpm_cascade(unsigned int irq, struct irq_desc *desc) 221 221 { 222 - struct irq_chip *chip; 223 - int cascade_irq; 222 + struct irq_chip *chip = irq_desc_get_chip(desc); 223 + int cascade_irq = cpm_get_irq(); 224 224 225 - if ((cascade_irq = cpm_get_irq()) >= 0) { 226 - struct irq_desc *cdesc = irq_to_desc(cascade_irq); 227 - 225 + if (cascade_irq >= 0) 228 226 generic_handle_irq(cascade_irq); 229 227 230 - chip = irq_desc_get_chip(cdesc); 231 - chip->irq_eoi(&cdesc->irq_data); 232 - } 233 - 234 - chip = irq_desc_get_chip(desc); 235 228 chip->irq_eoi(&desc->irq_data); 236 229 } 237 230