Re: IDE Fixes for PCI, SMP

David S. Miller (davem@dm.cobaltmicro.com)
Wed, 8 Apr 1998 09:58:16 -0700


Date: Wed, 08 Apr 1998 10:46:48 -0400
From: mlord <mlord@pobox.com>

+ /*
+ * email mlord@pobox.com if broken for __sparc_v9__
+ */
+ spin_lock_irqsave(&hwgroup->spinlock, flags);
+ if (irq == hwif->irq && (handler = hwgroup->handler) != NULL) {
ide_drive_t *drive = hwgroup->drive;

It is, change this back please..... On sparc_v9 the irq number sent
to the interrupt handler is not the same thing as the 32-bit interrupt
cookie you send off to request_irq(). As a consequence the irq
comparison can never work, this is one of the reasons why the often
found technique in drivers to have a device array indexed by IRQ
number was removed by Martin in his PCI cleanups, but it doesn't
matter on sparc_v9 because we guarentee always that the interrupt
handler only gets invoked when that exact device is who the interrupt
is for (ie. you don't get called when an IRQ for another device with
the same "IRQ number" asserts an interrupt). So for us the test is
spurious, please put the hack back.

Later,
David S. Miller
davem@dm.cobaltmicro.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu