Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Low] powerpc/pseries: __free(device_node) declared = NULL at top of functions --
commit 3c337546ce05e068449f95031255af375235286d Author: Christian Brauner <[email protected]> powerpc/pseries: put the node that the ofdt property commands look up This commit uses __free(device_node) in do_add_property(), do_remove_property(), and do_update_property() to release the device_node reference obtained by parse_node() via of_find_node_by_phandle(). > diff --git a/arch/powerpc/platforms/pseries/reconfig.c > b/arch/powerpc/platforms/pseries/reconfig.c > index 18e3f1a036e35..5a0c9c0b6253f 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; [Severity: Low] This isn't a bug, but in do_add_property(), do_remove_property(), and do_update_property() in arch/powerpc/platforms/pseries/reconfig.c, np is declared with __free(device_node) = NULL at the top of each function and assigned later via parse_node(buf, bufsize, &np), whereas cleanup.h conventions require defining and initializing __free() variables in a single statement. Since parse_node() is a static helper only called by these three functions: static char *parse_node(char *buf, size_t bufsize, struct device_node **npp) { char *handle_str; phandle handle; *npp = NULL; ... *npp = of_find_node_by_phandle(handle); return buf; } could parse_node() return struct device_node * directly (and advance char **buf) so that struct device_node *np __free(device_node) can be defined and initialized in one statement in each caller? -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=6
