
From: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>

We shouldn't ever get into ->handler() if drive is busy so
just call ->error() unconditionally if status check fails.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/ide/ide-taskfile.c |   24 ++++--------------------
 1 files changed, 4 insertions(+), 20 deletions(-)

diff -puN drivers/ide/ide-taskfile.c~ide_tf_pio_out_error drivers/ide/ide-taskfile.c
--- 25/drivers/ide/ide-taskfile.c~ide_tf_pio_out_error	2004-06-30 10:40:35.891390240 -0700
+++ 25-akpm/drivers/ide/ide-taskfile.c	2004-06-30 10:40:35.896389480 -0700
@@ -646,16 +646,8 @@ ide_startstop_t task_out_intr (ide_drive
 	u8 stat;
 
 	stat = HWIF(drive)->INB(IDE_STATUS_REG);
-	if (!OK_STAT(stat, DRIVE_READY, drive->bad_wstat)) {
-		if ((stat & (ERR_STAT | DRQ_STAT)) ||
-		    ((stat & WRERR_STAT) && !drive->nowerr))
-			return DRIVER(drive)->error(drive, __FUNCTION__, stat);
-		if (stat & BUSY_STAT) {
-			/* Not ready yet, so wait for another IRQ. */
-			ide_set_handler(drive, &task_out_intr, WAIT_WORSTCASE, NULL);
-			return ide_started;
-		}
-	}
+	if (!OK_STAT(stat, DRIVE_READY, drive->bad_wstat))
+		return DRIVER(drive)->error(drive, __FUNCTION__, stat);
 
 	/* Deal with unexpected ATA data phase. */
 	if ((!(stat & DATA_READY) && rq->nr_sectors) ||
@@ -714,16 +706,8 @@ ide_startstop_t task_mulout_intr (ide_dr
 	u8 stat;
 
 	stat = HWIF(drive)->INB(IDE_STATUS_REG);
-	if (!OK_STAT(stat, DRIVE_READY, drive->bad_wstat)) {
-		if ((stat & (ERR_STAT | DRQ_STAT)) ||
-		    ((stat & WRERR_STAT) && !drive->nowerr))
-			return DRIVER(drive)->error(drive, __FUNCTION__, stat);
-		if (stat & BUSY_STAT) {
-			/* Not ready yet, so wait for another IRQ. */
-			ide_set_handler(drive, &task_mulout_intr, WAIT_WORSTCASE, NULL);
-			return ide_started;
-		}
-	}
+	if (!OK_STAT(stat, DRIVE_READY, drive->bad_wstat))
+		return DRIVER(drive)->error(drive, __FUNCTION__, stat);
 
 	/* Deal with unexpected ATA data phase. */
 	if ((!(stat & DATA_READY) && rq->nr_sectors) ||
_
