Skip to content

Commit 7ce9900

Browse files
authored
Avoid unnecessary stall condition
1 parent a9e1428 commit 7ce9900

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/usb/usb_msd.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ usb_device_msd_handle_data(usb_device_c *device, USBPacket *p)
285285
if (p->devep != 2)
286286
goto fail;
287287

288-
if (scsi_devices[usb_msd->scsi_bus][usb_msd->current_lun].status == SCSI_STATUS_CHECK_CONDITION) {
288+
if (usb_msd->phase != USB_MSDM_CBW && usb_msd->phase != USB_MSDM_CSW && scsi_devices[usb_msd->scsi_bus][usb_msd->current_lun].status == SCSI_STATUS_CHECK_CONDITION) {
289289
usb_msd_log("Command failed\n");
290290
usb_msd->phase = USB_MSDM_CSW;
291291
usb_msd->current_csw.bCSWStatus = 0x01;
@@ -441,7 +441,7 @@ usb_device_msd_handle_data(usb_device_c *device, USBPacket *p)
441441
if (p->devep != 0x01)
442442
goto fail;
443443

444-
if (scsi_devices[usb_msd->scsi_bus][usb_msd->current_lun].status == SCSI_STATUS_CHECK_CONDITION) {
444+
if (usb_msd->phase != USB_MSDM_CBW && usb_msd->phase != USB_MSDM_CSW && scsi_devices[usb_msd->scsi_bus][usb_msd->current_lun].status == SCSI_STATUS_CHECK_CONDITION) {
445445
usb_msd_log("Command failed (data in)\n");
446446
usb_msd->phase = USB_MSDM_CSW;
447447
usb_msd->current_csw.bCSWStatus = 0x01;

0 commit comments

Comments
 (0)