From patchwork Tue Aug 15 17:13:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Boris Brezillon X-Patchwork-Id: 801689 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=65.50.211.133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="AGaWmMTK"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.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 3xWzbV0txTz9t32 for ; Wed, 16 Aug 2017 03:13:58 +1000 (AEST) 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:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=/4HiHO4k1c7ArZatq/ZhNBN2TIvNLRtK6Ib7QifqHGY=; b=AGaWmMTK1qC2MU m4TtIZfyUdsVJz5aUylxSQFTcbZbYEr3HL8QY1W2NmGq5MQhe9L6MnothYO/4M7Wk6wGGn4aszNwd SAfSUWYKlPHrpMF/WxiBju8fSszWZ6toLoQuWeXy+w7YNB6e0QPWayp1a1uEktSBXhirNqtWDdYoU aqeDlPfIVbadIY8Jpvh9RHDA65whhGhD+2WHlO8od5TI+fae5vIrjaUfMzkLo6a8DrtuSM7gY6KTB 1Ouap3SRu6cR//ifE2HHCriQ1Ql4mp3/A21dz3OUV65oGKqmPO9UBB6VmtNVxGhtQUKc5zcE2No5K v+m2NZXKuQ2cpjDxH60w==; 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 1dhfPZ-0001nt-RW; Tue, 15 Aug 2017 17:13:49 +0000 Received: from mail.free-electrons.com ([62.4.15.54]) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dhfPA-0001jF-Ox for linux-mtd@lists.infradead.org; Tue, 15 Aug 2017 17:13:26 +0000 Received: by mail.free-electrons.com (Postfix, from userid 110) id C74AC209B2; Tue, 15 Aug 2017 19:13:02 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mail.free-electrons.com X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT shortcircuit=ham autolearn=disabled version=3.4.0 Received: from bbrezillon (nly93-1-82-232-72-50.fbx.proxad.net [82.232.72.50]) by mail.free-electrons.com (Postfix) with ESMTPSA id 5F1452099C; Tue, 15 Aug 2017 19:13:02 +0200 (CEST) Date: Tue, 15 Aug 2017 19:13:01 +0200 From: Boris Brezillon To: Anton Vasilyev Subject: Re: [PATCH v1] mtd: plat-ram: use release_mem_region instead of release_resource Message-ID: <20170815191301.56c3ab9d@bbrezillon> In-Reply-To: <1502799694-669-1-git-send-email-vasilyev@ispras.ru> References: <1502799694-669-1-git-send-email-vasilyev@ispras.ru> X-Mailer: Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170815_101325_141225_F80C41C4 X-CRM114-Status: GOOD ( 19.17 ) 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.0 SPF_PASS SPF: sender matches SPF record -0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 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: ldv-project@linuxtesting.org, Richard Weinberger , linux-kernel@vger.kernel.org, Marek Vasut , linux-mtd@lists.infradead.org, Cyrille Pitchen , Brian Norris , David Woodhouse Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Le Tue, 15 Aug 2017 15:21:34 +0300, Anton Vasilyev a écrit : > Use api pair of request_mem_region and release_mem_region > instead of release_resource. > > Found by Linux Driver Verification project (linuxtesting. Missing ')'. > > Signed-off-by: Anton Vasilyev > --- > v1: Fix commit based on Boris Brezillon review > --- > drivers/mtd/maps/plat-ram.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/mtd/maps/plat-ram.c b/drivers/mtd/maps/plat-ram.c > index 5157289..90bc87f 100644 > --- a/drivers/mtd/maps/plat-ram.c > +++ b/drivers/mtd/maps/plat-ram.c > @@ -100,8 +100,8 @@ static int platram_remove(struct platform_device *pdev) > /* release resources */ > > if (info->area) { > - release_resource(info->area); > - kfree(info->area); > + release_mem_region(info->area->start, > + resource_size(info->area)); > } > > if (info->map.virt != NULL) Sorry to realize that only know but it seems a lot of boilerplate code can be removed if we use devm_ioremap_resource(). I'd prefer the following solution to the change you're proposing here. --->8--- diff --git a/drivers/mtd/maps/plat-ram.c b/drivers/mtd/maps/plat-ram.c index 51572895c02c..6d9a4d6f9839 100644 --- a/drivers/mtd/maps/plat-ram.c +++ b/drivers/mtd/maps/plat-ram.c @@ -43,7 +43,6 @@ struct platram_info { struct device *dev; struct mtd_info *mtd; struct map_info map; - struct resource *area; struct platdata_mtd_ram *pdata; }; @@ -97,16 +96,6 @@ static int platram_remove(struct platform_device *pdev) platram_setrw(info, PLATRAM_RO); - /* release resources */ - - if (info->area) { - release_resource(info->area); - kfree(info->area); - } - - if (info->map.virt != NULL) - iounmap(info->map.virt); - kfree(info); return 0; @@ -147,12 +136,11 @@ static int platram_probe(struct platform_device *pdev) info->pdata = pdata; /* get the resource for the memory mapping */ - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - - if (res == NULL) { - dev_err(&pdev->dev, "no memory resource specified\n"); - err = -ENOENT; + info->map.virt = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(info->map.virt)) { + err = PTR_ERR(info->map.virt); + dev_err(&pdev->dev, "failed to ioremap() region\n"); goto exit_free; } @@ -167,26 +155,8 @@ static int platram_probe(struct platform_device *pdev) (char *)pdata->mapname : (char *)pdev->name; info->map.bankwidth = pdata->bankwidth; - /* register our usage of the memory area */ - - info->area = request_mem_region(res->start, info->map.size, pdev->name); - if (info->area == NULL) { - dev_err(&pdev->dev, "failed to request memory region\n"); - err = -EIO; - goto exit_free; - } - - /* remap the memory area */ - - info->map.virt = ioremap(res->start, info->map.size); dev_dbg(&pdev->dev, "virt %p, %lu bytes\n", info->map.virt, info->map.size); - if (info->map.virt == NULL) { - dev_err(&pdev->dev, "failed to ioremap() region\n"); - err = -EIO; - goto exit_free; - } - simple_map_init(&info->map); dev_dbg(&pdev->dev, "initialised map, probing for mtd\n");