[U-Boot] [PATCH] mmc: sdhci: Check that ops are defined

Michal Simek michal.simek at xilinx.com
Mon May 14 13:28:17 UTC 2018


On 14.5.2018 14:02, Ramon Fried wrote:
> The check is necessary to avoid NULL pointer dereference.
> 
> Signed-off-by: Ramon Fried <ramon.fried at gmail.com>
> ---
>  drivers/mmc/sdhci.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
> index 8971a1122c..400f87e134 100644
> --- a/drivers/mmc/sdhci.c
> +++ b/drivers/mmc/sdhci.c
> @@ -314,7 +314,7 @@ static int sdhci_execute_tuning(struct udevice *dev, uint opcode)
>  
>  	debug("%s\n", __func__);
>  
> -	if (host->ops->platform_execute_tuning) {
> +	if (host->ops && host->ops->platform_execute_tuning) {
>  		err = host->ops->platform_execute_tuning(mmc, opcode);
>  		if (err)
>  			return err;
> @@ -347,7 +347,7 @@ static int sdhci_set_clock(struct mmc *mmc, unsigned int clock)
>  	if (clock == 0)
>  		return 0;
>  
> -	if (host->ops->set_delay)
> +	if (host->ops && host->ops->set_delay)
>  		host->ops->set_delay(host);
>  
>  	if (SDHCI_GET_VERSION(host) >= SDHCI_SPEC_300) {
> 

Reviewed-by: Michal Simek <michal.simek at xilinx.com>
Fixes:	ca992e82e4e3 ("mmc: sdhci: Invoke platform specific tuning and
delay routines")

Tom: Can you please pick this directly?

Some drivers are not filling host->ops that's why access cause a hang.
Also it is kind of interesting that travis didn't show any issue.

Thanks,
Michal


More information about the U-Boot mailing list