lkml.org 
[lkml]   [2021]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH][linux-next] net: enetc: unmap DMA in enetc_send_cmd()
Date
> -----Original Message-----
> From: Tim Gardner <tim.gardner@canonical.com>
> Sent: Tuesday, October 19, 2021 9:20 PM
[...]
> Subject: [PATCH][linux-next] net: enetc: unmap DMA in enetc_send_cmd()
>
> Coverity complains of a possible dereference of a null return value.
>
> 5. returned_null: kzalloc returns NULL. [show details]
> 6. var_assigned: Assigning: si_data = NULL return value from kzalloc.
> 488 si_data = kzalloc(data_size, __GFP_DMA | GFP_KERNEL);
> 489 cbd.length = cpu_to_le16(data_size);
> 490
> 491 dma = dma_map_single(&priv->si->pdev->dev, si_data,
> 492 data_size, DMA_FROM_DEVICE);
>
> While this kzalloc() is unlikely to fail, I did notice that the function
> returned without unmapping si_data.
>
> Fix this by refactoring the error paths and checking for kzalloc()
> failure.
>
> Fixes: 888ae5a3952ba ("net: enetc: add tc flower psfp offload driver")
> Cc: Claudiu Manoil <claudiu.manoil@nxp.com>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: netdev@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org (open list)
> Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
> ---
>
> I am curious why you do not need to call dma_sync_single_for_device()
> before enetc_send_cmd()
> in order to flush the contents of CPU cache to RAM. Is it because
> __GFP_DMA marks
> that page as uncached ? Or is it because of the SOC this runs on ?
>

Not sure how it works like this, but I think dma_alloc_coherent() should have
been used here instead of the kmalloc + dma_map scheme. I don't have the
means to test this particular code path however.

Acked-by: Claudiu Manoil <claudiu.manoil@nxp.com>

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