Skip to content

Commit

Permalink
imxmmc: fix crash when no platform data is provided
Browse files Browse the repository at this point in the history
Don't crash if no platform data is provided.
In this case assume that card is present.

Signed-off-by: Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
Acked-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
  • Loading branch information
Paulius Zaleckas authored and Pierre Ossman committed Jul 26, 2008
1 parent 5fc63df commit c5d5e9c
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions drivers/mmc/host/imxmmc.c
Original file line number Diff line number Diff line change
Expand Up @@ -905,7 +905,8 @@ static void imxmci_check_status(unsigned long data)
{
struct imxmci_host *host = (struct imxmci_host *)data;

if( host->pdata->card_present(mmc_dev(host->mmc)) != host->present ) {
if (host->pdata && host->pdata->card_present &&
host->pdata->card_present(mmc_dev(host->mmc)) != host->present) {
host->present ^= 1;
dev_info(mmc_dev(host->mmc), "card %s\n",
host->present ? "inserted" : "removed");
Expand Down Expand Up @@ -968,6 +969,8 @@ static int imxmci_probe(struct platform_device *pdev)
host->mmc = mmc;
host->dma_allocated = 0;
host->pdata = pdev->dev.platform_data;
if (!host->pdata)
dev_warn(&pdev->dev, "No platform data provided!\n");

spin_lock_init(&host->lock);
host->res = r;
Expand Down Expand Up @@ -1020,7 +1023,11 @@ static int imxmci_probe(struct platform_device *pdev)
if (ret)
goto out;

host->present = host->pdata->card_present(mmc_dev(mmc));
if (host->pdata && host->pdata->card_present)
host->present = host->pdata->card_present(mmc_dev(mmc));
else /* if there is no way to detect assume that card is present */
host->present = 1;

init_timer(&host->timer);
host->timer.data = (unsigned long)host;
host->timer.function = imxmci_check_status;
Expand Down

0 comments on commit c5d5e9c

Please sign in to comment.