On 2/1/21 11:55 PM, Dan Carpenter wrote:
> The "ring->addr = addr;" assignment is done a few lines later so we
> can't use "ring->addr" yet.  The correct dma_handle is "addr".
> 
> Fixes: 650d1603825d ("soc: qcom: ipa: the generic software interface")
> Signed-off-by: Dan Carpenter <dan.carpen...@oracle.com>

Yikes.  Thank you for the fix.

Reviewed-by: Alex Elder <el...@linaro.org>

> ---
> Smatch also complians about:
> 
>     drivers/net/ipa/gsi.c:1739 gsi_channel_setup()
>     warn: missing error code 'ret'
> 
> It probably should return -EINVAL, but I'm not positive.
> 
>  drivers/net/ipa/gsi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c
> index f79cf3c327c1..b559d14271e2 100644
> --- a/drivers/net/ipa/gsi.c
> +++ b/drivers/net/ipa/gsi.c
> @@ -1373,7 +1373,7 @@ static int gsi_ring_alloc(struct gsi *gsi, struct 
> gsi_ring *ring, u32 count)
>       /* Hardware requires a 2^n ring size, with alignment equal to size */
>       ring->virt = dma_alloc_coherent(dev, size, &addr, GFP_KERNEL);
>       if (ring->virt && addr % size) {
> -             dma_free_coherent(dev, size, ring->virt, ring->addr);
> +             dma_free_coherent(dev, size, ring->virt, addr);
>               dev_err(dev, "unable to alloc 0x%zx-aligned ring buffer\n",
>                       size);
>               return -EINVAL; /* Not a good error value, but distinct */
> 

Reply via email to