diff mbox

[1/4] mtd: block2mtd: char mtd major check

Message ID 20140123204947.fc1c03dc0a1624d3347b3837@skynet.be
State Rejected
Headers show

Commit Message

Fabian Frederick Jan. 23, 2014, 7:49 p.m. UTC
Deny use of a char mtd device to map as a block device.

Signed-off-by: Fabian Frederick <fabf@skynet.be>
---
 drivers/mtd/devices/block2mtd.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Ezequiel Garcia Jan. 24, 2014, 10:10 p.m. UTC | #1
On Thu, Jan 23, 2014 at 08:49:47PM +0100, Fabian Frederick wrote:
> Deny use of a char mtd device to map as a block device.
> 
> Signed-off-by: Fabian Frederick <fabf@skynet.be>
> ---
>  drivers/mtd/devices/block2mtd.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c
> index d9fd87a..0efee5b 100644
> --- a/drivers/mtd/devices/block2mtd.c
> +++ b/drivers/mtd/devices/block2mtd.c
> @@ -244,7 +244,8 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size)
>  	}
>  	dev->blkdev = bdev;
>  
> -	if (MAJOR(bdev->bd_dev) == MTD_BLOCK_MAJOR) {
> +	if ((MAJOR(bdev->bd_dev) == MTD_BLOCK_MAJOR) ||
> +	    (MAJOR(bdev->bd_dev) == MTD_CHAR_MAJOR)) {
>  		pr_err("attempting to use an MTD device as a block device\n");
>  		goto devinit_err;
>  	}
> -- 
> 1.8.1.4

Now that the changes are separated on a per-patch basis they're much
much easier to review. Thanks!

Regarding this changes, it seems to me it's not needed. Are you sure
you can attach "block2mtd" to a char MTD device?

That would be odd, given this function calls blkdev_get_by_{path/dev};
which will check the device is of block type in the first place.

What's your motivation for this change?
Fabian Frederick Jan. 25, 2014, 2:53 a.m. UTC | #2
On Fri, 24 Jan 2014 19:10:11 -0300
Ezequiel Garcia <ezequiel.garcia@free-electrons.com> wrote:

> On Thu, Jan 23, 2014 at 08:49:47PM +0100, Fabian Frederick wrote:
> > Deny use of a char mtd device to map as a block device.
> > 
> > Signed-off-by: Fabian Frederick <fabf@skynet.be>
> > ---
> >  drivers/mtd/devices/block2mtd.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c
> > index d9fd87a..0efee5b 100644
> > --- a/drivers/mtd/devices/block2mtd.c
> > +++ b/drivers/mtd/devices/block2mtd.c
> > @@ -244,7 +244,8 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size)
> >  	}
> >  	dev->blkdev = bdev;
> >  
> > -	if (MAJOR(bdev->bd_dev) == MTD_BLOCK_MAJOR) {
> > +	if ((MAJOR(bdev->bd_dev) == MTD_BLOCK_MAJOR) ||
> > +	    (MAJOR(bdev->bd_dev) == MTD_CHAR_MAJOR)) {
> >  		pr_err("attempting to use an MTD device as a block device\n");
> >  		goto devinit_err;
> >  	}
> > -- 
> > 1.8.1.4
> 
> Now that the changes are separated on a per-patch basis they're much
> much easier to review. Thanks!
> 
> Regarding this changes, it seems to me it's not needed. Are you sure
> you can attach "block2mtd" to a char MTD device?
> 
> That would be odd, given this function calls blkdev_get_by_{path/dev};
> which will check the device is of block type in the first place.
> 
You're absoletly right.Thanks for your time checking these small patches.
As only patch 2 seems useful , I've sent version 2 with new error names.

Regards,
Fabian

> What's your motivation for this change?
> -- 
> Ezequiel GarcĂ­a, Free Electrons
> Embedded Linux, Kernel and Android Engineering
> http://free-electrons.com
diff mbox

Patch

diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c
index d9fd87a..0efee5b 100644
--- a/drivers/mtd/devices/block2mtd.c
+++ b/drivers/mtd/devices/block2mtd.c
@@ -244,7 +244,8 @@  static struct block2mtd_dev *add_device(char *devname, int erase_size)
 	}
 	dev->blkdev = bdev;
 
-	if (MAJOR(bdev->bd_dev) == MTD_BLOCK_MAJOR) {
+	if ((MAJOR(bdev->bd_dev) == MTD_BLOCK_MAJOR) ||
+	    (MAJOR(bdev->bd_dev) == MTD_CHAR_MAJOR)) {
 		pr_err("attempting to use an MTD device as a block device\n");
 		goto devinit_err;
 	}