Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2990548imu; Sun, 9 Dec 2018 14:28:09 -0800 (PST) X-Google-Smtp-Source: AFSGD/WulShD7ajTEwKg2OLn3bAsagsjEPkPG5JjwToS8F0aXzNI7FqU8niM7SjTIlu1PADTXu2D X-Received: by 2002:a62:a510:: with SMTP id v16mr10054788pfm.18.1544394489720; Sun, 09 Dec 2018 14:28:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544394489; cv=none; d=google.com; s=arc-20160816; b=Q6BJNbR0TIe2fgvhd5PVQgTP3iKbaqGHMqhI+J/4CHb49t4Vm5msIJg0UG/afVvU2I x+PmKtCx7q/k9iva2DYbYrXNKOidmvUol1TecymK12HQ838MqxmSj8bszMyVUQtv5Dtr 9+43bCpIwAuCz5/2eWaxOBzYeLCj9KUMhgprVjr+STnR5Si2hC9RCni43jYccPlYI+2T lsnDCrMo/YVATkXDSlzJZMieyxaXHdillLmzLkt/hWPCMhsTXf9izBoD6PjpLPHUVH/k wiGODcoDMDmsiwoVaZBtZJlwgKbVIHvbEWPxqfBDRi9juO9lh//OnsYuBMjxOEEjx4li oIlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:subject:message-id:date:cc:to :from:mime-version:content-transfer-encoding:content-disposition; bh=vVxWlhK9RJFoN50/6WFyMFLtc2mFuHQeYGyt7qnGahk=; b=EsoEo8eRwhjqy6y+BKcA6YuyQaZTEq0ycgGPYiOPfgZPXahhNVdrb7Dbl1MhVT5F1y tDeXlWNKuJiTaTr52mc7NOgyq0O/aIFkxYQbjW4tGlccCsGcM63maFAgiZCoHRxOOnBc 4IvY3WTPlr6BpJ44UwMqavWvoUI1Zxx+ds3mWd/LWjQiy+ZqTyAAfpdtH0pwRrFYTkOb 64asvOwRmUu/39WPrcQ2wot5OHFCdqK4PIYUVhKG+Qm8ln2HRHYRugaoZF6lSdlhZEYG yANZkPq4zSpwVyaBwbNDMNYSiM9wXRVgNKzyXN7iBv13O8hn5DOzwLzgydl7XX2g9Ntj TNcw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x186si8156567pgb.33.2018.12.09.14.27.54; Sun, 09 Dec 2018 14:28:09 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728451AbeLIWZY (ORCPT + 99 others); Sun, 9 Dec 2018 17:25:24 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:34926 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726449AbeLIVzQ (ORCPT ); Sun, 9 Dec 2018 16:55:16 -0500 Received: from pub.yeoldevic.com ([81.174.156.145] helo=deadeye) by shadbolt.decadent.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1gW72e-0002iq-JJ; Sun, 09 Dec 2018 21:55:12 +0000 Received: from ben by deadeye with local (Exim 4.91) (envelope-from ) id 1gW72b-0003LI-Uo; Sun, 09 Dec 2018 21:55:09 +0000 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org CC: akpm@linux-foundation.org, "Linus Walleij" , "Jisheng Zhang" , "YueHaibing" Date: Sun, 09 Dec 2018 21:50:33 +0000 Message-ID: X-Mailer: LinuxStableQueue (scripts by bwh) X-Patchwork-Hint: ignore Subject: [PATCH 3.16 101/328] pinctrl: berlin: fix 'pctrl->functions' allocation in berlin_pinctrl_build_state In-Reply-To: X-SA-Exim-Connect-IP: 81.174.156.145 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.16.62-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: YueHaibing commit b5031b7db77dc47f474f0efc2b2552c32b7bb59d upstream. fixes following Smatch static check warning: drivers/pinctrl/berlin/berlin.c:237 berlin_pinctrl_build_state() warn: passing devm_ allocated variable to kfree. 'pctrl->functions' As we will be calling krealloc() on pointer 'pctrl->functions', which means kfree() will be called in there, devm_kzalloc() shouldn't be used with the allocation in the first place. Fix the warning by calling kcalloc() and managing the free procedure in error path on our own. Fixes: 3de68d331c24 ("pinctrl: berlin: add the core pinctrl driver for Marvell Berlin SoCs") Signed-off-by: YueHaibing Reviewed-by: Jisheng Zhang Signed-off-by: Linus Walleij [bwh: Backported to 3.16: berlin_pinctrl_state() was not yet converted to devm_kcalloc()] Signed-off-by: Ben Hutchings --- drivers/pinctrl/berlin/berlin.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) --- a/drivers/pinctrl/berlin/berlin.c +++ b/drivers/pinctrl/berlin/berlin.c @@ -237,9 +237,8 @@ static int berlin_pinctrl_build_state(st } /* we will reallocate later */ - pctrl->functions = devm_kzalloc(&pdev->dev, - max_functions * sizeof(*pctrl->functions), - GFP_KERNEL); + pctrl->functions = kcalloc(max_functions, + sizeof(*pctrl->functions), GFP_KERNEL); if (!pctrl->functions) return -ENOMEM; @@ -277,8 +276,10 @@ static int berlin_pinctrl_build_state(st function++; } - if (!found) + if (!found) { + kfree(pctrl->functions); return -EINVAL; + } if (!function->groups) { function->groups = @@ -286,8 +287,10 @@ static int berlin_pinctrl_build_state(st function->ngroups * sizeof(char *), GFP_KERNEL); - if (!function->groups) + if (!function->groups) { + kfree(pctrl->functions); return -ENOMEM; + } } groups = function->groups;