diff mbox series

[U-Boot] mmc: Fix uninitialised priv member

Message ID 1518189878-14645-1-git-send-email-alex.kiernan@gmail.com
State Accepted
Commit 4a41fec589b5f57bc83fca423222c6a1860a50f5
Delegated to: Jaehoon Chung
Headers show
Series [U-Boot] mmc: Fix uninitialised priv member | expand

Commit Message

Alex Kiernan Feb. 9, 2018, 3:24 p.m. UTC
When using omap_hsmmc without the device model then the allocation
of mmc->priv ends up uninitialised.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
I've a board (AM335xx based) which boots fine with 2018-01, with
2018-03-rc1 (actually 1811a92) it fails in the MLO:

  U-Boot SPL 2018.03-rc1-00222-g128a503-dirty (Feb 09 2018 - 11:51:50 +0000)
  Trying to boot from MMC2
  omap_hsmmc_send_cmd : DMA timeout: No status update
  mmc_init: -110, time 1026
  spl: mmc init failed with error: -110
  SPL: failed to boot from all boot devices
  ### ERROR ### Please RESET the board ###

Bisecting it out, it's this commit:

  f0d53e8 mmc: omap_hsmmc: Add support for DMA (ADMA2)

 drivers/mmc/omap_hsmmc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Robert Nelson Feb. 15, 2018, 9:07 p.m. UTC | #1
On Fri, Feb 9, 2018 at 9:24 AM, Alex Kiernan <alex.kiernan@gmail.com> wrote:
> When using omap_hsmmc without the device model then the allocation
> of mmc->priv ends up uninitialised.
>
> Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>

Awesome!

This fixes: am335x_boneblack_defconfig

Tested-by: Robert Nelson <robertcnelson@gmail.com>

Regards,
Sam Protsenko Feb. 15, 2018, 9:31 p.m. UTC | #2
On 9 February 2018 at 17:24, Alex Kiernan <alex.kiernan@gmail.com> wrote:
> When using omap_hsmmc without the device model then the allocation
> of mmc->priv ends up uninitialised.
>
> Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>

Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>

A good one, thanks!

> ---
> I've a board (AM335xx based) which boots fine with 2018-01, with
> 2018-03-rc1 (actually 1811a92) it fails in the MLO:
>
>   U-Boot SPL 2018.03-rc1-00222-g128a503-dirty (Feb 09 2018 - 11:51:50 +0000)
>   Trying to boot from MMC2
>   omap_hsmmc_send_cmd : DMA timeout: No status update
>   mmc_init: -110, time 1026
>   spl: mmc init failed with error: -110
>   SPL: failed to boot from all boot devices
>   ### ERROR ### Please RESET the board ###
>
> Bisecting it out, it's this commit:
>
>   f0d53e8 mmc: omap_hsmmc: Add support for DMA (ADMA2)
>
>  drivers/mmc/omap_hsmmc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c
> index b12d6d9..c6b3f25 100644
> --- a/drivers/mmc/omap_hsmmc.c
> +++ b/drivers/mmc/omap_hsmmc.c
> @@ -918,7 +918,7 @@ int omap_mmc_init(int dev_index, uint host_caps_mask, uint f_max, int cd_gpio,
>         struct mmc_config *cfg;
>         uint host_caps_val;
>
> -       priv = malloc(sizeof(*priv));
> +       priv = calloc(1, sizeof(*priv));
>         if (priv == NULL)
>                 return -1;
>
> --
> 2.7.4
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> https://lists.denx.de/listinfo/u-boot
Jaehoon Chung Feb. 19, 2018, 11:23 a.m. UTC | #3
On 02/10/2018 12:24 AM, Alex Kiernan wrote:
> When using omap_hsmmc without the device model then the allocation
> of mmc->priv ends up uninitialised.
> 
> Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>

Applied to u-boot-mmc. Thanks!

Best Regards,
Jaehoon Chung

> ---
> I've a board (AM335xx based) which boots fine with 2018-01, with
> 2018-03-rc1 (actually 1811a92) it fails in the MLO:
> 
>   U-Boot SPL 2018.03-rc1-00222-g128a503-dirty (Feb 09 2018 - 11:51:50 +0000)
>   Trying to boot from MMC2
>   omap_hsmmc_send_cmd : DMA timeout: No status update
>   mmc_init: -110, time 1026
>   spl: mmc init failed with error: -110
>   SPL: failed to boot from all boot devices
>   ### ERROR ### Please RESET the board ###
> 
> Bisecting it out, it's this commit:
> 
>   f0d53e8 mmc: omap_hsmmc: Add support for DMA (ADMA2)
> 
>  drivers/mmc/omap_hsmmc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c
> index b12d6d9..c6b3f25 100644
> --- a/drivers/mmc/omap_hsmmc.c
> +++ b/drivers/mmc/omap_hsmmc.c
> @@ -918,7 +918,7 @@ int omap_mmc_init(int dev_index, uint host_caps_mask, uint f_max, int cd_gpio,
>  	struct mmc_config *cfg;
>  	uint host_caps_val;
>  
> -	priv = malloc(sizeof(*priv));
> +	priv = calloc(1, sizeof(*priv));
>  	if (priv == NULL)
>  		return -1;
>  
>
diff mbox series

Patch

diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c
index b12d6d9..c6b3f25 100644
--- a/drivers/mmc/omap_hsmmc.c
+++ b/drivers/mmc/omap_hsmmc.c
@@ -918,7 +918,7 @@  int omap_mmc_init(int dev_index, uint host_caps_mask, uint f_max, int cd_gpio,
 	struct mmc_config *cfg;
 	uint host_caps_val;
 
-	priv = malloc(sizeof(*priv));
+	priv = calloc(1, sizeof(*priv));
 	if (priv == NULL)
 		return -1;