On Fri, 2 May 2025 10:10:33 +0300 Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote: > On Fri, May 02, 2025 at 03:46:21PM +0900, Honggyu Kim wrote: > > Hi Dan, > > > > On 4/23/2025 5:24 PM, Dan Carpenter wrote: > > > Return -EEXIST if the node already exists. Don't return success. > > > > > > Fixes: 1bf270ac1b0a ("mm/mempolicy: support memory hotplug in weighted interleave") > > > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > > > --- > > > Potentially returning success was intentional? This is from static > > > analysis and I can't be totally sure. > > > > > > mm/mempolicy.c | 3 ++- > > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > > > diff --git a/mm/mempolicy.c b/mm/mempolicy.c > > > index f43951668c41..0538a994440a 100644 > > > --- a/mm/mempolicy.c > > > +++ b/mm/mempolicy.c > > > @@ -3539,7 +3539,7 @@ static const struct kobj_type wi_ktype = { > > > static int sysfs_wi_node_add(int nid) > > > { > > > - int ret = 0; > > > + int ret; > > > char *name; > > > struct iw_node_attr *new_attr; > > > @@ -3569,6 +3569,7 @@ static int sysfs_wi_node_add(int nid) > > > if (wi_group->nattrs[nid]) { > > > mutex_unlock(&wi_group->kobj_lock); > > > pr_info("node%d already exists\n", nid); > > > + ret = -EEXIST; > > > > Returning -EEXIST here looks good to me, but could you remove the above pr_info > > as well? I mean the following change is needed. > > > > - pr_info("node%d already exists\n", nid) > > + ret = -EEXIST; > > > > We don't need the above pr_info here because we delegate a warning message to > > its caller wi_node_notifier(). > > > > This can close another warning report below. > > https://lore.kernel.org/all/202505020458.yLHRAaW9-lkp@xxxxxxxxx > > > > If you apply my suggestion then please add > > > > Reviewed-by: Honggyu Kim <honggyu.kim@xxxxxx> > > > > Rakie Kim was pretty confident that returning 0 was intentional. Btw, > Smatch considers it intentional if the "ret = 0;" is within 5 > lines of the goto. Or we could add a comment, which wouldn't silence > the warning but it would help people reading the code. > Hi Dan, Thank you for taking the time to review this code and point out the issue. I believe there may have been some confusion related to the behavior in previous versions. In the latest revision, the `wi_node_notifier()` function that calls `sysfs_wi_node_add()` has been updated to always return `NOTIFY_OK`, regardless of the return value from `sysfs_wi_node_add()`. This ensures that no memory hotplug event will be blocked by our notifier logic. static int wi_node_notifier(struct notifier_block *nb, unsigned long action, void *data) { ... switch (action) { case MEM_ONLINE: err = sysfs_wi_node_add(nid); if (err) pr_err("failed to add sysfs for node%d during hotplug: %d\n", nid, err); break; ... return NOTIFY_OK; } Given that, it is appropriate for `sysfs_wi_node_add()` to return `-EEXIST` when the node already exists. Since the error message is already logged by `wi_node_notifier()`, I agree with Honggyu's suggestion to remove the redundant `pr_info()` statement as well: - pr_info("node%d already exists\n", nid); + ret = -EEXIST; Once again, thank you very much for your review and for helping us improve the code. Reviewed-by: Rakie Kim <rakie.kim@xxxxxx> Rakie > regards, > dan carpenter > >