--- linux-2.5.65/drivers/ide/ide-io.c Fri Mar 21 14:24:31 2003 +++ linux-dma_intr-fix/drivers/ide/ide-io.c Sat Mar 22 22:03:26 2003 @@ -838,14 +838,14 @@ * 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 && 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 && hwif->irq != masked_irq) enable_irq(hwif->irq); if (startstop == ide_released) goto queue_next; @@ -861,7 +861,7 @@ */ void do_ide_request(request_queue_t *q) { - ide_do_request(q->queuedata, IDE_NO_IRQ); + ide_do_request(q->queuedata, 0); } /* @@ -1009,7 +1009,7 @@ hwgroup->busy = 0; } } - ide_do_request(hwgroup, IDE_NO_IRQ); + ide_do_request(hwgroup, 0); spin_unlock_irqrestore(&ide_lock, flags); } @@ -1299,7 +1299,7 @@ insert_end = 0; } __elv_add_request(&drive->queue, rq, insert_end, 0); - ide_do_request(hwgroup, IDE_NO_IRQ); + ide_do_request(hwgroup, 0); spin_unlock_irqrestore(&ide_lock, flags); err = 0;