summaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorLudovic Desroches <ludovic.desroches@atmel.com>2012-05-23 15:52:15 +0200
committerChris Ball <cjb@laptop.org>2012-06-06 11:57:27 +0200
commitb87cc1b5d3a96ef9f1b3a4f8ce7aaff18e96c994 (patch)
tree8987526a74a875536c06a69f93b16aa8cce5ad98 /drivers/mmc
parentmmc: sdhci: Use DBG() instead of pr_warning() on large timeout (diff)
downloadlinux-b87cc1b5d3a96ef9f1b3a4f8ce7aaff18e96c994.tar.xz
linux-b87cc1b5d3a96ef9f1b3a4f8ce7aaff18e96c994.zip
mmc: atmel-mci: fix data timeout issue
The data timeout timer was configured after mmc_add_host call. So, with bad timings, it was possible to have a mmc request causing mod_timer call on a non setup timer. Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com> Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/atmel-mci.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index 420aca642b14..456c077455cb 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -2314,6 +2314,8 @@ static int __init atmci_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, host);
+ setup_timer(&host->timer, atmci_timeout_timer, (unsigned long)host);
+
/* We need at least one slot to succeed */
nr_slots = 0;
ret = -ENODEV;
@@ -2352,8 +2354,6 @@ static int __init atmci_probe(struct platform_device *pdev)
}
}
- setup_timer(&host->timer, atmci_timeout_timer, (unsigned long)host);
-
dev_info(&pdev->dev,
"Atmel MCI controller at 0x%08lx irq %d, %u slots\n",
host->mapbase, irq, nr_slots);