lkml.org 
[lkml]   [2016]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 65/69] usb: dwc3: Fix size used in dma_free_coherent()
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

    commit 51fbc7c06c8900370c6da5fc4a4685add8fa4fb0 upstream.

    In commit 2abd9d5fa60f9 ("usb: dwc3: ep0: Add chained TRB support"), the
    size of the memory allocated with 'dma_alloc_coherent()' has been modified
    but the corresponding calls to 'dma_free_coherent()' have not been updated
    accordingly.

    This has been spotted with coccinelle, using the following script:
    ////////////////////
    @r@
    expression x0, x1, y0, y1, z0, z1, t0, t1, ret;
    @@

    * ret = dma_alloc_coherent(x0, y0, z0, t0);
    ...
    * dma_free_coherent(x1, y1, ret, t1);

    @script:python@
    y0 << r.y0;
    y1 << r.y1;

    @@
    if y1.find(y0) == -1:
    print "WARNING: sizes look different: '%s' vs '%s'" % (y0, y1)
    ////////////////////

    Fixes: 2abd9d5fa60f9 ("usb: dwc3: ep0: Add chained TRB support")

    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/usb/dwc3/gadget.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/drivers/usb/dwc3/gadget.c
    +++ b/drivers/usb/dwc3/gadget.c
    @@ -2845,7 +2845,7 @@ err3:
    kfree(dwc->setup_buf);

    err2:
    - dma_free_coherent(dwc->dev, sizeof(*dwc->ep0_trb),
    + dma_free_coherent(dwc->dev, sizeof(*dwc->ep0_trb) * 2,
    dwc->ep0_trb, dwc->ep0_trb_addr);

    err1:
    @@ -2869,7 +2869,7 @@ void dwc3_gadget_exit(struct dwc3 *dwc)

    kfree(dwc->setup_buf);

    - dma_free_coherent(dwc->dev, sizeof(*dwc->ep0_trb),
    + dma_free_coherent(dwc->dev, sizeof(*dwc->ep0_trb) * 2,
    dwc->ep0_trb, dwc->ep0_trb_addr);

    dma_free_coherent(dwc->dev, sizeof(*dwc->ctrl_req),

    \
     
     \ /
      Last update: 2016-11-09 12:41    [W:4.114 / U:0.156 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site