summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@trik.(none)>2005-02-24 14:02:05 +0100
committerBartlomiej Zolnierkiewicz <bzolnier@trik.(none)>2005-02-24 14:02:05 +0100
commitf18e6d3eefd518b336d560eb2bf1f1cdb1e6cfe6 (patch)
treef4a216d2d669d8a1ef60df1d7ff8ed28adda009c
parentf45fd77542e8f37b11aa57659048f16849ed3028 (diff)
[ide] fix IRQ masking in ide_do_request()
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>
-rw-r--r--drivers/ide/ide-io.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index 3cf32f23bea2..1984fbe5e5c6 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -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;