[PATCH] net: macb: Check return value of dma_set_mask_and_coherent()

Sergio Perez Gonzalez posted 1 patch 6 months, 3 weeks ago
drivers/net/ethernet/cadence/macb_main.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
[PATCH] net: macb: Check return value of dma_set_mask_and_coherent()
Posted by Sergio Perez Gonzalez 6 months, 3 weeks ago
Issue flagged by coverity. Add a safety check for the return value
of dma_set_mask_and_coherent, go to a safe exit if it returns error.

Link: https://scan7.scan.coverity.com/#/project-view/53936/11354?selectedIssue=1643754

Signed-off-by: Sergio Perez Gonzalez <sperezglz@gmail.com>
---
 drivers/net/ethernet/cadence/macb_main.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index e1e8bd2ec155..d1f1ae5ea161 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -5283,7 +5283,11 @@ static int macb_probe(struct platform_device *pdev)
 
 #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
 	if (GEM_BFEXT(DAW64, gem_readl(bp, DCFG6))) {
-		dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(44));
+		err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(44));
+		if (err) {
+			dev_err(&pdev->dev, "failed to set DMA mask\n");
+			goto err_out_free_netdev;
+		}
 		bp->hw_dma_cap |= HW_DMA_CAP_64B;
 	}
 #endif
-- 
2.43.0
Re: [PATCH] net: macb: Check return value of dma_set_mask_and_coherent()
Posted by Claudiu Beznea 6 months, 3 weeks ago

On 26.05.2025 06:20, Sergio Perez Gonzalez wrote:
> Issue flagged by coverity. Add a safety check for the return value
> of dma_set_mask_and_coherent, go to a safe exit if it returns error.
> 
> Link: https://scan7.scan.coverity.com/#/project-view/53936/11354?selectedIssue=1643754
> 
> Signed-off-by: Sergio Perez Gonzalez <sperezglz@gmail.com>

Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>

> ---
>  drivers/net/ethernet/cadence/macb_main.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
> index e1e8bd2ec155..d1f1ae5ea161 100644
> --- a/drivers/net/ethernet/cadence/macb_main.c
> +++ b/drivers/net/ethernet/cadence/macb_main.c
> @@ -5283,7 +5283,11 @@ static int macb_probe(struct platform_device *pdev)
>  
>  #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
>  	if (GEM_BFEXT(DAW64, gem_readl(bp, DCFG6))) {
> -		dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(44));
> +		err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(44));
> +		if (err) {
> +			dev_err(&pdev->dev, "failed to set DMA mask\n");
> +			goto err_out_free_netdev;
> +		}
>  		bp->hw_dma_cap |= HW_DMA_CAP_64B;
>  	}
>  #endif