DF-1016 / fix.diff
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 <sys/types.h> #include <sys/systm.h> #include <sys/kernel.h> +#include <sys/proc.h> #include <sys/bus.h> #include <sys/module.h> #include <sys/lock.h> @@ -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; |