]> git.neil.brown.name Git - history.git/commitdiff
[ide] fix IRQ masking in ide_do_request()
authorBartlomiej Zolnierkiewicz <bzolnier@trik.(none)>
Thu, 24 Feb 2005 13:02:05 +0000 (14:02 +0100)
committerBartlomiej Zolnierkiewicz <bzolnier@trik.(none)>
Thu, 24 Feb 2005 13:02:05 +0000 (14:02 +0100)
Revert to previous way of handling masked_irq argument.
Reported to fix problems with shared PCI IRQs.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/ide-io.c

index 3cf32f23bea2dacfe53328cc6cb0881362764343..1984fbe5e5c6fe9ec1ea79f2777849c65ab99a35 100644 (file)
@@ -1163,14 +1163,14 @@ static void ide_do_request (ide_hwgroup_t *hwgroup, int masked_irq)
                 * happens anyway when any interrupt comes in, IDE or otherwise
                 *  -- the kernel masks the IRQ while it is being handled.
                 */
-               if (hwif->irq != masked_irq)
+               if (masked_irq != IDE_NO_IRQ && hwif->irq != masked_irq)
                        disable_irq_nosync(hwif->irq);
                spin_unlock(&ide_lock);
                local_irq_enable();
                        /* allow other IRQs while we start this request */
                startstop = start_request(drive, rq);
                spin_lock_irq(&ide_lock);
-               if (hwif->irq != masked_irq)
+               if (masked_irq != IDE_NO_IRQ && hwif->irq != masked_irq)
                        enable_irq(hwif->irq);
                if (startstop == ide_stopped)
                        hwgroup->busy = 0;