diff options
| author | Jens Axboe <axboe@suse.de> | 2003-05-29 20:55:02 -0700 |
|---|---|---|
| committer | Jens Axboe <axboe@suse.de> | 2003-05-29 20:55:02 -0700 |
| commit | 4303cc87fde3ec2a35d9c1eef6b429eb0b38c8aa (patch) | |
| tree | 14f1ab9ca8144b5a33cd10bbe11eff393877f610 | |
| parent | ba094e847570bf7c18dcb5d7b44a4a8dac67ce00 (diff) | |
[PATCH] ide-cd buglets
Assorted small ide-cd fixes, found and fixed by Andy Polyakov
<appro@fy.chalmers.se>.
- CHECK_CONDITION really wants to be SAM_STAT_CHECK_CONDITION, the damn
bit shift by one bit again
- Set sense_len correctly
- Do post_transform() on the right buffer.
| -rw-r--r-- | drivers/ide/ide-cd.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index f4700ed0b654..b26b6ac8acfc 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c @@ -666,8 +666,10 @@ static void cdrom_end_request (ide_drive_t *drive, int uptodate) struct cdrom_info *info = drive->driver_data; void *sense = &info->sense_data; - if (failed && failed->sense) + if (failed && failed->sense) { sense = failed->sense; + failed->sense_len = rq->sense_len; + } cdrom_analyze_sense_data(drive, failed, sense); } @@ -723,7 +725,7 @@ static int cdrom_decode_status(ide_drive_t *drive, int good_stat, int *stat_ret) * scsi status byte */ if ((rq->flags & REQ_BLOCK_PC) && !rq->errors) - rq->errors = CHECK_CONDITION; + rq->errors = SAM_STAT_CHECK_CONDITION; /* Check for tray open. */ if (sense_key == NOT_READY) { @@ -1609,11 +1611,13 @@ static inline int cdrom_write_check_ireason(ide_drive_t *drive, int len, int ire static void post_transform_command(struct request *req) { - char *ibuf = req->buffer; + char *ibuf = req->data; u8 *c = req->cmd; if (!blk_pc_request(req)) return; + if (!ibuf) + return; /* * set ansi-revision and response data as atapi |
