From patchwork Tue Jul 19 18:30:47 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brian Norris X-Patchwork-Id: 650348 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2001:1868:205::9]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3rv7vN3Z4nz9sR8 for ; Wed, 20 Jul 2016 04:32:48 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=RBs/xCLv; dkim-atps=neutral Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bPZnW-0003Zy-1B; Tue, 19 Jul 2016 18:31:14 +0000 Received: from mail-pa0-x242.google.com ([2607:f8b0:400e:c03::242]) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bPZnT-0003Qr-Qy for linux-mtd@lists.infradead.org; Tue, 19 Jul 2016 18:31:12 +0000 Received: by mail-pa0-x242.google.com with SMTP id q2so1758981pap.0 for ; Tue, 19 Jul 2016 11:30:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=aa0o+EPMUo+94iD53QQJtjhJ54BkPUYMgTIaOyHP7D0=; b=RBs/xCLvVAqRrayGsHjvLbmbdJc6kmqe+BX0bNDCKM4SrpXpdABQTlWt3wF7XmVCB1 fA2I0e3K7P4UqHFYTuRJXU2hdCRyUdXo1X8HcRzpG2hRUTutU4kaMVpJcpk4cLDdVTHb +vLVizlwPSKBNu0CvvCWEreuq8H7WxCzkYx4Qy3jc6kMu72LUVVyAwRQmM/jkuyd+tMh Cmfh74gmu/UQ84gAahPEOlwOxRqThpGNLuGMCCuDeLvQFWAvJQPTThj1aP36J/3xAsKL zaTLie/fu1m6/2wghZmLVOe1+x1Dhi2XIfid18JQhDxqowqtIXuNuE7CW6Wt5tOJ3K4j kjsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=aa0o+EPMUo+94iD53QQJtjhJ54BkPUYMgTIaOyHP7D0=; b=CgPCY7SBSaNcGqE7yrBNHUWMYoVZYrkly4Kab8FqIpR/IKYWAat9pqtsJWkHY+07uY ZyXQZIAJjoanNT5yNLoiVTfUq4UpSp/rB/yYoR+aZaraUCkiDruSUzfw7vxS0a0LBCtA KIoM+b9CTWp3R8SDIhzUoTa9cWXBR2HrnENCZa+LyNR/wem9pNj9QAJMY/CFXpyMDpFi jWUxgTseaoWfWfTGu3haFexUsCWnp8a2i4HIJEuf0C6jH1zqLdE+xKghSzpi61cACchH aGYubXPjBtr8clk4zCTNK78Y7cAIjCO5QmPNbcG2ZeURGhYbm6xLkgXQ98oXW5kK/kDl eUww== X-Gm-Message-State: ALyK8tJh/S9KrQUgSUL4kPGJyXqG1dCESjHkLEASCfSDeGG7UqfX1MwYYY9DOEvD2jNhfQ== X-Received: by 10.66.248.65 with SMTP id yk1mr68937766pac.56.1468953049923; Tue, 19 Jul 2016 11:30:49 -0700 (PDT) Received: from google.com ([2620:0:1000:1301:1177:5347:26e:ffe1]) by smtp.gmail.com with ESMTPSA id pc8sm1391373pac.15.2016.07.19.11.30.49 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Tue, 19 Jul 2016 11:30:49 -0700 (PDT) Date: Tue, 19 Jul 2016 11:30:47 -0700 From: Brian Norris To: Andrey Smirnov Subject: Re: [PATCH 2/2] mtd: nand: Get rid of needless 'goto' Message-ID: <20160719183047.GC85399@google.com> References: <1468942904-26464-1-git-send-email-andrew.smirnov@gmail.com> <1468942904-26464-2-git-send-email-andrew.smirnov@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1468942904-26464-2-git-send-email-andrew.smirnov@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160719_113111_906408_6FE6864E X-CRM114-Status: GOOD ( 19.03 ) X-Spam-Score: -2.7 (--) X-Spam-Report: SpamAssassin version 3.4.0 on bombadil.infradead.org summary: Content analysis details: (-2.7 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [2607:f8b0:400e:c03:0:0:0:242 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (computersforpeace[at]gmail.com) -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_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 X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Boris Brezillon , linux-mtd@lists.infradead.org, David Woodhouse , linux-kernel@vger.kernel.org, Richard Weinberger Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org On Tue, Jul 19, 2016 at 08:41:44AM -0700, Andrey Smirnov wrote: > Using "goto" in that "switch" statement only makes it harder to follow > control flow and doesn't bring any advantages. Rewrite the code to avoid > using "goto". > > Signed-off-by: Andrey Smirnov > --- > drivers/mtd/nand/nand_base.c | 13 +++++-------- > 1 file changed, 5 insertions(+), 8 deletions(-) > > diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c > index 57043a6..8fa5536 100644 > --- a/drivers/mtd/nand/nand_base.c > +++ b/drivers/mtd/nand/nand_base.c > @@ -2139,18 +2139,15 @@ static int nand_read_oob(struct mtd_info *mtd, loff_t from, > case MTD_OPS_PLACE_OOB: > case MTD_OPS_AUTO_OOB: > case MTD_OPS_RAW: > + if (!ops->datbuf) > + ret = nand_do_read_oob(mtd, from, ops); > + else > + ret = nand_do_read_ops(mtd, from, ops); > break; > - > default: > - goto out; > + break; > } > > - if (!ops->datbuf) > - ret = nand_do_read_oob(mtd, from, ops); > - else > - ret = nand_do_read_ops(mtd, from, ops); > - > -out: > nand_release_device(mtd); > return ret; > } The default case is really just a catch-all error case. We don't actually even need the nand_get_device() call for that... can we just do this instead? static int nand_read_oob(struct mtd_info *mtd, loff_t from, struct mtd_oob_ops *ops) { int ret; ops->retlen = 0; /* Do not allow reads past end of device */ if (ops->datbuf && (from + ops->len) > mtd->size) { pr_debug("%s: attempt to read beyond end of device\n", __func__); return -EINVAL; } switch (ops->mode) { case MTD_OPS_PLACE_OOB: case MTD_OPS_AUTO_OOB: case MTD_OPS_RAW: break; default: return -ENOTSUPP; } nand_get_device(mtd, FL_READING); if (!ops->datbuf) ret = nand_do_read_oob(mtd, from, ops); else ret = nand_do_read_ops(mtd, from, ops); nand_release_device(mtd); return ret; } i.e., this diff: Signed-off-by: Brian Norris diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index 77533f7f2429..881dbd495466 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c @@ -2162,7 +2162,7 @@ static int nand_do_read_oob(struct mtd_info *mtd, loff_t from, static int nand_read_oob(struct mtd_info *mtd, loff_t from, struct mtd_oob_ops *ops) { - int ret = -ENOTSUPP; + int ret; ops->retlen = 0; @@ -2173,8 +2173,6 @@ static int nand_read_oob(struct mtd_info *mtd, loff_t from, return -EINVAL; } - nand_get_device(mtd, FL_READING); - switch (ops->mode) { case MTD_OPS_PLACE_OOB: case MTD_OPS_AUTO_OOB: @@ -2182,15 +2180,16 @@ static int nand_read_oob(struct mtd_info *mtd, loff_t from, break; default: - goto out; + return -ENOTSUPP; } + nand_get_device(mtd, FL_READING); + if (!ops->datbuf) ret = nand_do_read_oob(mtd, from, ops); else ret = nand_do_read_ops(mtd, from, ops); -out: nand_release_device(mtd); return ret; }