From patchwork Wed Oct 11 03:26:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Pitre X-Patchwork-Id: 115483 Delivered-To: patch@linaro.org Received: by 10.140.22.163 with SMTP id 32csp273642qgn; Tue, 10 Oct 2017 20:27:03 -0700 (PDT) X-Google-Smtp-Source: AOwi7QAzloHIsPsHhezMgTCMZYlzX5UmxnOu0o+I7XOUljX/X8glwmr2AM72+R+2LJDBKCGRidU0 X-Received: by 10.99.179.5 with SMTP id i5mr8663045pgf.199.1507692423077; Tue, 10 Oct 2017 20:27:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507692423; cv=none; d=google.com; s=arc-20160816; b=g9Ez8NBMvcD/UPWHLRWokkChoZWe05900S/Agzn4wy8pTcsrgtHSxgcGshNcZfv37e O/PTyn+XM7dPxClImdScMF6Wk5knl9aBeTqJi+WW/ysVHxYMG4u57qTa7t7X0YKOZbhV YNFGega3bRwGhW6boxnN+4Gv2QYWfkbOEsJTBbBxamZiPGqmZZnJeqN2/jT10PjFIf3b vBH8YFAq1cSlmt1QkI4vjLjWzyL6VFqeKh1P203jYZN98GhTe4EtXZNDWexZQ5DW7m8R co5nvcJz/yTt6Z9pBiHl57KMozGkI4SjW4X7Nd69ljHGcV5Oljbzem+J4tfL+mXZO+37 +5KQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:sender:content-transfer-encoding:mime-version:cc :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:references:in-reply-to:message-id:date:subject :to:from:dkim-signature:dkim-signature:arc-authentication-results; bh=2Aa5HSAmoL0leESGZppAd03c67g6Ayb0d168bRJyV7Y=; b=0O2VeR9TKt5lmaVQst+gjKbMTOzGOBTYO0Ko6lmcXivYGWYQYzCSfxZt55F/2+aL1G tE0qI5/4oeuQiaWBDZF/s2ubNoRbYVHI2vizr6D/DNmf40Wk2qKZDPKkA3rQxu+Wf51s Xh2h+Ie0RAhO83nR4V1pDSV80XtDtLIbny2IAtmUXpx3HiyQv7jMzo1cel9FnvTcgpTm 7hQt8nQrFUwLqLbpGv8IkzY8/RR+XB1V7Oce4mefH7aqSf0KTNT/xcVpYiTNRFw5V1nt qUb0jIp5d7/cVNOay7omhSfuMV3sa7NRjKXcJ7Sm0+j9bMOGnQo63WKRm7avM9WPRSO+ Cuww== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lists.infradead.org header.s=bombadil.20170209 header.b=CAxyf1Q1; dkim=neutral (body hash did not verify) header.i=@pobox.com header.s=sasl header.b=Z+BFQbBN; spf=pass (google.com: best guess record for domain of linux-mtd-bounces+patch=linaro.org@lists.infradead.org designates 65.50.211.133 as permitted sender) smtp.mailfrom=linux-mtd-bounces+patch=linaro.org@lists.infradead.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from bombadil.infradead.org (bombadil.infradead.org. [65.50.211.133]) by mx.google.com with ESMTPS id b11si9426077pgq.114.2017.10.10.20.27.02 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 10 Oct 2017 20:27:03 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-mtd-bounces+patch=linaro.org@lists.infradead.org designates 65.50.211.133 as permitted sender) client-ip=65.50.211.133; Authentication-Results: mx.google.com; dkim=pass header.i=@lists.infradead.org header.s=bombadil.20170209 header.b=CAxyf1Q1; dkim=neutral (body hash did not verify) header.i=@pobox.com header.s=sasl header.b=Z+BFQbBN; spf=pass (google.com: best guess record for domain of linux-mtd-bounces+patch=linaro.org@lists.infradead.org designates 65.50.211.133 as permitted sender) smtp.mailfrom=linux-mtd-bounces+patch=linaro.org@lists.infradead.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=2Aa5HSAmoL0leESGZppAd03c67g6Ayb0d168bRJyV7Y=; b=CAxyf1Q1yZ5hnZy2FH3wxCXNcz ZQ95fFYlOdm4rZLXcKoFlegmRA+WG9JE7r34305FqNqWuNS58FlrNEBreK6/SyhZo8vQvb88jCNKp RL6ZcqvhUQLULn4VV7tB1H/ofYFPzQ/FgCh+rVG4vjxD1k0NFrIBSZDECzFQaNKcrgyCG0NRGCiPk 9FAE+dyVWgRhVs4yMpe1E7lY+JGhBoEo/68V9Mlm2X6hrXza++Lprk+nJs02jfInRPNpCNHetHs38 E8rR+2Zn45gV66hWWiqCyCVIcYJR4ahtYBB+BNaVDkMw6F0KajN4AgYGqnRu/cgmRwQLHYYYwqBEI vICfFyjg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1e27fe-0002eQ-6s; Wed, 11 Oct 2017 03:26:58 +0000 Received: from pb-smtp1.pobox.com ([64.147.108.70] helo=sasl.smtp.pobox.com) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1e27fZ-0002Lo-07 for linux-mtd@lists.infradead.org; Wed, 11 Oct 2017 03:26:56 +0000 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id 999DB9F57E; Tue, 10 Oct 2017 23:26:26 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:date:message-id:in-reply-to:references; s=sasl; bh=hGbJ c4gI/8wPLWyFmNzWSKyFsKk=; b=Z+BFQbBNpmVfoqmcfr7PjSOCQ/oWY/t6e4ZG rkk7OZFsXvqTkMtgIvrjkYvHz5ixtO/14nic5zUvrgdr/OJ5VMSIDnUgagzPdRMJ 7D10YJ57n8anIJBoABpy2k2zt15u7J/L3PoW//JKqws+gb6x+DqbUXvHQT8arDq5 HCAY6oY= Received: from pb-smtp1.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id 913449F579; Tue, 10 Oct 2017 23:26:26 -0400 (EDT) Received: from yoda.home (unknown [137.175.234.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pb-smtp1.pobox.com (Postfix) with ESMTPSA id 30CBD9F577; Tue, 10 Oct 2017 23:26:26 -0400 (EDT) Received: from xanadu.home (xanadu.home [192.168.2.2]) by yoda.home (Postfix) with ESMTP id 8B0BC2DA0684; Tue, 10 Oct 2017 23:26:25 -0400 (EDT) From: Nicolas Pitre To: Boris Brezillon Subject: [PATCH 4/5] MTD: implement mtd_get_unmapped_area() using the point method Date: Tue, 10 Oct 2017 23:26:20 -0400 Message-Id: <20171011032621.26979-5-nicolas.pitre@linaro.org> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171011032621.26979-1-nicolas.pitre@linaro.org> References: <20171011032621.26979-1-nicolas.pitre@linaro.org> X-Pobox-Relay-ID: F69D4984-AE33-11E7-9E0A-8EF31968708C-78420484!pb-smtp1.pobox.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20171010_202653_253878_43517615 X-CRM114-Status: GOOD ( 13.39 ) X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-1.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [64.147.108.70 listed in list.dnswl.org] 0.7 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid 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: , Cc: linux-mtd@lists.infradead.org MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+patch=linaro.org@lists.infradead.org The mtd->_point method is a superset of mtd->_get_unmapped_area. Especially in the NOR flash case, the point method ensures the flash memory is in array (data) mode and that it will stay that way which is precisely what callers of mtd_get_unmapped_area() would expect. Implement mtd_get_unmapped_area() in terms of mtd->_point now that all drivers that provided a _get_unmapped_area method also have the _point method implemented. Signed-off-by: Nicolas Pitre --- drivers/mtd/mtdcore.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) -- 2.9.5 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/ Reviewed-by: Richard Weinberger diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index e7ea842ba3..ecb0380158 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -1022,11 +1022,18 @@ EXPORT_SYMBOL_GPL(mtd_unpoint); unsigned long mtd_get_unmapped_area(struct mtd_info *mtd, unsigned long len, unsigned long offset, unsigned long flags) { - if (!mtd->_get_unmapped_area) - return -EOPNOTSUPP; - if (offset >= mtd->size || len > mtd->size - offset) - return -EINVAL; - return mtd->_get_unmapped_area(mtd, len, offset, flags); + size_t retlen; + void *virt; + int ret; + + ret = mtd_point(mtd, offset, len, &retlen, &virt, NULL); + if (ret) + return ret; + if (retlen != len) { + mtd_unpoint(mtd, offset, retlen); + return -ENOSYS; + } + return (unsigned long)virt; } EXPORT_SYMBOL_GPL(mtd_get_unmapped_area);