[PATCH RESEND v2 06/51] powerpc/pseries: put the node that the ofdt property commands look up
Christian Brauner
brauner at kernel.org
Wed Nov 4 11:17:28 PST 2026
parse_node() looks the node up with of_find_node_by_phandle(), which
returns it with a reference, and do_add_property(),
do_remove_property() and do_update_property() never put that
reference. Every property command written to /proc/powerpc/ofdt leaks
one. Put it when the command is done.
Fixes: 610d91511f99 ("[PATCH] powerpc: Add support for changing properties from userspace")
Signed-off-by: Christian Brauner (Amutable) <brauner at kernel.org>
---
arch/powerpc/platforms/pseries/reconfig.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/powerpc/platforms/pseries/reconfig.c b/arch/powerpc/platforms/pseries/reconfig.c
index 18e3f1a036e3..5a0c9c0b6253 100644
--- a/arch/powerpc/platforms/pseries/reconfig.c
+++ b/arch/powerpc/platforms/pseries/reconfig.c
@@ -271,8 +271,8 @@ static char *parse_node(char *buf, size_t bufsize, struct device_node **npp)
static int do_add_property(char *buf, size_t bufsize)
{
+ struct device_node *np __free(device_node) = NULL;
struct property *prop = NULL;
- struct device_node *np;
unsigned char *value;
char *name, *end;
int length;
@@ -296,7 +296,7 @@ static int do_add_property(char *buf, size_t bufsize)
static int do_remove_property(char *buf, size_t bufsize)
{
- struct device_node *np;
+ struct device_node *np __free(device_node) = NULL;
char *tmp;
buf = parse_node(buf, bufsize, &np);
@@ -315,7 +315,7 @@ static int do_remove_property(char *buf, size_t bufsize)
static int do_update_property(char *buf, size_t bufsize)
{
- struct device_node *np;
+ struct device_node *np __free(device_node) = NULL;
unsigned char *value;
char *name, *end, *next_prop;
int length;
--
2.53.0
More information about the linux-um
mailing list