From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758794AbdAKUrK (ORCPT ); Wed, 11 Jan 2017 15:47:10 -0500 Received: from mout.web.de ([212.227.17.11]:63306 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756346AbdAKUpw (ORCPT ); Wed, 11 Jan 2017 15:45:52 -0500 Subject: [PATCH 10/18] mtd-cfi_cmdset_0002: One function call less in cfi_amdstd_setup() after error detection 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: <46aa5810-8f5d-b35e-17a5-137228cb9720@users.sourceforge.net> Date: Wed, 11 Jan 2017 21:45:21 +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:fFQl+4m1a/hw4qZtvQlvCVyy6nRwRAoNf/iUVDSsSJaTwDO5efY RCjbCZpOUl34ySulrGnRIKSEXyvOo29Rmaj/2pu8qBBHRq9IcQjhti0gUH7FAXT5PGQUqOd DwpH9nSZ2kfME7Xbenj6W9/SMkx5tdBtFo5Nm5a63xm9YCWDFXqSBGWyhtU8t4NbR1Y5lCg F2N2VesptebG/EpJyffhA== X-UI-Out-Filterresults: notjunk:1;V01:K0:0TkYDTaYX9s=:qUH731lIILyIAAAiODNcow vWLeFAjVfiAzQeHa9KO7+YucQS2nC7L7BPYoiK4mjECw0UDb/4cjGOi9v8vYeiB51goT9YI5G Cb9tQIlTO9qSluWbUB4euxFJplkZTNKyvL62hKqwUHXrVISmLtPrvupjYRYQnqylWyhCaqPdf 4EDABGfifN0dK++xcSAvWd7CMUPrzp89TsQ36bV3K27S20L+j0wKNA4ptxUvtCtwwHy6g6/qY VP6+S1VSXW7E2mly/CWSzYwDKE1HkxEu7TTwHnSLq7LFW1GWHU5FO3nsWEwnTc2Pl23RrmOqP TULGeqSVbOfM5XZuq+i0fQtIr8rmo/8s2DvjBJqwj2t7GW97xZLNX26g0NE627jc8/iXmdQl7 LiWVnKLxJnAdJX0tyNK7Ds2efeRqEYFQK6+IBwbmw4tvMSLBFD2AVIpmIuFYL+EX/L27lxlrz qGZhedFUdgfd8ds/tlilzujahq1DWj6OPKqqnnc8u6EzzS4RLTvD1QbTQiD5JUPwrqHFLyRku HH97tN6zTe9lSYj+mdV8JvJGUB7YDjUcCQY1pdEy9CZU03NeuF2V0ViAz6uytaqOEM6PnfnMp 234wWX6HAmuYKYzbs5A648aeBZVHxVd3OIwjNMvieMW+13CJJ7LsMtOXuoZcFIHT7RGoWNKvo 5Dvvb+Hux0oVWl98irvzxHvl/SMTlE/xnXl5AsmdQMhp17NICc1xvqBYV6oWfD1vJUy07quGA EbxQMnGCrJdVKikAenRThZpkQTSGagynjkA0pnpVM7Gkvd9TDDebk2k7XYt7ylPLWR31H7ZO2 SW/V00G 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 18:32:06 +0100 The kfree() function was called in one case by the cfi_amdstd_setup() function during error handling even if the passed data structure member contained a null pointer. Adjust a jump target according to the Linux coding style convention so that memory will be also released for members of a data structure before the container "mtd" in the error handling case. Signed-off-by: Markus Elfring --- drivers/mtd/chips/cfi_cmdset_0002.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index 3bed67e35692..25d485f6d2ff 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -692,7 +692,7 @@ static struct mtd_info *cfi_amdstd_setup(struct mtd_info *mtd) sizeof(*mtd->eraseregions), GFP_KERNEL); if (!mtd->eraseregions) - goto setup_err; + goto free_priv; for (i=0; icfiq->NumEraseRegions; i++) { unsigned long ernum, ersize; @@ -721,9 +721,10 @@ static struct mtd_info *cfi_amdstd_setup(struct mtd_info *mtd) setup_err: kfree(mtd->eraseregions); - kfree(mtd); +free_priv: kfree(cfi->cmdset_priv); kfree(cfi->cfiq); + kfree(mtd); return NULL; } -- 2.11.0