]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mmc: bcm: fix uninitialized pointer deref on probe
authorPeng Fan <peng.fan@nxp.com>
Tue, 6 Aug 2019 02:47:50 +0000 (02:47 +0000)
committerPeng Fan <peng.fan@nxp.com>
Fri, 9 Aug 2019 05:45:25 +0000 (13:45 +0800)
Commit 3d296365e4e8 ("mmc: sdhci: Add support for
sdhci-caps-mask") sdhci_setup_cfg() expects a valid sdhci_host mmc
field.

Fixes: 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask")
Cc: Faiz Abbas <faiz_abbas@ti.com>
Cc: Matthias Brugger <mbrugger@suse.com>
Cc: Thomas Fitzsimmons <fitzsim@fitzsim.org>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
drivers/mmc/bcm2835_sdhci.c
drivers/mmc/bcmstb_sdhci.c

index 08bddd410e0be51d7f44747b950faffc1206fb7d..bf3304c4dc542c60dd0736a4940225c1724c47fa 100644 (file)
@@ -214,6 +214,9 @@ static int bcm2835_sdhci_probe(struct udevice *dev)
        host->voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;
        host->ops = &bcm2835_ops;
 
+       host->mmc = &plat->mmc;
+       host->mmc->dev = dev;
+
        ret = sdhci_setup_cfg(&plat->cfg, host, emmc_freq, MIN_FREQ);
        if (ret) {
                debug("%s: Failed to setup SDHCI (err=%d)\n", __func__, ret);
@@ -221,7 +224,6 @@ static int bcm2835_sdhci_probe(struct udevice *dev)
        }
 
        upriv->mmc = &plat->mmc;
-       host->mmc = &plat->mmc;
        host->mmc->priv = host;
 
        return sdhci_probe(dev);
index eef46f3af15b3141ae8bd53654da25a0c90765ba..c14f8289e6c6d0860c8bebd10012e58a60aa040d 100644 (file)
@@ -73,6 +73,8 @@ static int sdhci_bcmstb_probe(struct udevice *dev)
        if (ret)
                return ret;
 
+       host->mmc = &plat->mmc;
+       host->mmc->dev = dev;
        ret = sdhci_setup_cfg(&plat->cfg, host,
                              BCMSTB_SDHCI_MAXIMUM_CLOCK_FREQUENCY,
                              BCMSTB_SDHCI_MINIMUM_CLOCK_FREQUENCY);
@@ -80,7 +82,6 @@ static int sdhci_bcmstb_probe(struct udevice *dev)
                return ret;
 
        upriv->mmc = &plat->mmc;
-       host->mmc = &plat->mmc;
        host->mmc->priv = host;
 
        return sdhci_probe(dev);