lkml.org 
[lkml]   [2005]   [Oct]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] [MMC] Use command class to determine read-only status.
Date
If a card doesn't support the "write block" command class then
any attempts to open the device should reflect this by denying
write access.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
---

drivers/mmc/mmc_block.c | 11 +++++++----
1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/mmc/mmc_block.c b/drivers/mmc/mmc_block.c
--- a/drivers/mmc/mmc_block.c
+++ b/drivers/mmc/mmc_block.c
@@ -97,7 +97,8 @@ static int mmc_blk_open(struct inode *in
ret = 0;

if ((filp->f_mode & FMODE_WRITE) &&
- mmc_card_readonly(md->queue.card))
+ (!(md->queue.card->csd.cmdclass & CCC_BLOCK_WRITE) ||
+ mmc_card_readonly(md->queue.card)))
ret = -EROFS;
}

@@ -407,10 +408,12 @@ static int mmc_blk_probe(struct mmc_card
if (err)
goto out;

- printk(KERN_INFO "%s: %s %s %dKiB %s\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,
- mmc_card_readonly(card)?"(ro)":"");
+ (card->csd.capacity << card->csd.read_blkbits) / 1024);
+ if (mmc_card_readonly(card) || !(card->csd.cmdclass & CCC_BLOCK_WRITE))
+ printk("(ro)");
+ printk("\n");

mmc_set_drvdata(card, md);
add_disk(md->disk);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-10-28 09:39    [W:0.055 / U:1.260 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site