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 08bddd4..bf3304c 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 eef46f3..c14f828 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);