From patchwork Thu Aug 23 12:30:30 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artem Bityutskiy X-Patchwork-Id: 179618 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:4978:20e::2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id C14832C009E for ; Thu, 23 Aug 2012 22:27:47 +1000 (EST) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1T4WUQ-0000Zs-Ks; Thu, 23 Aug 2012 12:26:22 +0000 Received: from mga02.intel.com ([134.134.136.20]) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1T4WUE-0000Wd-HR for linux-mtd@lists.infradead.org; Thu, 23 Aug 2012 12:26:11 +0000 Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP; 23 Aug 2012 05:25:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.80,300,1344236400"; d="asc'?scan'208,223";a="190399267" Received: from linux.jf.intel.com (HELO linux.intel.com) ([10.23.219.25]) by orsmga002.jf.intel.com with ESMTP; 23 Aug 2012 05:25:41 -0700 Received: from [10.237.72.96] (sauron.fi.intel.com [10.237.72.96]) by linux.intel.com (Postfix) with ESMTP id 65A2D2C8001; Thu, 23 Aug 2012 05:25:41 -0700 (PDT) Message-ID: <1345725030.2848.236.camel@sauron.fi.intel.com> Subject: Re: [PATCH v3 0/6] UBI: add max_beb_per1024 parameter / ioctl From: Artem Bityutskiy To: Shmulik Ladkani , Richard Genoud Date: Thu, 23 Aug 2012 15:30:30 +0300 In-Reply-To: <20120823133655.72157b18@pixies.home.jungo.com> References: <1345478416-23900-1-git-send-email-richard.genoud@gmail.com> <1345716615.2848.229.camel@sauron.fi.intel.com> <20120823133655.72157b18@pixies.home.jungo.com> X-Mailer: Evolution 3.2.3 (3.2.3-3.fc16) Mime-Version: 1.0 X-Spam-Note: CRM114 invocation failed X-Spam-Score: -5.0 (-----) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-5.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at http://www.dnswl.org/, high trust [134.134.136.20 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (dedekind1[at]gmail.com) 0.0 DKIM_ADSP_CUSTOM_MED No valid author signature, adsp_override is CUSTOM_MED 0.8 SPF_NEUTRAL SPF: sender does not match SPF record (neutral) 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (dedekind1[at]gmail.com) -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 0.9 NML_ADSP_CUSTOM_MED ADSP custom_med hit, and not from a mailing list Cc: linux-mtd@lists.infradead.org X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: dedekind1@gmail.com List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-mtd-bounces@lists.infradead.org Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From fa7595564e95672ab87d4a910c6bc02123b75e88 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 Reviewed-by: Shmulik Ladkani --- Second attempt, did not test :-) drivers/mtd/ubi/build.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c index 355756b..aaf7df3 100644 --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c @@ -646,8 +646,18 @@ static int io_init(struct ubi_device *ubi, int max_beb_per1024) ubi->flash_size = ubi->mtd->size; if (mtd_can_have_bb(ubi->mtd)) { - ubi->bad_allowed = 1; + 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; + ubi->bad_peb_limit = get_bad_peb_limit(ubi, max_beb_per1024); + ubi->bad_allowed = 1; + } else if (max_beb_per1024) { + ubi_err("mtd%d does not admit of bad blocks, max_beb_per1024 " + "cannot be used", mtd->index); + return -EINVAL; } if (ubi->mtd->type == MTD_NORFLASH) { @@ -857,12 +867,6 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num, struct ubi_device *ubi; int i, err, ref = 0; - 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. *