[PATCH 1/1] MTD: Fix wrong check register_blkdev return value

Li Frank-B20596 B20596 at freescale.com
Wed Oct 27 21:30:01 EDT 2010


Why no one review my patch? That's fix a bug when major is zero at mtd
blktrans layer.

> -----Original Message-----
> From: Li Frank-B20596
> Sent: Tuesday, October 26, 2010 11:02 AM
> To: linux-mtd at lists.infradead.org
> Cc: Li Frank-B20596
> Subject: [PATCH 1/1] MTD: Fix wrong check register_blkdev return value
> 
> register_blkdev return 1..255 when major = 0.
> 
> if (ret ) {
> 	printk(KERN_WARNING "Unable to register %s block device on
> major %d: %d\n",
> 		tr->name, tr->major, ret);
> 	      mutex_unlock(&mtd_table_mutex);
> 	return ret;
> }
> 
> Above code will return fail when register_blkdev return allocated
major
> number.
> 
> Signed-off-by: Frank Li <Frank.Li at freescale.com>
> ---
>  drivers/mtd/mtd_blkdevs.c |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c
> index a919587..63790e9 100644
> --- a/drivers/mtd/mtd_blkdevs.c
> +++ b/drivers/mtd/mtd_blkdevs.c
> @@ -502,13 +502,16 @@ int register_mtd_blktrans(struct
mtd_blktrans_ops
> *tr)
>  	mutex_lock(&mtd_table_mutex);
> 
>  	ret = register_blkdev(tr->major, tr->name);
> -	if (ret) {
> +	if (ret < 0) {
>  		printk(KERN_WARNING "Unable to register %s block device
on
> major %d: %d\n",
>  		       tr->name, tr->major, ret);
>  		mutex_unlock(&mtd_table_mutex);
>  		return ret;
>  	}
> 
> +	if (ret)
> +		tr->major = ret;
> +
>  	tr->blkshift = ffs(tr->blksize) - 1;
> 
>  	INIT_LIST_HEAD(&tr->devs);
> --
> 1.7.1






More information about the linux-mtd mailing list