lkml.org 
[lkml]   [2022]   [Sep]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.19 132/155] usb: xhci-mtk: fix bandwidth release issue
    Date
    From: Chunfeng Yun <chunfeng.yun@mediatek.com>

    commit 6020f480004a80cdad4ae5ee180a231c4f65595b upstream.

    This happens when @udev->reset_resume is set to true, when usb resume,
    the flow as below:
    - hub_resume
    - usb_disable_interface
    - usb_disable_endpoint
    - usb_hcd_disable_endpoint
    - xhci_endpoint_disable // it set @ep->hcpriv to NULL

    Then when reset usb device, it will drop allocated endpoints,
    the flow as below:
    - usb_reset_and_verify_device
    - usb_hcd_alloc_bandwidth
    - xhci_mtk_drop_ep

    but @ep->hcpriv is already set to NULL, the bandwidth will be not
    released anymore.

    Due to the added endponts are stored in hash table, we can drop the check
    of @ep->hcpriv.

    Fixes: 4ce186665e7c ("usb: xhci-mtk: Do not use xhci's virt_dev in drop_endpoint")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
    Link: https://lore.kernel.org/r/20220819080556.32215-2-chunfeng.yun@mediatek.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/usb/host/xhci-mtk-sch.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/drivers/usb/host/xhci-mtk-sch.c
    +++ b/drivers/usb/host/xhci-mtk-sch.c
    @@ -764,8 +764,8 @@ int xhci_mtk_drop_ep(struct usb_hcd *hcd
    if (ret)
    return ret;

    - if (ep->hcpriv)
    - drop_ep_quirk(hcd, udev, ep);
    + /* needn't check @ep->hcpriv, xhci_endpoint_disable set it NULL */
    + drop_ep_quirk(hcd, udev, ep);

    return 0;
    }

    \
     
     \ /
      Last update: 2022-09-06 16:19    [W:2.865 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site