[PATCH v3 0/6] UBI: add max_beb_per1024 parameter / ioctl

Shmulik Ladkani shmulik.ladkani at gmail.com
Thu Aug 23 06:36:55 EDT 2012


On Thu, 23 Aug 2012 13:10:15 +0300 Artem Bityutskiy <dedekind1 at gmail.com> wrote:
> diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
> index aa60b30..865e4fa 100644
> --- a/drivers/mtd/ubi/build.c
> +++ b/drivers/mtd/ubi/build.c
> @@ -860,9 +860,6 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num,
>  	if (max_beb_per1024 < 0 || max_beb_per1024 > MAX_MTD_UBI_BEB_LIMIT)
>  		return -EINVAL;
>  
> -	if (!max_beb_per1024)
> -		max_beb_per1024 = CONFIG_MTD_UBI_BEB_LIMIT;
> -
>  	/*
>  	 * Check if we already have the same MTD device attached.
>  	 *
> @@ -935,6 +932,15 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num,
>  	if (err)
>  		goto out_free;
>  
> +	if (!max_beb_per1024) {
> +		if (!ubi->bad_allowed) {
> +			ubi_err("mtd%d does not admit of bad blocks, "
> +				"max_beb_per1024 cannot be used", mtd->index);
> +			goto out_free;
> +		}
> +		max_beb_per1024 = CONFIG_MTD_UBI_BEB_LIMIT;
> +	}
> +

Artem, this is now located *after* the call to
	io_init(ubi, max_beb_per1024)
So falling to the default (in case max_beb_per1024 is zero) won't work.

Also, why displaying the error if max_beb_per1024 was NOT povided?
Shouldn't it be displayed only when max_beb_per1024 is other than zero?
What am I missing?

Regards,
Shmulik



More information about the linux-mtd mailing list