block: Switch struct packet_command to use struct scsi_sense_hdr
There is a lot of needless struct request_sense usage in the CDROM code. These can all be struct scsi_sense_hdr instead, to avoid any confusion over their respective structure sizes. This patch is a lot of noise changing "sense" to "sshdr", but the final code is more readable to distinguish between "sense" meaning "struct request_sense" and "sshdr" meaning "struct scsi_sense_hdr". Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
@@ -345,10 +345,10 @@ static LIST_HEAD(cdrom_list);
|
||||
int cdrom_dummy_generic_packet(struct cdrom_device_info *cdi,
|
||||
struct packet_command *cgc)
|
||||
{
|
||||
if (cgc->sense) {
|
||||
cgc->sense->sense_key = 0x05;
|
||||
cgc->sense->asc = 0x20;
|
||||
cgc->sense->ascq = 0x00;
|
||||
if (cgc->sshdr) {
|
||||
cgc->sshdr->sense_key = 0x05;
|
||||
cgc->sshdr->asc = 0x20;
|
||||
cgc->sshdr->ascq = 0x00;
|
||||
}
|
||||
|
||||
cgc->stat = -EIO;
|
||||
@@ -2943,7 +2943,7 @@ static noinline int mmc_ioctl_cdrom_read_data(struct cdrom_device_info *cdi,
|
||||
struct packet_command *cgc,
|
||||
int cmd)
|
||||
{
|
||||
struct request_sense sense;
|
||||
struct scsi_sense_hdr sshdr;
|
||||
struct cdrom_msf msf;
|
||||
int blocksize = 0, format = 0, lba;
|
||||
int ret;
|
||||
@@ -2971,13 +2971,13 @@ static noinline int mmc_ioctl_cdrom_read_data(struct cdrom_device_info *cdi,
|
||||
if (cgc->buffer == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
memset(&sense, 0, sizeof(sense));
|
||||
cgc->sense = &sense;
|
||||
memset(&sshdr, 0, sizeof(sshdr));
|
||||
cgc->sshdr = &sshdr;
|
||||
cgc->data_direction = CGC_DATA_READ;
|
||||
ret = cdrom_read_block(cdi, cgc, lba, 1, format, blocksize);
|
||||
if (ret && sense.sense_key == 0x05 &&
|
||||
sense.asc == 0x20 &&
|
||||
sense.ascq == 0x00) {
|
||||
if (ret && sshdr.sense_key == 0x05 &&
|
||||
sshdr.asc == 0x20 &&
|
||||
sshdr.ascq == 0x00) {
|
||||
/*
|
||||
* SCSI-II devices are not required to support
|
||||
* READ_CD, so let's try switching block size
|
||||
@@ -2986,7 +2986,7 @@ static noinline int mmc_ioctl_cdrom_read_data(struct cdrom_device_info *cdi,
|
||||
ret = cdrom_switch_blocksize(cdi, blocksize);
|
||||
if (ret)
|
||||
goto out;
|
||||
cgc->sense = NULL;
|
||||
cgc->sshdr = NULL;
|
||||
ret = cdrom_read_cd(cdi, cgc, lba, blocksize, 1);
|
||||
ret |= cdrom_switch_blocksize(cdi, blocksize);
|
||||
}
|
||||
|
Reference in New Issue
Block a user