diff options
author | Peng Fan <peng.fan@nxp.com> | 2019-08-06 02:47:50 +0000 |
---|---|---|
committer | Peng Fan <peng.fan@nxp.com> | 2019-08-09 13:45:25 +0800 |
commit | 425d83346d7b2e6946633a7b96e6116f68b6e21f (patch) | |
tree | 21bb437c753d3f5906eeb6e536912eafaed2f756 /drivers | |
parent | 7835e8732262e3827e5604f82b56aabc5d720c45 (diff) |
mmc: bcm: fix uninitialized pointer deref on probe
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mmc/bcm2835_sdhci.c | 4 | ||||
-rw-r--r-- | drivers/mmc/bcmstb_sdhci.c | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/drivers/mmc/bcm2835_sdhci.c b/drivers/mmc/bcm2835_sdhci.c index 08bddd410e..bf3304c4dc 100644 --- a/drivers/mmc/bcm2835_sdhci.c +++ b/drivers/mmc/bcm2835_sdhci.c @@ -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); diff --git a/drivers/mmc/bcmstb_sdhci.c b/drivers/mmc/bcmstb_sdhci.c index eef46f3af1..c14f8289e6 100644 --- a/drivers/mmc/bcmstb_sdhci.c +++ b/drivers/mmc/bcmstb_sdhci.c @@ -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); |