From: Chen Hanxiao chenhx.fnst@fujitsu.com
[ Upstream commit cbd070a4ae62f119058973f6d2c984e325bce6e7 ]
Use pe directly to resolve sparse warning:
net/netfilter/ipvs/ip_vs_ctl.c:1471:27: warning: dereference of noderef expression
Fixes: 39b972231536 ("ipvs: handle connections started by real-servers") Signed-off-by: Chen Hanxiao chenhx.fnst@fujitsu.com Acked-by: Julian Anastasov ja@ssi.bg Acked-by: Simon Horman horms@kernel.org Signed-off-by: Pablo Neira Ayuso pablo@netfilter.org Signed-off-by: Cliff Liu donghua.liu@windriver.com Signed-off-by: He Zhe Zhe.He@windriver.com --- Verified the build test. --- net/netfilter/ipvs/ip_vs_ctl.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c index d0b64c36471d..0f1531e0ce4e 100644 --- a/net/netfilter/ipvs/ip_vs_ctl.c +++ b/net/netfilter/ipvs/ip_vs_ctl.c @@ -1384,20 +1384,20 @@ ip_vs_add_service(struct netns_ipvs *ipvs, struct ip_vs_service_user_kern *u, sched = NULL; }
- /* Bind the ct retriever */ - RCU_INIT_POINTER(svc->pe, pe); - pe = NULL; - /* Update the virtual service counters */ if (svc->port == FTPPORT) atomic_inc(&ipvs->ftpsvc_counter); else if (svc->port == 0) atomic_inc(&ipvs->nullsvc_counter); - if (svc->pe && svc->pe->conn_out) + if (pe && pe->conn_out) atomic_inc(&ipvs->conn_out_counter);
ip_vs_start_estimator(ipvs, &svc->stats);
+ /* Bind the ct retriever */ + RCU_INIT_POINTER(svc->pe, pe); + pe = NULL; + /* Count only IPv4 services for old get/setsockopt interface */ if (svc->af == AF_INET) ipvs->num_services++;
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected. No action required from the submitter.
The upstream commit SHA1 provided is correct: cbd070a4ae62f119058973f6d2c984e325bce6e7
WARNING: Author mismatch between patch and upstream commit: Backport author: Cliff Liudonghua.liu@windriver.com Commit author: Chen Hanxiaochenhx.fnst@fujitsu.com
Status in newer kernel trees: 6.13.y | Present (exact SHA1) 6.12.y | Present (exact SHA1) 6.6.y | Present (different SHA1: 3dd428039e06) 6.1.y | Present (different SHA1: b2c664df3bb4)
Note: The patch differs from the upstream commit: --- 1: cbd070a4ae62f ! 1: 520e1a106a9ec ipvs: properly dereference pe in ip_vs_add_service @@ Metadata ## Commit message ## ipvs: properly dereference pe in ip_vs_add_service
+ [ Upstream commit cbd070a4ae62f119058973f6d2c984e325bce6e7 ] + Use pe directly to resolve sparse warning:
net/netfilter/ipvs/ip_vs_ctl.c:1471:27: warning: dereference of noderef expression @@ Commit message Acked-by: Julian Anastasov ja@ssi.bg Acked-by: Simon Horman horms@kernel.org Signed-off-by: Pablo Neira Ayuso pablo@netfilter.org + Signed-off-by: Cliff Liu donghua.liu@windriver.com + Signed-off-by: He Zhe Zhe.He@windriver.com
## net/netfilter/ipvs/ip_vs_ctl.c ## @@ net/netfilter/ipvs/ip_vs_ctl.c: ip_vs_add_service(struct netns_ipvs *ipvs, struct ip_vs_service_user_kern *u, - if (ret < 0) - goto out_err; + sched = NULL; + }
- /* Bind the ct retriever */ - RCU_INIT_POINTER(svc->pe, pe); @@ net/netfilter/ipvs/ip_vs_ctl.c: ip_vs_add_service(struct netns_ipvs *ipvs, struc + if (pe && pe->conn_out) atomic_inc(&ipvs->conn_out_counter);
+ ip_vs_start_estimator(ipvs, &svc->stats); + + /* Bind the ct retriever */ + RCU_INIT_POINTER(svc->pe, pe); + pe = NULL; ---
Results of testing on various branches:
| Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-5.15.y | Success | Success |
linux-stable-mirror@lists.linaro.org