From patchwork Wed Jun 6 12:36:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michele Dionisio X-Patchwork-Id: 925820 X-Patchwork-Delegate: david.oberhollenzer@sigma-star.at Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="TgWX+urJ"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="hF5x4I5d"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4117V405NXz9s01 for ; Wed, 6 Jun 2018 22:37:16 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:Subject: Message-ID:Date:From:MIME-Version:Reply-To:Cc:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=NnW5AgZgCYf/EE1+o+H/lzOMWt0mMouE5+8H2wCStfE=; b=TgWX+urJoHE6unJgtwXkYSpHVq yiiuqCruX1iy7oACTRQ3XrsoXjP/F2c4gu3fQnqe5u/QsFWqBW/nzWF5WZkS0lj5YdAwbIiYmbneL YLRaaJ2ERviCXIFec6zqszhdhnoRCneqM+djonOnTUZ5p+WFttP1mHyiIq1kb7jlvFW6jtFVu9pQ5 jU2e6DeuatXnalqphT5rfy18l+1SkILpWAJMx+LPGQWYvRJyDLyPS8oYj9eCn62m32ztHUwueHUZT pJdKQ5dJ659/Z2aiL4sTxSyJdtDk/Smby4kMu88rybd/viB22jxenyoTjwY01ParvyXiXmyrcpEWy LoufClAA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1fQXga-0006jq-Ub; Wed, 06 Jun 2018 12:37:08 +0000 Received: from mail-pf0-x22c.google.com ([2607:f8b0:400e:c00::22c]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fQXgX-0006iY-8r for linux-mtd@lists.infradead.org; Wed, 06 Jun 2018 12:37:07 +0000 Received: by mail-pf0-x22c.google.com with SMTP id w7-v6so3063595pfn.9 for ; Wed, 06 Jun 2018 05:36:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=TnbiMynPHS9Jcgn3toUVMSWkkFxYUdeY5xE/p+F6ZJM=; b=hF5x4I5dmNu7yzuYn3sKIR7dcUy7YAuJH7j0oYERq1Sf7fOZFyCVFROaZ3I4kCw1sU n69NaPMbZazA+RTxgihc77GmFO9OT4xiUOsrS7+Ig8z8ek3MZSiuIaDnO2kma4XWIg9A /CltfWbufwNC7GtMWzF1Wc2Zox/YXo/j1Hq6tDVNsLDWetMcDipTDw9PdyJMGBCSCUBL Z81341/NH79xgXTMQ3F7cFAaXEEiT2L+TAKbmGe2Yd1QosIFe0T1FqhKCsJ/hLnKtHvd 1AhRwpCcqn934WZzkC75nkGQw3nv8XH2GUmki1wZAiQPct164VSl3j0o7NO32oAXtd1Y fQRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=TnbiMynPHS9Jcgn3toUVMSWkkFxYUdeY5xE/p+F6ZJM=; b=B4LL44Hv+QFHbO78/iQb++LYSTcMuIZUDrTy5X6h7Ci2+U0GvvN0Zr359+gKA8gVeB 8NGnhLtGbFVx9LgKeAxmLEvqR5DFLGIYhxLBIMa5jcdamYLhKGVY6MITrY0U93MyBQgA wQdReU0ZNMlOWe49FrE5xecwfeRv3YIT2PJtibvtqMGdZe/8aipk+L+eqPwKvgaIf/wc dW3qfZA8jupNibmgJGMBgF7+0jRIW6FDLOdhn6j1eiCFKPzhWJSPIBNFxj+3FaPJlAvY KDwammZq1NyN9oCxJ0HKCLl58106WEpl9Il6zZYZYUNflIweGLnzE6yRq0V5rEyK9it9 9ygQ== X-Gm-Message-State: APt69E26kLs3xU7S3bsciMuJEhRGCkdB+ZmxV9kKFAeFhq7BEqWh/juZ OW9SxkbMDg9V73msrp8KLCuQNzz7j4S+geGbvAlm6Anh X-Google-Smtp-Source: ADUXVKJQUnE5QZHL3rwqk/V0dRL5yPxEh1gZxag0LGVePmP7trU0ay/EtcUbS+9zQqwylkr9s3exZXQTvMHfvITUD04= X-Received: by 2002:a63:380e:: with SMTP id f14-v6mr2484421pga.242.1528288613738; Wed, 06 Jun 2018 05:36:53 -0700 (PDT) MIME-Version: 1.0 From: Michele Dionisio Date: Wed, 6 Jun 2018 14:36:42 +0200 Message-ID: Subject: wrong log on NOR To: linux-mtd@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180606_053705_335375_64366AEC X-CRM114-Status: GOOD ( 12.13 ) X-Spam-Score: -0.1 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-0.1 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [2607:f8b0:400e:c00:0:0:0:22c listed in] [list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (michele.dionisio[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Hi all, with version v2.0.2 working on NOR I have not so nice log message that say: ECCGETLAYOUT ioctl request failed but on NOR is useless to try to read OBB so I suggest to apply the attached patch. regards diff --git a/lib/libmtd.c b/lib/libmtd.c index 7382229..99fcb1b 100644 --- a/lib/libmtd.c +++ b/lib/libmtd.c @@ -763,6 +763,7 @@ int mtd_get_dev_info1(libmtd_t desc, int mtd_num, struct mtd_dev_info *mtd) if (ret < 0) return -1; ((char *)mtd->type_str)[ret - 1] = '\0'; + mtd->type = type_str2int(mtd->type_str); if (dev_read_pos_int(lib->mtd_eb_size, mtd_num, &mtd->eb_size)) return -1; @@ -774,14 +775,20 @@ int mtd_get_dev_info1(libmtd_t desc, int mtd_num, struct mtd_dev_info *mtd) return -1; if (dev_read_pos_int(lib->mtd_oob_size, mtd_num, &mtd->oob_size)) return -1; - if (dev_read_pos_int(lib->mtd_oobavail, mtd_num, &mtd->oobavail)) { - /* - * Fail to access oobavail sysfs file, - * try ioctl ECCGETLAYOUT. */ - mtd->oobavail = legacy_get_mtd_oobavail1(mtd_num); - /* Set 0 as default if can not get valid ecc layout */ - if (mtd->oobavail < 0) - mtd->oobavail = 0; + if (mtd->type != MTD_NORFLASH) { + if (dev_read_pos_int(lib->mtd_oobavail, mtd_num, &mtd->oobavail)) { + /* + * Fail to access oobavail sysfs file, + * try ioctl ECCGETLAYOUT. */ + mtd->oobavail = legacy_get_mtd_oobavail1(mtd_num); + /* Set 0 as default if can not get valid ecc layout */ + if (mtd->oobavail < 0) { + mtd->oobavail = 0; + errmsg("not possible to get oob for mtd_num %d (type: %d %s)", mtd_num, mtd->type, mtd->type_str); + } + } + } else { + mtd->oobavail = 0; } if (dev_read_pos_int(lib->mtd_region_cnt, mtd_num, &mtd->region_cnt)) return -1; @@ -790,7 +797,6 @@ int mtd_get_dev_info1(libmtd_t desc, int mtd_num, struct mtd_dev_info *mtd) mtd->writable = !!(ret & MTD_WRITEABLE); mtd->eb_cnt = mtd->size / mtd->eb_size; - mtd->type = type_str2int(mtd->type_str); mtd->bb_allowed = !!(mtd->type == MTD_NANDFLASH || mtd->type == MTD_MLCNANDFLASH); diff --git a/lib/libmtd_legacy.c b/lib/libmtd_legacy.c index 97fef04..a882e52 100644 --- a/lib/libmtd_legacy.c +++ b/lib/libmtd_legacy.c @@ -235,7 +235,7 @@ int legacy_get_mtd_oobavail(const char *node) ret = ioctl(fd, ECCGETLAYOUT, &usrlay); if (ret < 0) { - sys_errmsg("ECCGETLAYOUT ioctl request failed"); + sys_errmsg("ECCGETLAYOUT ioctl request failed on \"%s\"", node); goto out_close; } @@ -375,8 +375,17 @@ int legacy_get_dev_info(const char *node, struct mtd_dev_info *mtd) close(fd); - ret = legacy_get_mtd_oobavail(node); - mtd->oobavail = ret > 0 ? ret : 0; + if (mtd->type != MTD_NORFLASH) { + ret = legacy_get_mtd_oobavail(node); + if (ret < 0) { + mtd->oobavail = 0; + errmsg("not possible to get oob for mtd_num %d (type: %d %s)", mtd->mtd_num, mtd->type, mtd->type_str); + } else { + mtd->oobavail = ret; + } + } else { + mtd->oobavail = 0; + } /* * Unfortunately, the device name is not available via ioctl, and