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

Ezequiel Garcia ezequiel.garcia at free-electrons.com
Fri Jan 24 17:10:11 EST 2014


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 at 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?
-- 
Ezequiel García, Free Electrons
Embedded Linux, Kernel and Android Engineering
http://free-electrons.com



More information about the linux-mtd mailing list