diff options
| author | sakumisu <[email protected]> | 2022-04-14 16:18:58 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2022-04-14 16:20:09 +0800 |
| commit | c6495ac5af87f854234c1a526a5a8fb40078fa2f (patch) | |
| tree | 61658e30376d7cc6c0f8e154274a5cb5453888f1 | |
| parent | 81bc7dd63a70fa5ca061340d91aae662eb346b1e (diff) | |
fix duplicate calls to the class notify handler when class has multiploe
intfs
| -rw-r--r-- | core/usbd_core.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/core/usbd_core.c b/core/usbd_core.c index ae2d2909..4aee1c51 100644 --- a/core/usbd_core.c +++ b/core/usbd_core.c @@ -1190,14 +1190,10 @@ static void usbd_class_event_notify_handler(uint8_t event, void *arg) usb_slist_for_each(i, &usbd_class_head) { usbd_class_t *devclass = usb_slist_entry(i, struct usbd_class, list); + usbd_interface_t *intf = usb_slist_first_entry(&devclass->intf_list, struct usbd_interface, list); - usb_slist_for_each(j, &devclass->intf_list) - { - usbd_interface_t *intf = usb_slist_entry(j, struct usbd_interface, list); - - if (intf->notify_handler) { - intf->notify_handler(event, arg); - } + if (intf->notify_handler) { + intf->notify_handler(event, arg); } } } |
