All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 5.10.y] ipvs: properly dereference pe in ip_vs_add_service
@ 2025-03-25  6:14 Cliff Liu
  2025-03-25 13:02 ` Sasha Levin
  0 siblings, 1 reply; 2+ messages in thread
From: Cliff Liu @ 2025-03-25  6:14 UTC (permalink / raw)
  To: stable
  Cc: wensong, horms, ja, pablo, kadlec, fw, davem, kuba, marcoangaroni,
	netdev, lvs-devel, netfilter-devel, coreteam, linux-kernel,
	chenhx.fnst, Zhe.He, donghua.liu

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++;
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 5.10.y] ipvs: properly dereference pe in ip_vs_add_service
  2025-03-25  6:14 [PATCH 5.10.y] ipvs: properly dereference pe in ip_vs_add_service Cliff Liu
@ 2025-03-25 13:02 ` Sasha Levin
  0 siblings, 0 replies; 2+ messages in thread
From: Sasha Levin @ 2025-03-25 13:02 UTC (permalink / raw)
  To: stable; +Cc: Cliff Liu, Sasha Levin

[ 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 Liu<donghua.liu@windriver.com>
Commit author: Chen Hanxiao<chenhx.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)
5.15.y | Not found

Note: The patch differs from the upstream commit:
---
1:  cbd070a4ae62f ! 1:  11fd9143f92c0 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.10.y       |  Success    |  Success   |

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-03-25 13:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-25  6:14 [PATCH 5.10.y] ipvs: properly dereference pe in ip_vs_add_service Cliff Liu
2025-03-25 13:02 ` Sasha Levin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.