From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759673AbdAKUx1 (ORCPT ); Wed, 11 Jan 2017 15:53:27 -0500 Received: from mout.web.de ([212.227.17.11]:49674 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759566AbdAKUxY (ORCPT ); Wed, 11 Jan 2017 15:53:24 -0500 Subject: [PATCH 17/18] mtd-cfi_cmdset_0020: Use common error handling code in cfi_staa_setup() To: linux-mtd@lists.infradead.org, Boris Brezillon , Brian Norris , Cyrille Pitchen , David Woodhouse , Denys Vlasenko , Marek Vasut , Richard Weinberger References: <71189baa-8780-b80a-0b4d-9dae74763ba3@users.sourceforge.net> Cc: LKML , kernel-janitors@vger.kernel.org From: SF Markus Elfring Message-ID: <128b121d-9b5e-8c71-6265-96110d6ca833@users.sourceforge.net> Date: Wed, 11 Jan 2017 21:52:27 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: <71189baa-8780-b80a-0b4d-9dae74763ba3@users.sourceforge.net> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:H7AMquiX7KmezaoEvFz2z+dGteI4nWQSVnRT7gn2iNWpZdBsg3B Zq8ZWbFOjg5Lfmj93whVQ+9/ckmSJSXH6xU8sjMKtrQyIF0uktFE2vsvlwp5LQSjq6PTRge zD0GFddKNhjRyofwoqxh53y1y9zqHTb4o2dCSRnEp5tEPE16eJcYXiYbeR9BnXnQbWwqDYI c00QVs/c4pFrJLVdzdRDA== X-UI-Out-Filterresults: notjunk:1;V01:K0:5EIbg/vNTJk=:cTDC14T89umvJRFQFspyeg potpvSa+qV+AA0hHNEQBTmdJdfWbt7praEgO2t+nhix9U+Zc1ZYnTPP7ZQjYYSsoNSXnaR30/ z+YwhlsqiUGIV0vEgw2ErLCWSj4VE0bRMuRtke8iLeaCJoq6b0u+R9NJhRVU59SxAoWO5eDFp Ies6seRD28SxccuEpmRl3mOzUqpKhNBqYdlRSAroldv8ycruHjZJmhMmxwTyXohAWw7j4886D Xf1CwD0dJv9Fh7RdcniGErnbYFzW7YwMoxyhCsI4Fuh0hguockrQYHiWnjxp0m0qJA3h3+bWV 9rR8ViSB3LYS/6DkFE+oZHdMv5n95hfOMnb/m759grIxdpNeqchJ+8TknPzQFeiLSl9oZVwGr /ih5rS7MBNW0uTovIrK70UrF3L9r0CWehPXyA73X+OYYS+23EKkPlWPUZUbMBg+6WPdbVClvU YTcR3V/3nsnNNNUB3DgLQTLT/bStk3wySKh/37bTX8A4Fb9pa7M9ln8bsXC/2PNKSRB82Ktep ohbSYM/MmBVsVVQm+kO02vOA1ZPaS4vaKvL0AaAWRsU9oaDJOkGJIUB1X953EhDIyUW/FIr/t esLzbZ1VZ2wPuMglPAEpw2IAX0fo+h5cIM9wUVnK98PP2MZeFq7rVOM7g686992XmgOWQO6Hf Id3gL43/1BV+xHEE4N9m/tjs1mP6WVecyRe4BDflPEkFtR/J/pkBevFKPKPyjlo6Vr3dy0vGt zH1cXDDrUikuI4laO9a3crn1gfGwhyY2dDDKvfaZEJh+oX2DqxBBWgEQSKNM/vglcuuwuplAa SMZYrNi Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Wed, 11 Jan 2017 20:02:40 +0100 Add jump targets so that a bit of exception handling can be better reused at the end of this function. Signed-off-by: Markus Elfring --- drivers/mtd/chips/cfi_cmdset_0020.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0020.c b/drivers/mtd/chips/cfi_cmdset_0020.c index 9cd7b1c6faba..60de9d58dcc6 100644 --- a/drivers/mtd/chips/cfi_cmdset_0020.c +++ b/drivers/mtd/chips/cfi_cmdset_0020.c @@ -173,11 +173,8 @@ static struct mtd_info *cfi_staa_setup(struct map_info *map) mtd = kzalloc(sizeof(*mtd), GFP_KERNEL); //printk(KERN_DEBUG "number of CFI chips: %d\n", cfi->numchips); - - if (!mtd) { - kfree(cfi->cmdset_priv); - return NULL; - } + if (!mtd) + goto free_priv; mtd->priv = map; mtd->type = MTD_NORFLASH; @@ -187,11 +184,8 @@ static struct mtd_info *cfi_staa_setup(struct map_info *map) mtd->eraseregions = kmalloc_array(mtd->numeraseregions, sizeof(*mtd->eraseregions), GFP_KERNEL); - if (!mtd->eraseregions) { - kfree(cfi->cmdset_priv); - kfree(mtd); - return NULL; - } + if (!mtd->eraseregions) + goto free_mtd; for (i=0; icfiq->NumEraseRegions; i++) { unsigned long ernum, ersize; @@ -213,9 +207,7 @@ static struct mtd_info *cfi_staa_setup(struct map_info *map) /* Argh */ printk(KERN_WARNING "Sum of regions (%lx) != total size of set of interleaved chips (%lx)\n", offset, devsize); kfree(mtd->eraseregions); - kfree(cfi->cmdset_priv); - kfree(mtd); - return NULL; + goto free_mtd; } for (i=0; inumeraseregions;i++){ @@ -242,6 +234,11 @@ static struct mtd_info *cfi_staa_setup(struct map_info *map) __module_get(THIS_MODULE); mtd->name = map->name; return mtd; +free_mtd: + kfree(mtd); +free_priv: + kfree(cfi->cmdset_priv); + return NULL; } -- 2.11.0