diff --git a/drivers/usb/gadget/function/f_midi2.c b/drivers/usb/gadget/function/f_midi2.c index 19fdac024343..b9bb09c4b51a 100644 --- a/drivers/usb/gadget/function/f_midi2.c +++ b/drivers/usb/gadget/function/f_midi2.c @@ -1163,6 +1163,9 @@ static void f_midi2_free_ep_reqs(struct f_midi2_usb_ep *usb_ep) struct f_midi2 *midi2 = usb_ep->card; int i; + if (!usb_ep->usb_ep || !usb_ep->num_reqs) + return; + for (i = 0; i < midi2->info.num_reqs; i++) { if (!usb_ep->reqs[i].req) continue; @@ -1203,6 +1206,9 @@ static int f_midi2_init_ep(struct f_midi2 *midi2, struct f_midi2_ep *ep, /* Free EP */ static void f_midi2_free_ep(struct f_midi2_usb_ep *usb_ep) { + if(!usb_ep->usb_ep) + return; + f_midi2_drop_reqs(usb_ep); f_midi2_free_ep_reqs(usb_ep);