aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide-floppy.c
diff options
context:
space:
mode:
authorBorislav Petkov <petkovbb@googlemail.com>2009-04-18 18:00:42 -0400
committerJens Axboe <jens.axboe@oracle.com>2009-04-28 01:37:30 -0400
commit068753203e6cd085664a62e0fc0636e19b148a12 (patch)
treed3eec62f2ecd5524c89bb7c8d4f482e93a4cc196 /drivers/ide/ide-floppy.c
parentc457ce874a0f3dfa3d5e9f2309789f6f34e24325 (diff)
ide-atapi: convert ide-{floppy,tape} to using preallocated sense buffer
Since we're issuing REQ_TYPE_SENSE now we need to allow those types of rqs in the ->do_request callbacks. As a future improvement, sense_len assignment might be unified across all ATAPI devices. Borislav to check with specs and test. As a result, get rid of ide_queue_pc_head() and drive->request_sense_rq. tj: * Init request sense ide_atapi_pc from sense request. In the longer timer, it would probably better to fold ide_create_request_sense_cmd() into its only current user - ide_floppy_get_format_progress(). * ide_retry_pc() no longer takes @disk. CC: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> CC: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Borislav Petkov <petkovbb@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'drivers/ide/ide-floppy.c')
-rw-r--r--drivers/ide/ide-floppy.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c
index 94600331a271..d3302cc891e4 100644
--- a/drivers/ide/ide-floppy.c
+++ b/drivers/ide/ide-floppy.c
@@ -263,7 +263,7 @@ static ide_startstop_t ide_floppy_do_request(ide_drive_t *drive,
263 } 263 }
264 pc = &floppy->queued_pc; 264 pc = &floppy->queued_pc;
265 idefloppy_create_rw_cmd(drive, pc, rq, (unsigned long)block); 265 idefloppy_create_rw_cmd(drive, pc, rq, (unsigned long)block);
266 } else if (blk_special_request(rq)) { 266 } else if (blk_special_request(rq) || blk_sense_request(rq)) {
267 pc = (struct ide_atapi_pc *)rq->special; 267 pc = (struct ide_atapi_pc *)rq->special;
268 } else if (blk_pc_request(rq)) { 268 } else if (blk_pc_request(rq)) {
269 pc = &floppy->queued_pc; 269 pc = &floppy->queued_pc;
@@ -273,6 +273,8 @@ static ide_startstop_t ide_floppy_do_request(ide_drive_t *drive,
273 goto out_end; 273 goto out_end;
274 } 274 }
275 275
276 ide_prep_sense(drive, rq);
277
276 memset(&cmd, 0, sizeof(cmd)); 278 memset(&cmd, 0, sizeof(cmd));
277 279
278 if (rq_data_dir(rq)) 280 if (rq_data_dir(rq))