Callers of __pktgen_NN_threads() only check whether a pktgen_dev was found. Returning the pointer exposes it outside the helper even though neither caller uses the object itself. Return bool instead and keep the pktgen_dev pointer internal to the helper. Suggested-by: Paolo Abeni Signed-off-by: Chengfeng Ye --- Changes in v2: - Rebase directly onto the current net-next tree, independently of the deferred RCU lifetime fix. - Update the commit message for the current helper implementation. Link: https://lore.kernel.org/netdev/20260825185313.239861-1-nicoyip.dev@gmail.com/ [v1] --- net/core/pktgen.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 7f81aed46672..a89cb0760821 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -2024,11 +2024,11 @@ static const struct proc_ops pktgen_thread_proc_ops = { }; /* Think find or remove for NN */ -static struct pktgen_dev *__pktgen_NN_threads(const struct pktgen_net *pn, - const char *ifname, int remove) +static bool __pktgen_NN_threads(const struct pktgen_net *pn, + const char *ifname, int remove) { struct pktgen_thread *t; - struct pktgen_dev *pkt_dev = NULL; + struct pktgen_dev *pkt_dev; bool exact = (remove == FIND); list_for_each_entry(t, &pn->pktgen_threads, th_list) { @@ -2038,10 +2038,10 @@ static struct pktgen_dev *__pktgen_NN_threads(const struct pktgen_net *pn, pkt_dev->removal_mark = 1; t->control |= T_REMDEV; } - break; + return true; } } - return pkt_dev; + return false; } /* @@ -2049,7 +2049,6 @@ static struct pktgen_dev *__pktgen_NN_threads(const struct pktgen_net *pn, */ static void pktgen_mark_device(const struct pktgen_net *pn, const char *ifname) { - struct pktgen_dev *pkt_dev = NULL; const int max_tries = 10, msec_per_try = 125; int i = 0; @@ -2058,8 +2057,7 @@ static void pktgen_mark_device(const struct pktgen_net *pn, const char *ifname) while (1) { - pkt_dev = __pktgen_NN_threads(pn, ifname, REMOVE); - if (pkt_dev == NULL) + if (!__pktgen_NN_threads(pn, ifname, REMOVE)) break; /* success */ mutex_unlock(&pktgen_thread_lock); @@ -3835,8 +3833,7 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname) /* We don't allow a device to be on several threads */ - pkt_dev = __pktgen_NN_threads(t->net, ifname, FIND); - if (pkt_dev) { + if (__pktgen_NN_threads(t->net, ifname, FIND)) { pr_err("ERROR: interface already used\n"); return -EBUSY; } -- 2.43.0