lkml.org 
[lkml]   [2021]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.12 100/292] xhci: handle failed buffer copy to URB sg list and fix a W=1 copiler warning
    Date
    From: Mathias Nyman <mathias.nyman@linux.intel.com>

    [ Upstream commit 271a21d8b280b186f8cc9ca6f7151902efde9512 ]

    Set the urb->actual_length to bytes successfully copied in case all bytes
    weren't copied from a temporary buffer to the URB sg list.
    Also print a debug message

    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20210617150354.1512157-4-mathias.nyman@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/usb/host/xhci.c | 9 +++++++--
    1 file changed, 7 insertions(+), 2 deletions(-)

    diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
    index 0d2f1c37ab74..73cdaa3f3067 100644
    --- a/drivers/usb/host/xhci.c
    +++ b/drivers/usb/host/xhci.c
    @@ -1362,12 +1362,17 @@ static void xhci_unmap_temp_buf(struct usb_hcd *hcd, struct urb *urb)
    urb->transfer_buffer_length,
    dir);

    - if (usb_urb_dir_in(urb))
    + if (usb_urb_dir_in(urb)) {
    len = sg_pcopy_from_buffer(urb->sg, urb->num_sgs,
    urb->transfer_buffer,
    buf_len,
    0);
    -
    + if (len != buf_len) {
    + xhci_dbg(hcd_to_xhci(hcd),
    + "Copy from tmp buf to urb sg list failed\n");
    + urb->actual_length = len;
    + }
    + }
    urb->transfer_flags &= ~URB_DMA_MAP_SINGLE;
    kfree(urb->transfer_buffer);
    urb->transfer_buffer = NULL;
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-19 20:10    [W:3.730 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site