On Tue, 2010-05-11 at 12:27 +1000, Anton Blanchard wrote: > I saw this in a kdump kernel: > > IOMMU table initialized, virtual merging enabled > Interrupt 155954 (real) is invalid, disabling it. > Interrupt 155953 (real) is invalid, disabling it. > > ie we took some spurious interrupts.
OK, but it should have still worked OK? > default_machine_crash_shutdown tries > to disable all interrupt sources but uses chip->disable which maps to > the default action of: > > static void default_disable(unsigned int irq) > { > } > > If we use chip->shutdown, then we actually mask the IRQ: > > static void default_shutdown(unsigned int irq) > { > struct irq_desc *desc = irq_to_desc(irq); > > desc->chip->mask(irq); > desc->status |= IRQ_MASKED; > } > > Not sure why we don't implement a ->disable action for xics.c, or why > default_disable doesn't mask the interrupt. It used to mask, see 76d21601, I knew that would bite us somewhere. Not 100% sure about the change to use shutdown, but it's probably sane and you've tested it so cool :) cheers
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev