]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/usb/gadget/udc/renesas_usb3.c
usb: gadget: udc: renesas_usb3: protect usb3_ep->started in usb3_start_pipen()
[karo-tx-linux.git] / drivers / usb / gadget / udc / renesas_usb3.c
index 1cc5f0deefba27c37b21081a102f2fad5714b737..62dc9c7798e78a034a9e63f8c3163fcebec9e57a 100644 (file)
@@ -1415,12 +1415,12 @@ static void usb3_start_pipen(struct renesas_usb3_ep *usb3_ep,
        int ret = -EAGAIN;
        u32 enable_bits = 0;
 
+       spin_lock_irqsave(&usb3->lock, flags);
        if (usb3_ep->halt || usb3_ep->started)
-               return;
+               goto out;
        if (usb3_req != usb3_req_first)
-               return;
+               goto out;
 
-       spin_lock_irqsave(&usb3->lock, flags);
        if (usb3_pn_change(usb3, usb3_ep->num) < 0)
                goto out;