usb: device: Cancel all transfers on disconnect
Cancel all usb transfers when receiving USB_DC_DISCONNECTED.
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
diff --git a/subsys/usb/usb_device.c b/subsys/usb/usb_device.c
index b70c72d..5759699 100644
--- a/subsys/usb/usb_device.c
+++ b/subsys/usb/usb_device.c
@@ -941,6 +941,10 @@
{
size_t size = (__usb_data_end - __usb_data_start);
+ if (status == USB_DC_DISCONNECTED) {
+ usb_cancel_transfers();
+ }
+
for (size_t i = 0; i < size; i++) {
struct usb_cfg_data *cfg = &__usb_data_start[i];