lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 19 Aug 2020 14:48:33 +0200
From:   Krzysztof Kozlowski <krzk@...nel.org>
To:     Łukasz Stelmach <l.stelmach@...sung.com>
Cc:     Kukjin Kim <kgene@...nel.org>, Andi Shyti <andi@...zian.org>,
        Mark Brown <broonie@...nel.org>, linux-spi@...r.kernel.org,
        linux-samsung-soc@...r.kernel.org,
        linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
        m.szyprowski@...sung.com, b.zolnierkie@...sung.com
Subject: Re: [PATCH 6/8] spi: spi-s3c64xx: Check return values

On Wed, Aug 19, 2020 at 02:32:06PM +0200, Łukasz Stelmach wrote:
> Signed-off-by: Łukasz Stelmach <l.stelmach@...sung.com>
> ---
>  drivers/spi/spi-s3c64xx.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)

Oh, come on, stop fixing the same local issue without fixing bigger
picture... or at least documenting why bigger picture does not have to be
fixed and simple 'return' is enough.

That's the third, same fix for the same problem.

https://lore.kernel.org/lkml/20190314064202.14864-1-kjlu@umn.edu/
https://lore.kernel.org/lkml/20170207204520.h2eo3yn5kge56lk7@kozik-lap/

Best regards,
Krzysztof

> 
> diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
> index 505789f91fdf..27d77600a820 100644
> --- a/drivers/spi/spi-s3c64xx.c
> +++ b/drivers/spi/spi-s3c64xx.c
> @@ -273,6 +273,7 @@ static void prepare_dma(struct s3c64xx_spi_dma_data *dma,
>  	struct s3c64xx_spi_driver_data *sdd;
>  	struct dma_slave_config config;
>  	struct dma_async_tx_descriptor *desc;
> +	int ret;
>  
>  	memset(&config, 0, sizeof(config));
>  
> @@ -296,11 +297,22 @@ static void prepare_dma(struct s3c64xx_spi_dma_data *dma,
>  
>  	desc = dmaengine_prep_slave_sg(dma->ch, sgt->sgl, sgt->nents,
>  				       dma->direction, DMA_PREP_INTERRUPT);
> +	if (!desc) {
> +		dev_err(&sdd->pdev->dev, "unable to prepare %s scatterlist",
> +			dma->direction == DMA_DEV_TO_MEM ? "rx" : "tx");
> +		return;
> +	}
>  
>  	desc->callback = s3c64xx_spi_dmacb;
>  	desc->callback_param = dma;
>  
>  	dma->cookie = dmaengine_submit(desc);
> +	ret = dma_submit_error(dma->cookie);
> +	if (ret) {
> +		dev_err(&sdd->pdev->dev, "dmaengine_submit() failed %d", ret);
> +		return;
> +	}
> +
>  	dma_async_issue_pending(dma->ch);
>  }
>  
> -- 
> 2.26.2
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ