From patchwork Fri Jun 1 15:16:22 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Weinberger X-Patchwork-Id: 162332 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 21EF9B7005 for ; Sat, 2 Jun 2012 01:18:58 +1000 (EST) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1SaTbP-0001mR-1A; Fri, 01 Jun 2012 15:17:23 +0000 Received: from a.ns.miles-group.at ([95.130.255.143] helo=radon.swed.at) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1SaTb0-0001g8-Q7 for linux-mtd@lists.infradead.org; Fri, 01 Jun 2012 15:17:01 +0000 Received: (qmail 25882 invoked by uid 89); 1 Jun 2012 15:16:54 -0000 Received: by simscan 1.3.1 ppid: 25860, pid: 25879, t: 0.1236s scanners: attach: 1.3.1 clamav: 0.96.5/m:53 Received: from unknown (HELO localhost.localdomain) (richard@nod.at@212.62.202.73) by radon.swed.at with ESMTPA; 1 Jun 2012 15:16:54 -0000 From: Richard Weinberger To: linux-mtd@lists.infradead.org Subject: [PATCH 01/23] UBI: Fastmap: Fix EC overflow calculation Date: Fri, 1 Jun 2012 17:16:22 +0200 Message-Id: <1338563804-85990-2-git-send-email-richard@nod.at> X-Mailer: git-send-email 1.7.6.5 In-Reply-To: <1338563804-85990-1-git-send-email-richard@nod.at> References: <1338563804-85990-1-git-send-email-richard@nod.at> X-Spam-Note: CRM114 invocation failed X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-1.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: dedekind1@gmail.com, Richard Weinberger , adrian.hunter@intel.com, Heinz.Egger@linutronix.de, shmulik.ladkani@gmail.com, tglx@linutronix.de, tim.bird@am.sony.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 Checking for an overflow without a be64_to_cpu() make no sense... Signed-off-by: Richard Weinberger --- drivers/mtd/ubi/fastmap.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/ubi/fastmap.c b/drivers/mtd/ubi/fastmap.c index 2ba2a80..56479df 100644 --- a/drivers/mtd/ubi/fastmap.c +++ b/drivers/mtd/ubi/fastmap.c @@ -1163,6 +1163,7 @@ int ubi_update_fastmap(struct ubi_device *ubi) /* no fresh early PEB was found, reuse the old one */ if (new_fm->e[0]->pnum < 0) { struct ubi_ec_hdr *ec_hdr; + long long ec; ec_hdr = kzalloc(ubi->ec_hdr_alsize, GFP_KERNEL); if (!ec_hdr) { @@ -1193,8 +1194,9 @@ int ubi_update_fastmap(struct ubi_device *ubi) return ret; } - ec_hdr->ec += ret; - if (ec_hdr->ec > UBI_MAX_ERASECOUNTER) { + ec = be64_to_cpu(ec_hdr->ec); + ec += ret; + if (ec > UBI_MAX_ERASECOUNTER) { ubi_err("Erase counter overflow!"); kfree(new_fm); kfree(ec_hdr);