summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2026-02-12 10:50:03 +0700
committerGitHub <[email protected]>2026-02-12 10:50:03 +0700
commita0982cd5ca5727064520af418915e3d8efb204d3 (patch)
tree2d81ef25959360067c18a3e050547080e6557104
parent2883403ed010c54c33a38c28358a4dd0c67d67c0 (diff)
parent30802a19c99ac8983d893782b380ced6747e6373 (diff)
Merge pull request #3471 from hathach/msc_stall
device/msc: skip command stage if EP out is stalled
-rw-r--r--src/class/msc/msc_device.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/class/msc/msc_device.c b/src/class/msc/msc_device.c
index 15bfafc35..3766e3a25 100644
--- a/src/class/msc/msc_device.c
+++ b/src/class/msc/msc_device.c
@@ -646,7 +646,11 @@ bool mscd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t
break;
}
- TU_ASSERT(prepare_cbw(p_msc));
+ if (!usbd_edpt_stalled(rhport, p_msc->ep_out)) {
+ TU_ASSERT(prepare_cbw(p_msc));
+ } else {
+ p_msc->stage = MSC_STAGE_CMD;
+ }
} else {
// Any xfer ended here is considered unknown error, ignore it
TU_LOG1(" Warning expect SCSI Status but received unknown data\r\n");