ide: check BUSY and ERROR status bits before reading data in drive_cmd_intr()
PATCH 16/20 ide: check BUSY and ERROR status bits before reading data in drive_cmd_intr()
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
--- drivers/ide/ide-io.c | 7 +++++++ 1 file changed, 7 insertions(+)
drivers/ide/ide-io.c +7 -0
@@ -643,6 +643,13 @@ static ide_startstop_t drive_cmd_intr (iif (pio_in) {u8 io_32bit = drive->io_32bit; stat = hwif->INB (IDE_STATUS_REG ); +if (!OK_STAT (stat,DRQ_STAT ,BAD_R_STAT )) { +if (stat & (ERR_STAT |DRQ_STAT )) +return ide_error (drive, __FUNCTION__, stat); +ide_set_handler (drive, &drive_cmd_intr,WAIT_WORSTCASE , +NULL ); +return ide_started; + } drive->io_32bit =0 ; hwif->ata_input_data (drive, &args[4 ], args[3 ] *SECTOR_WORDS ); drive->io_32bit = io_32bit;
Quoted 1 line · Bartlomiej Zolnierkiewicz
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
Acked-by Sergei Shtylyov <[email protected]>
MBR, Sergei