From 876c646d097b79fdf45b94f5d4b1024585fd5cc3 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Mon, 24 Feb 2020 15:40:52 -0800 Subject: [PATCH] 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 --- supervisor/shared/usb/usb_msc_flash.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/supervisor/shared/usb/usb_msc_flash.c b/supervisor/shared/usb/usb_msc_flash.c index c0279f9e5f..7532b6aead 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;