usb: mtu3: unlock @mtu->lock just before giving back request
authorChunfeng Yun <chunfeng.yun@mediatek.com>
Mon, 17 Apr 2023 02:52:00 +0000 (10:52 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 20 Apr 2023 09:17:05 +0000 (11:17 +0200)
No need unlock @mtu->lock when unmap request, unlock it just before
giving back request, due to we do not lock this spinlock when map
the request.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Link: https://lore.kernel.org/r/20230417025203.18097-4-chunfeng.yun@mediatek.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/mtu3/mtu3_gadget.c

index c0264d5..ad0eeac 100644 (file)
@@ -23,7 +23,6 @@ __acquires(mep->mtu->lock)
                req->status = status;
 
        trace_mtu3_req_complete(mreq);
-       spin_unlock(&mtu->lock);
 
        /* ep0 makes use of PIO, needn't unmap it */
        if (mep->epnum)
@@ -32,6 +31,7 @@ __acquires(mep->mtu->lock)
        dev_dbg(mtu->dev, "%s complete req: %p, sts %d, %d/%d\n",
                mep->name, req, req->status, req->actual, req->length);
 
+       spin_unlock(&mtu->lock);
        usb_gadget_giveback_request(&mep->ep, req);
        spin_lock(&mtu->lock);
 }