summaryrefslogtreecommitdiff
path: root/supervisor
diff options
context:
space:
mode:
authorScott Shawcroft <scott@tannewt.org>2020-02-24 15:40:52 -0800
committerScott Shawcroft <scott@tannewt.org>2020-02-24 15:40:52 -0800
commit876c646d097b79fdf45b94f5d4b1024585fd5cc3 (patch)
tree699c4f24b66c0c5e55cfc9c013fdb3005fef6632 /supervisor
parent90c67673ad440936823cbb7d5e67d717e7b1f640 (diff)
Fix Mac crash when waking up with an ejected CIRCUITPY
We now correctly set the reason for the unit not being ready and always start the unit. Fixes #2567
Diffstat (limited to 'supervisor')
-rw-r--r--supervisor/shared/usb/usb_msc_flash.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/supervisor/shared/usb/usb_msc_flash.c b/supervisor/shared/usb/usb_msc_flash.c
index c0279f9e5..7532b6aea 100644
--- a/supervisor/shared/usb/usb_msc_flash.c
+++ b/supervisor/shared/usb/usb_msc_flash.c
@@ -208,6 +208,8 @@ bool tud_msc_test_unit_ready_cb(uint8_t lun) {
return false;
}
if (ejected[lun]) {
+ // Set 0x3a for media not present.
+ tud_msc_set_sense(lun, SCSI_SENSE_NOT_READY, 0x3A, 0x00);
return false;
}
@@ -243,10 +245,8 @@ bool tud_msc_start_stop_cb(uint8_t lun, uint8_t power_condition, bool start, boo
if (disk_ioctl(current_mount, CTRL_SYNC, NULL) != RES_OK) {
return false;
}
- } else {
- // Start the unit, but only if not ejected.
- return !ejected[lun];
}
+ // Always start the unit, even if ejected. Whether media is present is a separate check.
}
return true;