From patchwork Mon Oct 30 18:48:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Pitre X-Patchwork-Id: 117496 Delivered-To: patch@linaro.org Received: by 10.140.22.164 with SMTP id 33csp2925707qgn; Mon, 30 Oct 2017 11:49:14 -0700 (PDT) X-Google-Smtp-Source: ABhQp+TlpYh755U1qBbocYn/+4m7fI96t9UTYQErJHkeGL9UnoSJ/GXNLow6KMbpmke4fBQwEgUB X-Received: by 10.99.124.27 with SMTP id x27mr8615650pgc.304.1509389354168; Mon, 30 Oct 2017 11:49:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1509389354; cv=none; d=google.com; s=arc-20160816; b=fyxrxlaffe8dMBNPQgzckQs8410ECegw1JbE/yg6QQA3We5KwLntrUHfHCTHbE5fFU 2lHRVNohHdQ4jRa2S83M2Ee8LU6geos0Eb4+ArLuTEKyzt8i1TyX5bSd1ueg4jtYamd4 syai3uaw6aCX9ZrkJSF16YcHibDEyG5by3lVPWtaRFEe2gHpore2Jvv/f5TqXxlHE/Os C121nYmPWd8i8uE12vGe1hXenJa6RHKK76GyQFKsUIJTaY3jAjP9TQZN9EhYO7yBua3N 98UJnKARpoLN7nZaIFLGctrQZX/ON5BK/r7j99bsCGKvI6sPBmr6/QH/v8fIov24z4CW ueLg== 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=5V/6TMGGJ6qBtPSoEbZdlfmsS9ZVlekUmy92NTGScwI=; b=tPPEflSvDW4zVVK+MaaByj2iBnqw/nb6XNwmY+9/XiiU6qpyXz76g2QFiczMbVe/5e iy1e3UG6AQuKr1tamB85C1Su+JRXC3UaKfrRH+Yocl0kXFrvPs6AnXNRGmjxWzp4Va+y ULzByIm8Gg9O82qE9LsOJvZi7fEesFkzhQFvQZXUODGI9/+3jk/lE6fKLRTNlA7HpeZS avRETSNhxPzNlOJU9d1iQP6Jz7afBhpMefuUWctRybmP81Fz+6p2hu3Dh+/xXfrQ5tOX 4srzqHETp/OJor8TLyWCOA9nl5sHqpQZo7/G9LbmBLtsWfI14INFiWUggHEkwxlvpJ4W /INg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lists.infradead.org header.s=bombadil.20170209 header.b=m2aO79SM; dkim=neutral (body hash did not verify) header.i=@pobox.com header.s=sasl header.b=NMNOQa8C; 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 q2si9637666plh.626.2017.10.30.11.49.14 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 30 Oct 2017 11:49:14 -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=m2aO79SM; dkim=neutral (body hash did not verify) header.i=@pobox.com header.s=sasl header.b=NMNOQa8C; 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=5V/6TMGGJ6qBtPSoEbZdlfmsS9ZVlekUmy92NTGScwI=; b=m2aO79SM8loHIsR1+92RXCnkbT P+61WTSfRxEfE+onMoujIuLObSJjgRyUAyIxPjej3FtTSP+CPkuq14zW8vq8Vx+ygxWJRWv2ajqh9 CjoWae6zxLJEjAxthHocQvDktVk6/cgUx4z/hgelR1F4WceC/vP8bRiKb3FlBrvoo64ZvYPon7d40 kZ+1dewfJFzgahWp6qHq3BVHvp9bOl9MGyWhjMSpIxDIPQ/Wdc4pR/J+5Itoy5J3u02igtYagDUyU ebnNxb+tSRLwqJQhUvLBqAvKwt8bliugni4iuH3++ASwmIMpMHY62gN7CouwrAutpe/b+LxnGKs3L nNGusiHA==; 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 1e9F7R-0000OW-6w; Mon, 30 Oct 2017 18:49:05 +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 1e9F7M-0000Mc-Dh for linux-mtd@lists.infradead.org; Mon, 30 Oct 2017 18:49:03 +0000 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id 49406A0964; Mon, 30 Oct 2017 14:48:38 -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=nxy9 k56DospvRzVcZd0b3nTEIL0=; b=NMNOQa8CnTRoZ4SM/9zVE33aRs/MJbpTlrOv zTpUhQw+ZFbhGalkkCpSHg1WZo90MFZMAzRBdZGsC6MfhZ7SyFhPOn/Mzz7cC5EB Dgtvv7GzRTD7XydIv+njVeZjlRDv2yiv2enlpDPLE0/cSmd3qR4ZqorYUO2vKOJw nU5gySc= Received: from pb-smtp1.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id 41E76A0963; Mon, 30 Oct 2017 14:48:38 -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 C2554A095F; Mon, 30 Oct 2017 14:48:37 -0400 (EDT) Received: from xanadu.home (xanadu.home [192.168.2.2]) by yoda.home (Postfix) with ESMTP id 01B1B2DA0619; Mon, 30 Oct 2017 14:48:37 -0400 (EDT) From: Nicolas Pitre To: Boris Brezillon , Richard Weinberger Subject: [PATCH v3 4/5] MTD: implement mtd_get_unmapped_area() using the point method Date: Mon, 30 Oct 2017 14:48:32 -0400 Message-Id: <20171030184833.20709-5-nicolas.pitre@linaro.org> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171030184833.20709-1-nicolas.pitre@linaro.org> References: <20171030184833.20709-1-nicolas.pitre@linaro.org> X-Pobox-Relay-ID: F0AA693E-BDA2-11E7-BB1B-8EF31968708C-78420484!pb-smtp1.pobox.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20171030_114900_693788_DD87DFD7 X-CRM114-Status: GOOD ( 13.33 ) 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: Chris Brandt , 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 Reviewed-by: Richard Weinberger Acked-by: Boris Brezillon --- 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/ 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);