net: enetc: unmap DMA in enetc_send_cmd()
authorTim Gardner <tim.gardner@canonical.com>
Tue, 19 Oct 2021 18:19:50 +0000 (12:19 -0600)
committerDavid S. Miller <davem@davemloft.net>
Wed, 20 Oct 2021 13:32:15 +0000 (14:32 +0100)
commitcd4bc63de774eee95e9bac26a565cd80e0fca421
tree56e25c10c74ce5287a44a07303c62faf8a2db98e
parent5b92be649605504e1019a1ad0c95b0d74a4e2be1
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>
Acked-by: Claudiu Manoil <claudiu.manoil@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/enetc/enetc_qos.c