lkml.org 
[lkml]   [2005]   [Jun]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] Support for read-only MMC cards
If the card does not support the write commands then only allow
read-only access.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
--- linux-2.6.11/drivers/mmc/mmc_block.c.orig 2005-06-04 21:44:20.000000000 +0200
+++ linux-2.6.11/drivers/mmc/mmc_block.c 2005-06-04 21:48:46.000000000 +0200
@@ -95,6 +95,10 @@ static int mmc_blk_open(struct inode *in
if (md->usage == 2)
check_disk_change(inode->i_bdev);
ret = 0;
+
+ if ((filp->f_mode & FMODE_WRITE) &&
+ !(md->queue.card->csd.cmdclass & CCC_BLOCK_WRITE))
+ ret = -EROFS;
}

return ret;
@@ -403,9 +407,12 @@ static int mmc_blk_probe(struct mmc_card
if (err)
goto out;

- printk(KERN_INFO "%s: %s %s %dKiB\n",
+ printk(KERN_INFO "%s: %s %s %dKiB",
md->disk->disk_name, mmc_card_id(card), mmc_card_name(card),
(card->csd.capacity << card->csd.read_blkbits) / 1024);
+ if (!(card->csd.cmdclass & CCC_BLOCK_WRITE))
+ printk(" (ro)");
+ printk("\n");

mmc_set_drvdata(card, md);
add_disk(md->disk);
\
 
 \ /
  Last update: 2005-06-04 22:02    [from the cache]
©2003-2011 Jasper Spaans