From patchwork Thu Aug 23 10:10:15 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [v3,0/6] UBI: add max_beb_per1024 parameter / ioctl Date: Thu, 23 Aug 2012 00:10:15 -0000 From: Artem Bityutskiy X-Patchwork-Id: 179585 Message-Id: <1345716615.2848.229.camel@sauron.fi.intel.com> To: Richard Genoud Cc: linux-mtd@lists.infradead.org, Shmulik Ladkani On Mon, 2012-08-20 at 18:00 +0200, Richard Genoud wrote: > This patch serie introduce, step by step the kernel module parameter > max_beb_per1024, then the ioctl and finally drop the kernel config option > CONFIG_MTD_UBI_BEB_LIMIT. > > It's based on top of linux-ubi/master (4ebb4b5) I've also pushed this patch: >From 5fe236c703063f9bc87b66c593408a0d48bbe0e7 Mon Sep 17 00:00:00 2001 From: Artem Bityutskiy Date: Thu, 23 Aug 2012 13:01:11 +0300 Subject: [PATCH] UBI: disallow max_beb_per1024 on NOR flash If the flash does not admit of bad blocks (e.g., NOR) - disallow using 'max_beb_per1024'. Signed-off-by: Artem Bityutskiy --- drivers/mtd/ubi/build.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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; + } + err = -ENOMEM; ubi->peb_buf = vmalloc(ubi->peb_size); if (!ubi->peb_buf)