From patchwork Tue Jan 10 17:02:17 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 135264 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 2C3D4B6FC9 for ; Wed, 11 Jan 2012 04:03:32 +1100 (EST) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1Rkf5u-0005Fg-Dd; Tue, 10 Jan 2012 17:02:42 +0000 Received: from casper.infradead.org ([2001:770:15f::2]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1Rkf5r-0005FC-GX for linux-mtd@merlin.infradead.org; Tue, 10 Jan 2012 17:02:39 +0000 Received: from zmc.proxad.net ([212.27.53.206]) by casper.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1Rkf5o-00071r-S8 for linux-mtd@lists.infradead.org; Tue, 10 Jan 2012 17:02:37 +0000 Received: from localhost (localhost [127.0.0.1]) by zmc.proxad.net (Postfix) with ESMTP id 310F2412A0C; Tue, 10 Jan 2012 18:02:35 +0100 (CET) X-Virus-Scanned: amavisd-new at X-Spam-Flag: NO X-Spam-Score: -2.541 X-Spam-Level: X-Spam-Status: No, score=-2.541 tagged_above=-10 required=2.8 tests=[ALL_TRUSTED=-1.8, AWL=1.858, BAYES_00=-2.599] autolearn=ham Received: from zmc.proxad.net ([127.0.0.1]) by localhost (zmc.proxad.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kHY8V5BQXfzV; Tue, 10 Jan 2012 18:02:34 +0100 (CET) Received: from flexo.iliad.local (freebox.vlq16.iliad.fr [213.36.7.13]) by zmc.proxad.net (Postfix) with ESMTPSA id D5566412A0B; Tue, 10 Jan 2012 18:02:34 +0100 (CET) From: Florian Fainelli To: linux-mtd@lists.infradead.org Subject: [PATCH v2] MTD: make panic_write() conditionnal to CONFIG_MTD_OOPS Date: Tue, 10 Jan 2012 18:02:17 +0100 Message-Id: <1326214937-10543-1-git-send-email-ffainelli@freebox.fr> X-Mailer: git-send-email 1.7.5.4 In-Reply-To: <1326214263-9843-1-git-send-email-ffainelli@freebox.fr> References: <1326214263-9843-1-git-send-email-ffainelli@freebox.fr> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20120110_170237_050113_96D6E376 X-CRM114-Status: GOOD ( 21.64 ) X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.3.2 on casper.infradead.org summary: Content analysis details: (-1.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: Florian Fainelli , iws@ovro.caltech.edu, dwmw2@infradead.org, dedekind1@gmail.com X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: linux-mtd-bounces@lists.infradead.org Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org The mtdoops driver is the only user of the panic_write callback make all panic_write related code conditionnal to CONFIG_MTD_OOPS. It is safe to define the panic_write callback as NULL when CONFIG_MTD_OOPS is enabled since the mtdoops drivers check for the callback being non-NULL and returns an error if this the case. Signed-off-by: Florian Fainelli --- Changes since v1: - fixed commit message second paragraph: disabled -> enabled - moved #if IS_ENABLE() above onenand_panic_wait which was drivers/mtd/mtdpart.c | 5 +++++ drivers/mtd/nand/nand_base.c | 7 +++++++ drivers/mtd/onenand/onenand_base.c | 5 +++++ 3 files changed, 17 insertions(+), 0 deletions(-) diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c index a3d44c3..0322388 100644 --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c @@ -189,6 +189,7 @@ static int part_write(struct mtd_info *mtd, loff_t to, size_t len, return mtd_write(part->master, to + part->offset, len, retlen, buf); } +#if IS_ENABLED(CONFIG_MTD_OOPS) static int part_panic_write(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen, const u_char *buf) { @@ -202,6 +203,10 @@ static int part_panic_write(struct mtd_info *mtd, loff_t to, size_t len, return mtd_panic_write(part->master, to + part->offset, len, retlen, buf); } +#else +#define part_panic_write NULL +#endif + static int part_write_oob(struct mtd_info *mtd, loff_t to, struct mtd_oob_ops *ops) diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index 8a393f9..da8d4a6 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c @@ -753,6 +753,7 @@ static void nand_command_lp(struct mtd_info *mtd, unsigned int command, * * Used when in panic, no locks are taken. */ +#if IS_ENABLED(CONFIG_MTD_OOPS) static void panic_nand_get_device(struct nand_chip *chip, struct mtd_info *mtd, int new_state) { @@ -760,6 +761,7 @@ static void panic_nand_get_device(struct nand_chip *chip, chip->controller->active = chip; chip->state = new_state; } +#endif /** * nand_get_device - [GENERIC] Get chip for selected access @@ -2286,6 +2288,7 @@ static int nand_do_write_ops(struct mtd_info *mtd, loff_t to, * NAND write with ECC. Used when performing writes in interrupt context, this * may for example be called by mtdoops when writing an oops while in panic. */ +#if IS_ENABLED(CONFIG_MTD_OOPS) static int panic_nand_write(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen, const uint8_t *buf) { @@ -2315,6 +2318,10 @@ static int panic_nand_write(struct mtd_info *mtd, loff_t to, size_t len, *retlen = ops.retlen; return ret; } +#else +#define panic_nand_write NULL +#endif + /** * nand_write - [MTD Interface] NAND write with ECC diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c index a061bc1..fc0787d 100644 --- a/drivers/mtd/onenand/onenand_base.c +++ b/drivers/mtd/onenand/onenand_base.c @@ -1712,6 +1712,7 @@ static int onenand_verify(struct mtd_info *mtd, const u_char *buf, loff_t addr, #define NOTALIGNED(x) ((x & (this->subpagesize - 1)) != 0) +#if IS_ENABLED(CONFIG_MTD_OOPS) static void onenand_panic_wait(struct mtd_info *mtd) { struct onenand_chip *this = mtd->priv; @@ -1819,6 +1820,10 @@ static int onenand_panic_write(struct mtd_info *mtd, loff_t to, size_t len, *retlen = written; return ret; } +#else +#define onenand_panic_write NULL +#endif + /** * onenand_fill_auto_oob - [INTERN] oob auto-placement transfer