Thread (10 messages) 10 messages, 6 authors, 55m ago

Re: [PATCH net] ipv6: bound temporary address regeneration advance

flat view

From: Paolo Abeni <pabeni@redhat.com>
Date: 2026-10-29 12:09:38
Also in: linux-doc

On 10/26/26 09:22, Yingjie Wang wrote:
quoted hunk ↗ jump to hunk
@@ -1394,6 +1405,7 @@ static int ipv6_create_tempaddr(struct inet6_ifaddr *ifp, bool block)
  	struct ifa6_config cfg;
  	long max_desync_factor;
  	struct in6_addr addr;
+	u64 min_preferred_lft;
Minor nit: please fix the variable declaration order above.
quoted hunk ↗ jump to hunk
  	int ret = 0;
  
  	write_lock_bh(&idev->lock);
@@ -1430,9 +1442,13 @@ static int ipv6_create_tempaddr(struct inet6_ifaddr *ifp, bool block)
  	 * idev->desync_factor if it's larger
  	 */
  	cnf_temp_preferred_lft = READ_ONCE(idev->cnf.temp_prefered_lft);
-	max_desync_factor = min_t(long,
-				  READ_ONCE(idev->cnf.max_desync_factor),
-				  cnf_temp_preferred_lft - regen_advance);
+	max_desync_factor = 0;
+	if (cnf_temp_preferred_lft > 0 &&
+	    regen_advance < cnf_temp_preferred_lft)
+		max_desync_factor =
+			min_t(long,
+			      READ_ONCE(idev->cnf.max_desync_factor),
+			      cnf_temp_preferred_lft - regen_advance);
The above is quite ugly, you can probably make the statement more
palatable using some additional variable to store the intermediate
values.

/P
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help