[PATCH] mmc: atmel: don't test host->data

Ludovic Desroches ludovic.desroches at atmel.com
Wed May 7 07:43:06 PDT 2014


On Tue, May 06, 2014 at 05:43:26PM +0200, Alexandre Belloni wrote:
> Found using smatch:
> drivers/mmc/host/atmel-mci.c:827 atmci_pdc_complete() warn: variable
> dereferenced before check 'host->data' (see line 807)
> 
> Stop testing host->data as it is not NULL at that point.

I agree

> 
> Signed-off-by: Alexandre Belloni <alexandre.belloni at free-electrons.com>
Acked-by: Ludovic Desroches <ludovic.desroches at atmel.com>

> ---
>  drivers/mmc/host/atmel-mci.c | 13 +++----------
>  1 file changed, 3 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
> index 42706ea0ba85..aece7cafbb97 100644
> --- a/drivers/mmc/host/atmel-mci.c
> +++ b/drivers/mmc/host/atmel-mci.c
> @@ -820,16 +820,9 @@ static void atmci_pdc_complete(struct atmel_mci *host)
>  
>  	atmci_pdc_cleanup(host);
>  
> -	/*
> -	 * If the card was removed, data will be NULL. No point trying
> -	 * to send the stop command or waiting for NBUSY in this case.
> -	 */
> -	if (host->data) {
> -		dev_dbg(&host->pdev->dev,
> -		        "(%s) set pending xfer complete\n", __func__);
> -		atmci_set_pending(host, EVENT_XFER_COMPLETE);
> -		tasklet_schedule(&host->tasklet);
> -	}
> +	dev_dbg(&host->pdev->dev, "(%s) set pending xfer complete\n", __func__);
> +	atmci_set_pending(host, EVENT_XFER_COMPLETE);
> +	tasklet_schedule(&host->tasklet);
>  }
>  
>  static void atmci_dma_cleanup(struct atmel_mci *host)
> -- 
> 1.9.1
> 



More information about the linux-arm-kernel mailing list