| From 5723fbf3c2032c4c22827ca52a649e23fb3a80df Mon Sep 17 00:00:00 2001 |
| From: Mathias Nyman <mathias.nyman@linux.intel.com> |
| Date: Fri, 4 Oct 2019 14:59:26 +0300 |
| Subject: [PATCH] xhci: Fix false warning message about wrong bounce buffer |
| write length |
| |
| commit c03101ff4f74bb30679c1a03d551ecbef1024bf6 upstream. |
| |
| The check printing out the "WARN Wrong bounce buffer write length:" |
| uses incorrect values when comparing bytes written from scatterlist |
| to bounce buffer. Actual copied lengths are fine. |
| |
| The used seg->bounce_len will be set to equal new_buf_len a few lines later |
| in the code, but is incorrect when doing the comparison. |
| |
| The patch which added this false warning was backported to 4.8+ kernels |
| so this should be backported as far as well. |
| |
| Cc: <stable@vger.kernel.org> # v4.8+ |
| Fixes: 597c56e372da ("xhci: update bounce buffer with correct sg num") |
| Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> |
| Link: https://lore.kernel.org/r/1570190373-30684-2-git-send-email-mathias.nyman@linux.intel.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c |
| index 121782e22c01..aa7231f518f6 100644 |
| --- a/drivers/usb/host/xhci-ring.c |
| +++ b/drivers/usb/host/xhci-ring.c |
| @@ -3177,10 +3177,10 @@ static int xhci_align_td(struct xhci_hcd *xhci, struct urb *urb, u32 enqd_len, |
| if (usb_urb_dir_out(urb)) { |
| len = sg_pcopy_to_buffer(urb->sg, urb->num_sgs, |
| seg->bounce_buf, new_buff_len, enqd_len); |
| - if (len != seg->bounce_len) |
| + if (len != new_buff_len) |
| xhci_warn(xhci, |
| "WARN Wrong bounce buffer write length: %zu != %d\n", |
| - len, seg->bounce_len); |
| + len, new_buff_len); |
| seg->bounce_dma = dma_map_single(dev, seg->bounce_buf, |
| max_pkt, DMA_TO_DEVICE); |
| } else { |
| -- |
| 2.7.4 |
| |