patch-2.4.20 linux-2.4.20/drivers/cdrom/cdrom.c
Next file: linux-2.4.20/drivers/cdrom/cdu31a.c
Previous file: linux-2.4.20/drivers/bluetooth/hci_usb.h
Back to the patch index
Back to the overall index
- Lines: 21
- Date:
Thu Nov 28 15:53:12 2002
- Orig file:
linux-2.4.19/drivers/cdrom/cdrom.c
- Orig date:
Fri Aug 2 17:39:43 2002
diff -urN linux-2.4.19/drivers/cdrom/cdrom.c linux-2.4.20/drivers/cdrom/cdrom.c
@@ -1916,6 +1916,7 @@
{
struct cdrom_device_ops *cdo = cdi->ops;
struct cdrom_generic_command cgc;
+ struct request_sense sense;
kdev_t dev = cdi->dev;
char buffer[32];
int ret = 0;
@@ -1951,9 +1952,11 @@
cgc.buffer = (char *) kmalloc(blocksize, GFP_KERNEL);
if (cgc.buffer == NULL)
return -ENOMEM;
+ memset(&sense, 0, sizeof(sense));
+ cgc.sense = &sense;
cgc.data_direction = CGC_DATA_READ;
ret = cdrom_read_block(cdi, &cgc, lba, 1, format, blocksize);
- if (ret) {
+ if (ret && sense.sense_key==0x05 && sense.asc==0x20 && sense.ascq==0x00) {
/*
* SCSI-II devices are not required to support
* READ_CD, so let's try switching block size
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)