Bartlomiej Zolnierkiewicz wrote:
We're getting "ide0: unexpected interrupt, status=0x58, count=1" with palm_bk3710 driver when running hdparm with option -X. That interrupt has beenidentidied to occur while ide_driveid_update() waits for non-BSY status polling the alt. status reg. After looking at the code there, I couldn't help wondering why I never saw that before with any other controller since the code looked like it was bound to produce the unexpected interrupts -- unless I'm missing something?..
Ah, I know why: unexpected_intr() just is never called for PCI chips. Here's an related excerpt from ide_intr():
#ifdef CONFIG_BLK_DEV_IDEPCI if (hwif->chipset != ide_pci) #endif /* CONFIG_BLK_DEV_IDEPCI */ { /* * Probably not a shared PCI interrupt, * so we can safely try to do something about it: */ unexpected_intr(irq, hwgroup); #ifdef CONFIG_BLK_DEV_IDEPCI } else { /* * Whack the status register, just in case * we have a leftover pending IRQ. */ (void) hwif->INB(hwif->io_ports.status_addr); #endif /* CONFIG_BLK_DEV_IDEPCI */
Yes, we may consider removing #ifdef-s and always calling unexpected_intr() (ide_driveid_update() needs fixing first though).
I think these changes are orthogonal, i.e. the message won't pop up on PCI IDE chips whether #ifdef's are removed or not.
Thanks, Bart
MBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html