From: Maciej Soltysiak , Bartlomiej Zolnierkiewicz (David Coulson says that this fixes his Promise 20269 PCI IDE DMA problems) Fix masked_irq arg handling for ide_do_request(). Solves "hdx: lost interrupt" bug. Bartlomiej Zolnierkiewicz Signed-off-by: Andrew Morton --- 25-akpm/drivers/ide/ide-io.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN drivers/ide/ide-io.c~ide-fix-masked_irq-arg-handling-for-ide_do_request drivers/ide/ide-io.c --- 25/drivers/ide/ide-io.c~ide-fix-masked_irq-arg-handling-for-ide_do_request 2005-02-22 18:52:42.000000000 -0800 +++ 25-akpm/drivers/ide/ide-io.c 2005-02-22 18:52:42.000000000 -0800 @@ -1353,14 +1353,14 @@ static void ide_do_request (ide_hwgroup_ * 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; _