From: Bartlomiej Zolnierkiewicz ide_end_drive_cmd() should only be called for "flagged" taskfiles which have separate PIO handlers so use driver->end_request() instead. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Andrew Morton --- 25-akpm/drivers/ide/ide-taskfile.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff -puN drivers/ide/ide-taskfile.c~ide-end-request-fix-for-config_ide_taskfile_io=y-pio-handlers drivers/ide/ide-taskfile.c --- 25/drivers/ide/ide-taskfile.c~ide-end-request-fix-for-config_ide_taskfile_io=y-pio-handlers 2004-06-20 13:57:23.364590816 -0700 +++ 25-akpm/drivers/ide/ide-taskfile.c 2004-06-20 13:57:23.368590208 -0700 @@ -586,7 +586,7 @@ check_status: return ide_stopped; /* Complete rq->buffer based request (ioctls). */ if (!rq->bio && !rq->nr_sectors) { - ide_end_drive_cmd(drive, stat, HWIF(drive)->INB(IDE_ERROR_REG)); + DRIVER(drive)->end_request(drive, 1, 0); return ide_stopped; } @@ -637,7 +637,7 @@ check_status: return ide_stopped; /* Complete rq->buffer based request (ioctls). */ if (!rq->bio && !rq->nr_sectors) { - ide_end_drive_cmd(drive, stat, HWIF(drive)->INB(IDE_ERROR_REG)); + DRIVER(drive)->end_request(drive, 1, 0); return ide_stopped; } @@ -703,7 +703,7 @@ ide_startstop_t task_out_intr (ide_drive return ide_stopped; /* Complete rq->buffer based request (ioctls). */ if (!rq->bio && !rq->nr_sectors) { - ide_end_drive_cmd(drive, stat, HWIF(drive)->INB(IDE_ERROR_REG)); + DRIVER(drive)->end_request(drive, 1, 0); return ide_stopped; } @@ -772,7 +772,7 @@ ide_startstop_t task_mulout_intr (ide_dr return ide_stopped; /* Complete rq->buffer based request (ioctls). */ if (!rq->bio && !rq->nr_sectors) { - ide_end_drive_cmd(drive, stat, HWIF(drive)->INB(IDE_ERROR_REG)); + DRIVER(drive)->end_request(drive, 1, 0); return ide_stopped; } _