Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp376005imu; Thu, 8 Nov 2018 22:10:36 -0800 (PST) X-Google-Smtp-Source: AJdET5fCGsNj6tSQFQBS9E7toFWrnog2bdB3wmFueFCJUIxyG4pQWi9U0sBBjpq2mwBCRy9+sUsS X-Received: by 2002:a62:32c4:: with SMTP id y187-v6mr7726984pfy.4.1541743836794; Thu, 08 Nov 2018 22:10:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541743836; cv=none; d=google.com; s=arc-20160816; b=LlBext2+n7459j9ZjKw8m7v6uSiREiCn28xm1ZTxvlsJqNqy5rB/BXjpt3osM9na0V 8Ffb7hmaBnfiKWqVSHDK/+FZGzCAd2TkHMOGlVFaf3yoy9Y0mHpIZGZTXM8pVfpEC9dY QA6z/1d7sbq12J4xOeN/9ssbHkx7QeNWlYx1O1c2asvKbWU2anjmtwmEvvDs3pGP+j/M ooDBhAmBLkKJHugXrHn01VmFUwKmcWEPZc15/0inWGqkdL10Nmn+VrqO4mXIPOCetanz rFIGOjbGgtYGtK20kPfdLVvYd9kdT6vRcFqEv51CH61Ty1mcxMNWoyYQ33gkG6CrXcn7 sk8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=PG2ocAMiVixrDeygGSkU3xeZwD7YrFAmHiDnBCDK3aM=; b=gcvngrfACNVEeVeCZx0xtUsztacmO9VOdx61TLP1gqYbGbTMX62XyHfXACqkA6lLPY XRd0f4yzH8Pbg42OcJTQ9KU7UrmiKom6TEtngjKn1enbB1FW3Z9epfQvnmYz+hWmLdHx Mqs7b/1wwWZbSMmqjutTe2axgtRvwnv24UIVCoYiIsbAQIyPc8Nyfi0+0MLt2BXKpDad eyj46bU3UZNWQRKKerSFTft4vd+bxso6PWqXPVGJsmO/zrKji5QUi6RWgz5EzG7BCjU0 l9iaFgf1IA0b7vCLVV/3pGtxOanghIb5u93wQApoDjIqBuxvfb2eqX77Q9mG1gAnuz74 veNw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=VULamfwB; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o186-v6si7383939pfo.236.2018.11.08.22.10.21; Thu, 08 Nov 2018 22:10:36 -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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=VULamfwB; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727878AbeKIPqt (ORCPT + 99 others); Fri, 9 Nov 2018 10:46:49 -0500 Received: from mail-pl1-f193.google.com ([209.85.214.193]:41680 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727827AbeKIPqs (ORCPT ); Fri, 9 Nov 2018 10:46:48 -0500 Received: by mail-pl1-f193.google.com with SMTP id p16-v6so445502plr.8; Thu, 08 Nov 2018 22:07:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=PG2ocAMiVixrDeygGSkU3xeZwD7YrFAmHiDnBCDK3aM=; b=VULamfwBqYrbnPluR35Rr2eBZFcuavn4wc+03Gfgu0SfzcdrZ5PgTzaQ3ihFGUvP1K +uaBFwssybDlujMglmnXguoh9tiYRt2+3m7ArGqjcvBr6TZsSGKD3zO8IICIocj7RE2K Zmp2I14L+DNxESGf2khLfL4a6D7MIZRr4DbWHPuca9WS54x4tXOwI2OpmoK6hjhObM43 MFHhnLOoqd+m9LeMQAaRia0kw48rUGaJkgGXZOPTSAa5JiViuWsaI5GeMUhA2hYH61YJ 0nUnlEVhA9GXtEJBu1qrPOZ2ELJp4XpnfjKYv/Kzr8y7hm6/v/a7fwjr73wxI6UeACNV ejKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=PG2ocAMiVixrDeygGSkU3xeZwD7YrFAmHiDnBCDK3aM=; b=UZl1M2mr9VPm/9WmW/oIjjvnAgNRzg5FcBLPMZ+F0JyNFmzFB+WDujcverqIMj72iF 6+GyaQnNXZPzoU9EyrYqWXuGtN/7l6e0jlmynUF55LK08O3di5OtUsjznQgO3YJ0PO6G gVBNYSQqD3NJqPwCTcaeI5D92AOrX5q895yiAEqUQ6+xekiZ2rfFIizVi54lIRGTIhdG 3dyFNtcf++JxcjtOYhX0pmZpOXKbtlFTtHPs26LXKyi7ZXdeivMyT4oyNr63OJp+N0z7 a8veNKGBD+jufyj87ntZ3yT3QZTyXF2KDE/F5EcEciB9X5gPpMGDEKS7Q2hxMb3Ds+o/ 5eEg== X-Gm-Message-State: AGRZ1gLOT5NEehheyQDRoVR8GWZB8STKunJNf68G4AKIylew8P7XlUHU GzuJOYuFMNbRDCaJuKyrxr0= X-Received: by 2002:a17:902:396a:: with SMTP id e39-v6mr4062601plg.65.1541743668182; Thu, 08 Nov 2018 22:07:48 -0800 (PST) Received: from localhost.localdomain (c-24-6-192-50.hsd1.ca.comcast.net. [24.6.192.50]) by smtp.gmail.com with ESMTPSA id c70-v6sm6620722pfg.97.2018.11.08.22.07.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 08 Nov 2018 22:07:47 -0800 (PST) From: frowand.list@gmail.com To: Rob Herring , Pantelis Antoniou , Michael Ellerman , Benjamin Herrenschmidt , Paul Mackerras , Alan Tull , Moritz Fischer Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, devicetree@vger.kernel.org, linux-fpga@vger.kernel.org Subject: [PATCH v7 03/17] of: overlay: add missing of_node_get() in __of_attach_node_sysfs Date: Thu, 8 Nov 2018 22:05:51 -0800 Message-Id: <1541743565-23163-4-git-send-email-frowand.list@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1541743565-23163-1-git-send-email-frowand.list@gmail.com> References: <1541743565-23163-1-git-send-email-frowand.list@gmail.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Frank Rowand There is a matching of_node_put() in __of_detach_node_sysfs() Remove misleading comment from function header comment for of_detach_node(). This patch may result in memory leaks from code that directly calls the dynamic node add and delete functions directly instead of using changesets. This commit should result in powerpc systems that dynamically allocate a node, then later deallocate the node to have a memory leak when the node is deallocated. The next commit will fix the leak. Tested-by: Alan Tull Acked-by: Michael Ellerman (powerpc) Signed-off-by: Frank Rowand --- drivers/of/dynamic.c | 3 --- drivers/of/kobj.c | 4 +++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c index 12c3f9a15e94..146681540487 100644 --- a/drivers/of/dynamic.c +++ b/drivers/of/dynamic.c @@ -272,9 +272,6 @@ void __of_detach_node(struct device_node *np) /** * of_detach_node() - "Unplug" a node from the device tree. - * - * The caller must hold a reference to the node. The memory associated with - * the node is not freed until its refcount goes to zero. */ int of_detach_node(struct device_node *np) { diff --git a/drivers/of/kobj.c b/drivers/of/kobj.c index 7a0a18980b98..c72eef988041 100644 --- a/drivers/of/kobj.c +++ b/drivers/of/kobj.c @@ -133,6 +133,9 @@ int __of_attach_node_sysfs(struct device_node *np) } if (!name) return -ENOMEM; + + of_node_get(np); + rc = kobject_add(&np->kobj, parent, "%s", name); kfree(name); if (rc) @@ -159,6 +162,5 @@ void __of_detach_node_sysfs(struct device_node *np) kobject_del(&np->kobj); } - /* finally remove the kobj_init ref */ of_node_put(np); } -- Frank Rowand