ide: BUG() on unknown requests
Unsupported requests should be never handed down to device drivers and the best thing we can do upon discovering such request inside driver's ->do_request method is to just BUG(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
@@ -785,12 +785,8 @@ static ide_startstop_t ide_cd_do_request(ide_drive_t *drive, struct request *rq,
|
|||||||
/* right now this can only be a reset... */
|
/* right now this can only be a reset... */
|
||||||
uptodate = 1;
|
uptodate = 1;
|
||||||
goto out_end;
|
goto out_end;
|
||||||
} else {
|
} else
|
||||||
blk_dump_rq_flags(rq, DRV_NAME " bad flags");
|
BUG();
|
||||||
if (rq->errors == 0)
|
|
||||||
rq->errors = -EIO;
|
|
||||||
goto out_end;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* prepare sense request for this command */
|
/* prepare sense request for this command */
|
||||||
ide_prep_sense(drive, rq);
|
ide_prep_sense(drive, rq);
|
||||||
|
@@ -184,14 +184,7 @@ static ide_startstop_t ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
|
|||||||
ide_hwif_t *hwif = drive->hwif;
|
ide_hwif_t *hwif = drive->hwif;
|
||||||
|
|
||||||
BUG_ON(drive->dev_flags & IDE_DFLAG_BLOCKED);
|
BUG_ON(drive->dev_flags & IDE_DFLAG_BLOCKED);
|
||||||
|
BUG_ON(!blk_fs_request(rq));
|
||||||
if (!blk_fs_request(rq)) {
|
|
||||||
blk_dump_rq_flags(rq, "ide_do_rw_disk - bad command");
|
|
||||||
if (rq->errors == 0)
|
|
||||||
rq->errors = -EIO;
|
|
||||||
ide_complete_rq(drive, -EIO, ide_rq_bytes(rq));
|
|
||||||
return ide_stopped;
|
|
||||||
}
|
|
||||||
|
|
||||||
ledtrig_ide_activity();
|
ledtrig_ide_activity();
|
||||||
|
|
||||||
|
@@ -269,10 +269,8 @@ static ide_startstop_t ide_floppy_do_request(ide_drive_t *drive,
|
|||||||
} else if (blk_pc_request(rq)) {
|
} else if (blk_pc_request(rq)) {
|
||||||
pc = &floppy->queued_pc;
|
pc = &floppy->queued_pc;
|
||||||
idefloppy_blockpc_cmd(floppy, pc, rq);
|
idefloppy_blockpc_cmd(floppy, pc, rq);
|
||||||
} else {
|
} else
|
||||||
blk_dump_rq_flags(rq, PFX "unsupported command in queue");
|
BUG();
|
||||||
goto out_end;
|
|
||||||
}
|
|
||||||
|
|
||||||
ide_prep_sense(drive, rq);
|
ide_prep_sense(drive, rq);
|
||||||
|
|
||||||
|
@@ -586,15 +586,7 @@ static ide_startstop_t idetape_do_request(ide_drive_t *drive,
|
|||||||
debug_log(DBG_SENSE, "sector: %llu, nr_sectors: %u\n"
|
debug_log(DBG_SENSE, "sector: %llu, nr_sectors: %u\n"
|
||||||
(unsigned long long)blk_rq_pos(rq), blk_rq_sectors(rq));
|
(unsigned long long)blk_rq_pos(rq), blk_rq_sectors(rq));
|
||||||
|
|
||||||
if (!(blk_special_request(rq) || blk_sense_request(rq))) {
|
BUG_ON(!(blk_special_request(rq) || blk_sense_request(rq)));
|
||||||
/* We do not support buffer cache originated requests. */
|
|
||||||
printk(KERN_NOTICE "ide-tape: %s: Unsupported request in "
|
|
||||||
"request queue (%d)\n", drive->name, rq->cmd_type);
|
|
||||||
if (blk_fs_request(rq) == 0 && rq->errors == 0)
|
|
||||||
rq->errors = -EIO;
|
|
||||||
ide_complete_rq(drive, -EIO, ide_rq_bytes(rq));
|
|
||||||
return ide_stopped;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Retry a failed packet command */
|
/* Retry a failed packet command */
|
||||||
if (drive->failed_pc && drive->pc->c[0] == REQUEST_SENSE) {
|
if (drive->failed_pc && drive->pc->c[0] == REQUEST_SENSE) {
|
||||||
|
Reference in New Issue
Block a user