From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758656AbdAKUpc (ORCPT ); Wed, 11 Jan 2017 15:45:32 -0500 Received: from mout.web.de ([217.72.192.78]:51385 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754552AbdAKUnx (ORCPT ); Wed, 11 Jan 2017 15:43:53 -0500 Subject: [PATCH 07/18] mtd-cfi_cmdset_0001: One function call and an unnecessary check less in cfi_intelext_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: <7d729ead-b608-f298-d68c-f5f7e37605d6@users.sourceforge.net> Date: Wed, 11 Jan 2017 21:42:35 +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:SrxCg8bCIwjTieDLpk1aAFJyAjAgfD1SRzul5WCGuaLZA1awg3m RZVv+4kYoVDK2OB52eoPuq9prK6ElPZFBBgE6Kp7mRwUCyKYGnSiOuTKrN9EZHWjU/WY5q9 ZJpHtdO5dy60c/H5XSIghee02drKhNMzBi3N1liaVpnlkasiXohPCkJG+4WJvSLTv3mU9vz TcutR/VzXjA+csPu1tdPA== X-UI-Out-Filterresults: notjunk:1;V01:K0:3B9uv86Lni0=:GWXdr5TPzEGyCtU/dZzoz+ GZdN611qZw6G0wswxj6pvXpGUD0x1S8afZZzV+L5+GaAyZltmz4DHwCM6JbbnJ6RU9rrTVXhF tQseM+4kqde4KS+1Ikn9m1KvPC+nxnTQbSuQ9w8RXq5aFUUqzshTqJaVfC5aLSoWH2KPZHy73 UpoHLMiXMLUMPOupy4u4ITvogWy+CCeOY5Ji5O2f0IEN0IrrJfn10VgW65+M33X78nE4yScmQ 9Aa+DulpfRAZqVQz1GE4u1QGSgnsqczSYwlQJLNFDBSmi4h/TSACH6dyeQz7ZnxYN6QlSoZ8f qRZqFP+YeD7Gg5VqZW5xPH7BXQaXSZjO+rZIeegaEYVw4k57egvUUo+XoVLWo37u9DnJVi6jt fR6ddvW0IaIJiDsRlhetAh2/ZQQs4QRClb++YFw08rYGupfnxpvV7FgyVPfYNTlE1tymp96HT AQJnM7FSYpzWsCZGIH7Iv0K9NBloqMHRxyZwzFAoKYWtU+JJtwWdMPDO+uDJVVkVnUnvXmPXf 123Q4xmkppjvzzDOPFDd5GYHj+ouS6qUKh1kuwlqx0oH/qP3db32y7LrDGS699f2/rgQ3ihLp 81cz2vcPpockZ61RXiNFIyXU1Zp4eBz98AWaJGL+97rCbAeBkPn5ltcgvWLSxuR4/totkvC/U S5psnwDDBwIwoMOTgPoEKPmZ6wXEAkvl6VgRuX6EdnPrLvrHnfk2muy9YWLmzrIl4rNt0jbkA wN/YvaXMVwNgdwzohPHvogmnQ2qrgaekakt1KZbJalMInPU3RBxAzGmlJEOoKUHZ5+yN7zspI 04DsT6v 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 17:27:53 +0100 The kfree() function was called in one case by the cfi_intelext_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. * Delete a check which became unnecessary with this refactoring. Signed-off-by: Markus Elfring --- drivers/mtd/chips/cfi_cmdset_0001.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0001.c b/drivers/mtd/chips/cfi_cmdset_0001.c index d7d3d398e4d4..7f6ed7293e40 100644 --- a/drivers/mtd/chips/cfi_cmdset_0001.c +++ b/drivers/mtd/chips/cfi_cmdset_0001.c @@ -601,7 +601,7 @@ static struct mtd_info *cfi_intelext_setup(struct mtd_info *mtd) sizeof(*mtd->eraseregions), GFP_KERNEL); if (!mtd->eraseregions) - goto setup_err; + goto free_priv; for (i = 0; i < cfi->cfiq->NumEraseRegions; i++) { unsigned long ernum, ersize; @@ -657,16 +657,14 @@ static struct mtd_info *cfi_intelext_setup(struct mtd_info *mtd) return mtd; setup_err: - if (mtd->eraseregions) - for (i = 0; i < cfi->cfiq->NumEraseRegions; i++) - for (j = 0; j < cfi->numchips; j++) - kfree(mtd->eraseregions[j - * cfi->cfiq - ->NumEraseRegions - + i].lockmap); + for (i = 0; i < cfi->cfiq->NumEraseRegions; i++) + for (j = 0; j < cfi->numchips; j++) + kfree(mtd->eraseregions[j * cfi->cfiq->NumEraseRegions + + i].lockmap); kfree(mtd->eraseregions); - kfree(mtd); +free_priv: kfree(cfi->cmdset_priv); + kfree(mtd); return NULL; } -- 2.11.0