[PATCH] IDE 2.5.66-masked_irq-fix-A0

From: Bartlomiej Zolnierkiewicz (B.Zolnierkiewicz@elka.pw.edu.pl)
Date: Thu Mar 27 2003 - 18:54:19 EST


# Revert previous masked_irq handling for ide_do_request().
# Fixes "hda: lost interrupt" bug.
#
# Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>

diff -uNr linux-2.5.66/drivers/ide/ide-io.c linux/drivers/ide/ide-io.c
--- linux-2.5.66/drivers/ide/ide-io.c Tue Mar 25 22:53:09 2003
+++ linux/drivers/ide/ide-io.c Tue Mar 25 22:54:33 2003
@@ -850,14 +850,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;
@@ -873,7 +873,7 @@
  */
 void do_ide_request(request_queue_t *q)
 {
- ide_do_request(q->queuedata, IDE_NO_IRQ);
+ ide_do_request(q->queuedata, 0);
 }

 /*
@@ -1021,7 +1021,7 @@
                                 hwgroup->busy = 0;
                 }
         }
- ide_do_request(hwgroup, IDE_NO_IRQ);
+ ide_do_request(hwgroup, 0);
         spin_unlock_irqrestore(&ide_lock, flags);
 }

@@ -1311,7 +1311,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;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Mar 31 2003 - 22:00:30 EST