READ CD, READ CD OLD, and READ CD MSF with all flag bits cleared, are now treated as a non-data command.
This commit is contained in:
@@ -1623,7 +1623,12 @@ scsi_cdrom_command(scsi_common_t *sc, uint8_t *cdb)
|
|||||||
|
|
||||||
dev->sector_len -= dev->sector_pos;
|
dev->sector_len -= dev->sector_pos;
|
||||||
dev->sector_len++;
|
dev->sector_len++;
|
||||||
|
|
||||||
msf = 1;
|
msf = 1;
|
||||||
|
|
||||||
|
/* If all the flag bits are cleared, then treat it as a non-data command. */
|
||||||
|
if (cdb[9] == 0x00)
|
||||||
|
dev->sector_len = 0;
|
||||||
break;
|
break;
|
||||||
case GPCMD_READ_CD_OLD:
|
case GPCMD_READ_CD_OLD:
|
||||||
case GPCMD_READ_CD:
|
case GPCMD_READ_CD:
|
||||||
@@ -1632,6 +1637,10 @@ scsi_cdrom_command(scsi_common_t *sc, uint8_t *cdb)
|
|||||||
dev->sector_pos = (cdb[2] << 24) | (cdb[3] << 16) | (cdb[4] << 8) | cdb[5];
|
dev->sector_pos = (cdb[2] << 24) | (cdb[3] << 16) | (cdb[4] << 8) | cdb[5];
|
||||||
|
|
||||||
msf = 0;
|
msf = 0;
|
||||||
|
|
||||||
|
/* If all the flag bits are cleared, then treat it as a non-data command. */
|
||||||
|
if (cdb[9] == 0x00)
|
||||||
|
dev->sector_len = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user