lkml.org 
[lkml]   [2022]   [Jun]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.18 121/181] usb: chipidea: udc: check request status before setting device address
    Date
    From: Xu Yang <xu.yang_2@nxp.com>

    commit b24346a240b36cfc4df194d145463874985aa29b upstream.

    The complete() function may be called even though request is not
    completed. In this case, it's necessary to check request status so
    as not to set device address wrongly.

    Fixes: 10775eb17bee ("usb: chipidea: udc: update gadget states according to ch9")
    cc: <stable@vger.kernel.org>
    Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
    Link: https://lore.kernel.org/r/20220623030242.41796-1-xu.yang_2@nxp.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/usb/chipidea/udc.c | 3 +++
    1 file changed, 3 insertions(+)

    --- a/drivers/usb/chipidea/udc.c
    +++ b/drivers/usb/chipidea/udc.c
    @@ -1048,6 +1048,9 @@ isr_setup_status_complete(struct usb_ep
    struct ci_hdrc *ci = req->context;
    unsigned long flags;

    + if (req->status < 0)
    + return;
    +
    if (ci->setaddr) {
    hw_usb_set_address(ci, ci->address);
    ci->setaddr = false;

    \
     
     \ /
      Last update: 2022-06-27 13:59    [W:3.242 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site