Messages in this thread Patch in this message | | | Date | Sat, 04 Jun 2005 21:54:53 +0200 | From | Pierre Ossman <> | 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); | |