Skip to content

Commit

Permalink
ide: BUG() on unknown requests
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Bartlomiej Zolnierkiewicz committed Jun 15, 2009
1 parent a9c4150 commit 2c7eaa4
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 27 deletions.
8 changes: 2 additions & 6 deletions drivers/ide/ide-cd.c
Original file line number Diff line number Diff line change
Expand Up @@ -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... */
uptodate = 1;
goto out_end;
} else {
blk_dump_rq_flags(rq, DRV_NAME " bad flags");
if (rq->errors == 0)
rq->errors = -EIO;
goto out_end;
}
} else
BUG();

/* prepare sense request for this command */
ide_prep_sense(drive, rq);
Expand Down
9 changes: 1 addition & 8 deletions drivers/ide/ide-disk.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

BUG_ON(drive->dev_flags & IDE_DFLAG_BLOCKED);

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;
}
BUG_ON(!blk_fs_request(rq));

ledtrig_ide_activity();

Expand Down
6 changes: 2 additions & 4 deletions drivers/ide/ide-floppy.c
Original file line number Diff line number Diff line change
Expand Up @@ -269,10 +269,8 @@ static ide_startstop_t ide_floppy_do_request(ide_drive_t *drive,
} else if (blk_pc_request(rq)) {
pc = &floppy->queued_pc;
idefloppy_blockpc_cmd(floppy, pc, rq);
} else {
blk_dump_rq_flags(rq, PFX "unsupported command in queue");
goto out_end;
}
} else
BUG();

ide_prep_sense(drive, rq);

Expand Down
10 changes: 1 addition & 9 deletions drivers/ide/ide-tape.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
(unsigned long long)blk_rq_pos(rq), blk_rq_sectors(rq));

if (!(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;
}
BUG_ON(!(blk_special_request(rq) || blk_sense_request(rq)));

/* Retry a failed packet command */
if (drive->failed_pc && drive->pc->c[0] == REQUEST_SENSE) {
Expand Down

0 comments on commit 2c7eaa4

Please sign in to comment.