From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3C310EB64DD for ; Thu, 6 Jul 2023 04:08:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233182AbjGFEIN (ORCPT ); Thu, 6 Jul 2023 00:08:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38184 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232583AbjGFEIE (ORCPT ); Thu, 6 Jul 2023 00:08:04 -0400 Received: from muru.com (muru.com [72.249.23.125]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 3FA671FC3 for ; Wed, 5 Jul 2023 21:07:57 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by muru.com (Postfix) with ESMTPS id 8926A807E; Thu, 6 Jul 2023 04:07:56 +0000 (UTC) Date: Thu, 6 Jul 2023 07:07:55 +0300 From: Tony Lindgren To: "guomengqi (A)" Cc: Linus Walleij , haojian.zhuang@linaro.org, linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org Subject: Re: [PATCH] pinctrl: single: Fix memleak in pcs_dt_node_to_map Message-ID: <20230706040755.GB5089@atomide.com> References: <20230703081716.15810-1-guomengqi3@huawei.com> <9a490082-bc30-8a7e-2d19-fcd212771a4b@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <9a490082-bc30-8a7e-2d19-fcd212771a4b@huawei.com> Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org Hi, * guomengqi (A) [230706 03:21]: > 在 2023/7/4 17:18, Linus Walleij 写道: > > On Mon, Jul 3, 2023 at 10:24 AM Guo Mengqi wrote: > > > > > In a reliability test which repeatedly load and remove a module, > > > I found some kmalloc-256 memory leaks in pinctrl-single. > > > > > > pcs_dt_node_to_map() will recognize a dt_node and > > > make a mapping for it. Along the way some pinctrl functions and groups > > > are registered in pinctrl-single controller. These functions/groups are > > > registered once and not removed during the system lifetime. > > > > > > When the client module loads again, pcs_dt_node_to_map() fail to consider > > > this situation, create the same set of resources, and does not release or > > > use them. > > > > > > To fix this, add a check at the start of pcs_parse_one_pinctrl_entry/ > > > pcs_parse_bits_in_pinctrl_entry. If the target is found, > > > then all the resource allocation and parsing work can be skipped, > > > just set the mapping with existing function/group information. > > > > > > Fixes: 8b8b091bf07f ("pinctrl: Add one-register-per-pin type device tree > > > based pinctrl driver") > > > > > > Signed-off-by: Guo Mengqi > > Good catch! > > > > I expect Tony to review the patch in-depth. > > Thank you :) Thanks for looking into it. I wonder if we can rely on naming for pinmux_func_name_to_selector() though. Can things change in a way where we need to release everything and reparse? Mostly wondering what happens with DT overlays? > > > -static int pinmux_func_name_to_selector(struct pinctrl_dev *pctldev, > > > +int pinmux_func_name_to_selector(struct pinctrl_dev *pctldev, > > > const char *function) > > > { > > > const struct pinmux_ops *ops = pctldev->desc->pmxops; > > It appears you need to add EXPORT_SYMBOL_GPL() for this function > > so the module can build. (This is why the build robot complains.) > Yes, it happens when config=M. I will send a v2 patch later to fix this. That change might be worth doing in any case if there is need for it. Regards, Tony From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A340AEB64DC for ; Thu, 6 Jul 2023 04:08:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=TdiQIVAuAJm+3+Pobx0v2MBYWCMA7bO0thUrWi+91L0=; b=bLhKeey5OmPgTZ CYL8moiXQEs1O2c0EtTBUK8ZvoF+mRA5aRDKY+5avV3JQyuUI9edOsd54vUQ0PiXbJP9LRufyCbwL +imHTB0BeQVl2t+3rzRWdUAuYjWDA/pIxpIOLiebVlppBQpd4IoT8Xzx5gR0F7nJwycKQklrJjICs +oAZRBvAU75mArSWLZjTRbDi6CLJ5uPCYTEtzCezWTAXVr6b1zbdRCVaD5TsA0ItRViPWlwEKOYIt u6I9Ry42169998S5AbGHz7Z5KT9/dLmoXExDOVD/yvx4EkXsRc6Gs61Gk7u13aLv81C0Fd/7pZpIz jZ8OdIP8IuPles8nBR8A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qHGHj-000Kez-0B; Thu, 06 Jul 2023 04:08:03 +0000 Received: from muru.com ([72.249.23.125]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qHGHg-000KeQ-1W for linux-arm-kernel@lists.infradead.org; Thu, 06 Jul 2023 04:08:01 +0000 Received: from localhost (localhost [127.0.0.1]) by muru.com (Postfix) with ESMTPS id 8926A807E; Thu, 6 Jul 2023 04:07:56 +0000 (UTC) Date: Thu, 6 Jul 2023 07:07:55 +0300 From: Tony Lindgren To: "guomengqi (A)" Cc: Linus Walleij , haojian.zhuang@linaro.org, linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org Subject: Re: [PATCH] pinctrl: single: Fix memleak in pcs_dt_node_to_map Message-ID: <20230706040755.GB5089@atomide.com> References: <20230703081716.15810-1-guomengqi3@huawei.com> <9a490082-bc30-8a7e-2d19-fcd212771a4b@huawei.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <9a490082-bc30-8a7e-2d19-fcd212771a4b@huawei.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230705_210800_575888_C02FDA9B X-CRM114-Status: GOOD ( 27.27 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGksCgoqIGd1b21lbmdxaSAoQSkgPGd1b21lbmdxaTNAaHVhd2VpLmNvbT4gWzIzMDcwNiAwMzoy MV06Cj4g5ZyoIDIwMjMvNy80IDE3OjE4LCBMaW51cyBXYWxsZWlqIOWGmemBkzoKPiA+IE9uIE1v biwgSnVsIDMsIDIwMjMgYXQgMTA6MjTigK9BTSBHdW8gTWVuZ3FpIDxndW9tZW5ncWkzQGh1YXdl aS5jb20+IHdyb3RlOgo+ID4gCj4gPiA+IEluIGEgcmVsaWFiaWxpdHkgdGVzdCB3aGljaCByZXBl YXRlZGx5IGxvYWQgYW5kIHJlbW92ZSBhIG1vZHVsZSwKPiA+ID4gSSBmb3VuZCBzb21lIGttYWxs b2MtMjU2IG1lbW9yeSBsZWFrcyBpbiBwaW5jdHJsLXNpbmdsZS4KPiA+ID4gCj4gPiA+IHBjc19k dF9ub2RlX3RvX21hcCgpIHdpbGwgcmVjb2duaXplIGEgZHRfbm9kZSBhbmQKPiA+ID4gbWFrZSBh IG1hcHBpbmcgZm9yIGl0LiBBbG9uZyB0aGUgd2F5IHNvbWUgcGluY3RybCBmdW5jdGlvbnMgYW5k IGdyb3Vwcwo+ID4gPiBhcmUgcmVnaXN0ZXJlZCBpbiBwaW5jdHJsLXNpbmdsZSBjb250cm9sbGVy LiBUaGVzZSBmdW5jdGlvbnMvZ3JvdXBzIGFyZQo+ID4gPiByZWdpc3RlcmVkIG9uY2UgYW5kIG5v dCByZW1vdmVkIGR1cmluZyB0aGUgc3lzdGVtIGxpZmV0aW1lLgo+ID4gPiAKPiA+ID4gV2hlbiB0 aGUgY2xpZW50IG1vZHVsZSBsb2FkcyBhZ2FpbiwgcGNzX2R0X25vZGVfdG9fbWFwKCkgZmFpbCB0 byBjb25zaWRlcgo+ID4gPiB0aGlzIHNpdHVhdGlvbiwgY3JlYXRlIHRoZSBzYW1lIHNldCBvZiBy ZXNvdXJjZXMsIGFuZCBkb2VzIG5vdCByZWxlYXNlIG9yCj4gPiA+IHVzZSB0aGVtLgo+ID4gPiAK PiA+ID4gVG8gZml4IHRoaXMsIGFkZCBhIGNoZWNrIGF0IHRoZSBzdGFydCBvZiBwY3NfcGFyc2Vf b25lX3BpbmN0cmxfZW50cnkvCj4gPiA+IHBjc19wYXJzZV9iaXRzX2luX3BpbmN0cmxfZW50cnku IElmIHRoZSB0YXJnZXQgaXMgZm91bmQsCj4gPiA+IHRoZW4gYWxsIHRoZSByZXNvdXJjZSBhbGxv Y2F0aW9uIGFuZCBwYXJzaW5nIHdvcmsgY2FuIGJlIHNraXBwZWQsCj4gPiA+IGp1c3Qgc2V0IHRo ZSBtYXBwaW5nIHdpdGggZXhpc3RpbmcgZnVuY3Rpb24vZ3JvdXAgaW5mb3JtYXRpb24uCj4gPiA+ IAo+ID4gPiBGaXhlczogOGI4YjA5MWJmMDdmICgicGluY3RybDogQWRkIG9uZS1yZWdpc3Rlci1w ZXItcGluIHR5cGUgZGV2aWNlIHRyZWUKPiA+ID4gYmFzZWQgcGluY3RybCBkcml2ZXIiKQo+ID4g PiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogR3VvIE1lbmdxaSA8Z3VvbWVuZ3FpM0BodWF3ZWkuY29t Pgo+ID4gR29vZCBjYXRjaCEKPiA+IAo+ID4gSSBleHBlY3QgVG9ueSB0byByZXZpZXcgdGhlIHBh dGNoIGluLWRlcHRoLgo+IAo+IFRoYW5rIHlvdSA6KQoKVGhhbmtzIGZvciBsb29raW5nIGludG8g aXQuIEkgd29uZGVyIGlmIHdlIGNhbiByZWx5IG9uIG5hbWluZyBmb3IKcGlubXV4X2Z1bmNfbmFt ZV90b19zZWxlY3RvcigpIHRob3VnaC4gQ2FuIHRoaW5ncyBjaGFuZ2UgaW4gYSB3YXkgd2hlcmUK d2UgbmVlZCB0byByZWxlYXNlIGV2ZXJ5dGhpbmcgYW5kIHJlcGFyc2U/IE1vc3RseSB3b25kZXJp bmcgd2hhdCBoYXBwZW5zCndpdGggRFQgb3ZlcmxheXM/Cgo+ID4gPiAtc3RhdGljIGludCBwaW5t dXhfZnVuY19uYW1lX3RvX3NlbGVjdG9yKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKPiA+ ID4gK2ludCBwaW5tdXhfZnVuY19uYW1lX3RvX3NlbGVjdG9yKHN0cnVjdCBwaW5jdHJsX2RldiAq cGN0bGRldiwKPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICpmdW5jdGlvbikKPiA+ID4gICB7Cj4gPiA+ICAgICAgICAgIGNvbnN0IHN0cnVj dCBwaW5tdXhfb3BzICpvcHMgPSBwY3RsZGV2LT5kZXNjLT5wbXhvcHM7Cj4gPiBJdCBhcHBlYXJz IHlvdSBuZWVkIHRvIGFkZCBFWFBPUlRfU1lNQk9MX0dQTCgpIGZvciB0aGlzIGZ1bmN0aW9uCj4g PiBzbyB0aGUgbW9kdWxlIGNhbiBidWlsZC4gKFRoaXMgaXMgd2h5IHRoZSBidWlsZCByb2JvdCBj b21wbGFpbnMuKQo+IFllcywgaXQgaGFwcGVucyB3aGVuIGNvbmZpZz1NLiBJIHdpbGwgc2VuZCBh IHYyIHBhdGNoIGxhdGVyIHRvIGZpeCB0aGlzLgoKVGhhdCBjaGFuZ2UgbWlnaHQgYmUgd29ydGgg ZG9pbmcgaW4gYW55IGNhc2UgaWYgdGhlcmUgaXMgbmVlZCBmb3IgaXQuCgpSZWdhcmRzLAoKVG9u eQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgt YXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJt LWtlcm5lbAo=