diff --git a/sys/bus/u4b/usb_dev.c b/sys/bus/u4b/usb_dev.c --- a/sys/bus/u4b/usb_dev.c +++ b/sys/bus/u4b/usb_dev.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -1042,7 +1043,12 @@ break; } f->async_p = USB_TD_GET_PROC(td); + if (f->async_p != NULL) + PHOLD(f->async_p); } else { + if (f->async_p != NULL) { + PRELE(f->async_p); + } f->async_p = NULL; } break;