From: Sven Eckelmann Date: Tue, 12 May 2026 20:03:53 +0000 (+0200) Subject: batman-adv: use atomic_xchg() for gw.reselect check X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9550dd11e360ec0c460b13096ceda283601fa5cb;p=thirdparty%2Flinux.git batman-adv: use atomic_xchg() for gw.reselect check batadv_gw_election() only needs to test whether gw.reselect was set and clear it afterwards. Replace the batadv_atomic_dec_not_zero() [atomic_add_unless(..., -1, 0)] call with atomic_xchg(..., 0) to simplify the logic and make the intent more explicit. Signed-off-by: Sven Eckelmann --- diff --git a/net/batman-adv/gateway_client.c b/net/batman-adv/gateway_client.c index ec743ce39be47..026627c8ba45b 100644 --- a/net/batman-adv/gateway_client.c +++ b/net/batman-adv/gateway_client.c @@ -211,7 +211,7 @@ void batadv_gw_election(struct batadv_priv *bat_priv) curr_gw = batadv_gw_get_selected_gw_node(bat_priv); - if (!batadv_atomic_dec_not_zero(&bat_priv->gw.reselect) && curr_gw) + if (atomic_xchg(&bat_priv->gw.reselect, 0) == 0 && curr_gw) goto out; /* if gw.reselect is set to 1 it means that a previous call to