diff options
-rw-r--r-- | drivers/block/Kconfig | 2 | ||||
-rw-r--r-- | drivers/cdrom/cdrom.c | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig index ad9b687a236a..d4913516823f 100644 --- a/drivers/block/Kconfig +++ b/drivers/block/Kconfig | |||
@@ -74,12 +74,12 @@ config AMIGA_Z2RAM | |||
74 | 74 | ||
75 | config CDROM | 75 | config CDROM |
76 | tristate | 76 | tristate |
77 | select BLK_SCSI_REQUEST | ||
77 | 78 | ||
78 | config GDROM | 79 | config GDROM |
79 | tristate "SEGA Dreamcast GD-ROM drive" | 80 | tristate "SEGA Dreamcast GD-ROM drive" |
80 | depends on SH_DREAMCAST | 81 | depends on SH_DREAMCAST |
81 | select CDROM | 82 | select CDROM |
82 | select BLK_SCSI_REQUEST # only for the generic cdrom code | ||
83 | help | 83 | help |
84 | A standard SEGA Dreamcast comes with a modified CD ROM drive called a | 84 | A standard SEGA Dreamcast comes with a modified CD ROM drive called a |
85 | "GD-ROM" by SEGA to signify it is capable of reading special disks | 85 | "GD-ROM" by SEGA to signify it is capable of reading special disks |
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c index 86619472d916..113fc6edb2b0 100644 --- a/drivers/cdrom/cdrom.c +++ b/drivers/cdrom/cdrom.c | |||
@@ -282,6 +282,7 @@ | |||
282 | #include <linux/blkdev.h> | 282 | #include <linux/blkdev.h> |
283 | #include <linux/times.h> | 283 | #include <linux/times.h> |
284 | #include <linux/uaccess.h> | 284 | #include <linux/uaccess.h> |
285 | #include <scsi/scsi_common.h> | ||
285 | #include <scsi/scsi_request.h> | 286 | #include <scsi/scsi_request.h> |
286 | 287 | ||
287 | /* used to tell the module to turn on full debugging messages */ | 288 | /* used to tell the module to turn on full debugging messages */ |
@@ -2222,9 +2223,12 @@ static int cdrom_read_cdda_bpc(struct cdrom_device_info *cdi, __u8 __user *ubuf, | |||
2222 | 2223 | ||
2223 | blk_execute_rq(q, cdi->disk, rq, 0); | 2224 | blk_execute_rq(q, cdi->disk, rq, 0); |
2224 | if (scsi_req(rq)->result) { | 2225 | if (scsi_req(rq)->result) { |
2225 | struct request_sense *s = req->sense; | 2226 | struct scsi_sense_hdr sshdr; |
2227 | |||
2226 | ret = -EIO; | 2228 | ret = -EIO; |
2227 | cdi->last_sense = s->sense_key; | 2229 | scsi_normalize_sense(req->sense, req->sense_len, |
2230 | &sshdr); | ||
2231 | cdi->last_sense = sshdr.sense_key; | ||
2228 | } | 2232 | } |
2229 | 2233 | ||
2230 | if (blk_rq_unmap_user(bio)) | 2234 | if (blk_rq_unmap_user(bio)) |