From c6495ac5af87f854234c1a526a5a8fb40078fa2f Mon Sep 17 00:00:00 2001 From: sakumisu <1203593632@qq.com> Date: Thu, 14 Apr 2022 16:18:58 +0800 Subject: [PATCH] fix duplicate calls to the class notify handler when class has multiploe intfs --- core/usbd_core.c | 10 +++------- 1 file 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); } } }