linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Fix incorrect Mt Rainier detection
@ 2004-10-25 21:18 Peter Osterlund
  2004-10-26  6:33 ` Jens Axboe
  0 siblings, 1 reply; 2+ messages in thread
From: Peter Osterlund @ 2004-10-25 21:18 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Jens Axboe

cdrom_is_mrw() can incorrectly think that a drive is Mt Rainier
capable, because if forgets to check if the "GET CONFIGURATION"
command returns the MRW feature number.  According to the MMC spec,
the drive shall return all feature numbers >= the starting feature
number, so even if the drive doesn't support Mt Rainier, it can return
some data that makes cdrom_is_mrw() incorrectly think the drive is MRW
capable.

This problem stops me from mounting DVD+RW discs in R/W mode on my
laptop, because it makes cdrom_open_write() call
cdrom_mrw_open_write() which fails because the drive isn't really MRW
capable.

The fix is to make sure the returned feature number is the correct one
for Mt Rainier.

Signed-off-by: Peter Osterlund <petero2@telia.com>
---

 linux-petero/drivers/cdrom/cdrom.c |    2 ++
 1 files changed, 2 insertions(+)

diff -puN drivers/cdrom/cdrom.c~mrw-fix drivers/cdrom/cdrom.c
--- linux/drivers/cdrom/cdrom.c~mrw-fix	2004-10-25 22:43:15.711347640 +0200
+++ linux-petero/drivers/cdrom/cdrom.c	2004-10-25 22:43:15.716346880 +0200
@@ -546,6 +546,8 @@ int cdrom_is_mrw(struct cdrom_device_inf
 		return ret;
 
 	mfd = (struct mrw_feature_desc *)&buffer[sizeof(struct feature_header)];
+	if (be16_to_cpu(mfd->feature_code) != CDF_MRW)
+		return 1;
 	*write = mfd->write;
 
 	if ((ret = cdrom_mrw_probe_pc(cdi))) {
_

-- 
Peter Osterlund - petero2@telia.com
http://w1.894.telia.com/~u89404340

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] Fix incorrect Mt Rainier detection
  2004-10-25 21:18 [PATCH] Fix incorrect Mt Rainier detection Peter Osterlund
@ 2004-10-26  6:33 ` Jens Axboe
  0 siblings, 0 replies; 2+ messages in thread
From: Jens Axboe @ 2004-10-26  6:33 UTC (permalink / raw)
  To: Peter Osterlund; +Cc: Andrew Morton, linux-kernel

On Mon, Oct 25 2004, Peter Osterlund wrote:
> cdrom_is_mrw() can incorrectly think that a drive is Mt Rainier
> capable, because if forgets to check if the "GET CONFIGURATION"
> command returns the MRW feature number.  According to the MMC spec,
> the drive shall return all feature numbers >= the starting feature
> number, so even if the drive doesn't support Mt Rainier, it can return
> some data that makes cdrom_is_mrw() incorrectly think the drive is MRW
> capable.
> 
> This problem stops me from mounting DVD+RW discs in R/W mode on my
> laptop, because it makes cdrom_open_write() call
> cdrom_mrw_open_write() which fails because the drive isn't really MRW
> capable.
> 
> The fix is to make sure the returned feature number is the correct one
> for Mt Rainier.
> 
> Signed-off-by: Peter Osterlund <petero2@telia.com>

Acked-by: Jens Axboe <axboe@suse.de>

> ---
> 
>  linux-petero/drivers/cdrom/cdrom.c |    2 ++
>  1 files changed, 2 insertions(+)
> 
> diff -puN drivers/cdrom/cdrom.c~mrw-fix drivers/cdrom/cdrom.c
> --- linux/drivers/cdrom/cdrom.c~mrw-fix	2004-10-25 22:43:15.711347640 +0200
> +++ linux-petero/drivers/cdrom/cdrom.c	2004-10-25 22:43:15.716346880 +0200
> @@ -546,6 +546,8 @@ int cdrom_is_mrw(struct cdrom_device_inf
>  		return ret;
>  
>  	mfd = (struct mrw_feature_desc *)&buffer[sizeof(struct feature_header)];
> +	if (be16_to_cpu(mfd->feature_code) != CDF_MRW)
> +		return 1;
>  	*write = mfd->write;
>  
>  	if ((ret = cdrom_mrw_probe_pc(cdi))) {
> _
> 
> -- 
> Peter Osterlund - petero2@telia.com
> http://w1.894.telia.com/~u89404340
> 

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-10-26  6:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-25 21:18 [PATCH] Fix incorrect Mt Rainier detection Peter Osterlund
2004-10-26  6:33 ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).