Commit 5f2d71d6 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz Committed by Linus Torvalds

[PATCH] fix lost IDE interrupt problem

Alan and I were investigating this, but we don't know why the problem
occurs.

This reverts the previous handling of masked_irq, and fixes the problem.
parent 86770cd1
...@@ -850,14 +850,14 @@ void ide_do_request (ide_hwgroup_t *hwgroup, int masked_irq) ...@@ -850,14 +850,14 @@ void ide_do_request (ide_hwgroup_t *hwgroup, int masked_irq)
* happens anyway when any interrupt comes in, IDE or otherwise * happens anyway when any interrupt comes in, IDE or otherwise
* -- the kernel masks the IRQ while it is being handled. * -- 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); disable_irq_nosync(hwif->irq);
spin_unlock(&ide_lock); spin_unlock(&ide_lock);
local_irq_enable(); local_irq_enable();
/* allow other IRQs while we start this request */ /* allow other IRQs while we start this request */
startstop = start_request(drive, rq); startstop = start_request(drive, rq);
spin_lock_irq(&ide_lock); spin_lock_irq(&ide_lock);
if (hwif->irq != masked_irq) if (masked_irq != IDE_NO_IRQ && hwif->irq != masked_irq)
enable_irq(hwif->irq); enable_irq(hwif->irq);
if (startstop == ide_released) if (startstop == ide_released)
goto queue_next; goto queue_next;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment