summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Pignat <marc.pignat@hevs.ch>2007-08-09 13:56:29 +0200
committerPierre Ossman <drzeus@drzeus.cx>2007-09-23 19:29:34 +0200
commit1d4de9edd6c9ad676b20729ab15c04b78e9a50c5 (patch)
tree9a55b7cc98723bced21a27a8a33fc01cb389c038
parentmmc: add missing printk levels (diff)
downloadlinux-1d4de9edd6c9ad676b20729ab15c04b78e9a50c5.tar.xz
linux-1d4de9edd6c9ad676b20729ab15c04b78e9a50c5.zip
mmc: at91_mci: disable handling of blocks with size not multiple of 4 bytes
This kind of transfer is not supported, so don't advertise it and make it fail early. Signed-off-by: Marc Pignat <marc.pignat@hevs.ch> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
-rw-r--r--drivers/mmc/host/at91_mci.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/mmc/host/at91_mci.c b/drivers/mmc/host/at91_mci.c
index 8ec317802347..6ba98a49612d 100644
--- a/drivers/mmc/host/at91_mci.c
+++ b/drivers/mmc/host/at91_mci.c
@@ -428,6 +428,14 @@ static void at91_mci_send_command(struct at91mci_host *host, struct mmc_command
}
if (data) {
+
+ if ( data->blksz & 0x3 ) {
+ pr_debug("Unsupported block size\n");
+ cmd->error = -EINVAL;
+ mmc_request_done(host->mmc, host->request);
+ return;
+ }
+
block_length = data->blksz;
blocks = data->blocks;