* [PATCH] [MMC] Use command class to determine read-only status.
@ 2005-10-28 7:36 Pierre Ossman
2005-10-28 20:14 ` Russell King
0 siblings, 1 reply; 4+ messages in thread
From: Pierre Ossman @ 2005-10-28 7:36 UTC (permalink / raw)
To: rmk+lkml; +Cc: Pierre Ossman, linux-kernel
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);
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] [MMC] Use command class to determine read-only status.
2005-10-28 7:36 [PATCH] [MMC] Use command class to determine read-only status Pierre Ossman
@ 2005-10-28 20:14 ` Russell King
2005-10-29 22:39 ` Pierre Ossman
0 siblings, 1 reply; 4+ messages in thread
From: Russell King @ 2005-10-28 20:14 UTC (permalink / raw)
To: Pierre Ossman; +Cc: linux-kernel
On Fri, Oct 28, 2005 at 09:36:05AM +0200, Pierre Ossman wrote:
> 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.
I'd rather we kept printk messages as one printk if at all possible.
How about encapsulating both of these conditions into an inline
function:
static inline int mmc_blk_readonly(struct mmc_card *card)
{
return mmc_card_readonly(card) ||
!(card->csd.cmdclass & CCC_BLOCK_WRITE);
}
> 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))
+ mmc_blk_readonly(md->queue.card))
> printk(KERN_INFO "%s: %s %s %dKiB %s\n",
> 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)":"");
+ mmc_blk_readonly(card) ? "(ro)" : "");
As a bonus, I think this makes the code a lot more readable... but
then I am biased. 8)
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] [MMC] Use command class to determine read-only status.
2005-10-28 20:14 ` Russell King
@ 2005-10-29 22:39 ` Pierre Ossman
2005-10-30 10:16 ` Russell King
0 siblings, 1 reply; 4+ messages in thread
From: Pierre Ossman @ 2005-10-29 22:39 UTC (permalink / raw)
To: rmk+lkml, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 422 bytes --]
Russell King wrote:
> On Fri, Oct 28, 2005 at 09:36:05AM +0200, Pierre Ossman wrote:
>> 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.
>
> I'd rather we kept printk messages as one printk if at all possible.
> How about encapsulating both of these conditions into an inline
> function:
>
Ok with me. New patch included.
[-- Attachment #2: mmc-readonly-ccc.patch --]
[-- Type: text/x-patch, Size: 1368 bytes --]
[MMC] Use command class to determine read-only status.
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 | 10 ++++++++--
1 files changed, 8 insertions(+), 2 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
@@ -85,6 +85,12 @@ static void mmc_blk_put(struct mmc_blk_d
up(&open_lock);
}
+static inline int mmc_blk_readonly(struct mmc_card *card)
+{
+ return mmc_card_readonly(card) ||
+ !(card->csd.cmdclass & CCC_BLOCK_WRITE);
+}
+
static int mmc_blk_open(struct inode *inode, struct file *filp)
{
struct mmc_blk_data *md;
@@ -97,7 +103,7 @@ static int mmc_blk_open(struct inode *in
ret = 0;
if ((filp->f_mode & FMODE_WRITE) &&
- mmc_card_readonly(md->queue.card))
+ mmc_blk_readonly(md->queue.card))
ret = -EROFS;
}
@@ -410,7 +416,7 @@ static int mmc_blk_probe(struct mmc_card
printk(KERN_INFO "%s: %s %s %dKiB %s\n",
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)":"");
+ mmc_blk_readonly(card)?"(ro)":"");
mmc_set_drvdata(card, md);
add_disk(md->disk);
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] [MMC] Use command class to determine read-only status.
2005-10-29 22:39 ` Pierre Ossman
@ 2005-10-30 10:16 ` Russell King
0 siblings, 0 replies; 4+ messages in thread
From: Russell King @ 2005-10-30 10:16 UTC (permalink / raw)
To: Pierre Ossman; +Cc: linux-kernel
On Sun, Oct 30, 2005 at 12:39:58AM +0200, Pierre Ossman wrote:
> Russell King wrote:
> >On Fri, Oct 28, 2005 at 09:36:05AM +0200, Pierre Ossman wrote:
> >>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.
> >
> >I'd rather we kept printk messages as one printk if at all possible.
> >How about encapsulating both of these conditions into an inline
> >function:
> >
>
> Ok with me. New patch included.
Applied, thanks.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-10-30 10:16 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-28 7:36 [PATCH] [MMC] Use command class to determine read-only status Pierre Ossman
2005-10-28 20:14 ` Russell King
2005-10-29 22:39 ` Pierre Ossman
2005-10-30 10:16 ` Russell King
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox