wifi: mac80211: don't ask driver about no-op link changes
authorJohannes Berg <johannes.berg@intel.com>
Wed, 20 Mar 2024 07:14:03 +0000 (09:14 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 25 Mar 2024 14:39:28 +0000 (15:39 +0100)
If the links won't actually change, nothing will happen.
This was previously done in the inner function (twice in
some cases), but we shouldn't bother the driver with it.
Clean that up.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240320091155.a8190a312a27.If4e6f5ce8228eda7afac0fc8c17dd731c5da9ed9@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/link.c

index db49bcec5db43760abbcd157932039a197c1d627..43f9672fc7f19cc0c91751ee627312f4a5425a70 100644 (file)
@@ -450,10 +450,13 @@ int ieee80211_set_active_links(struct ieee80211_vif *vif, u16 active_links)
        if (WARN_ON(!active_links))
                return -EINVAL;
 
+       old_active = sdata->vif.active_links;
+       if (old_active == active_links)
+               return 0;
+
        if (!drv_can_activate_links(local, sdata, active_links))
                return -EINVAL;
 
-       old_active = sdata->vif.active_links;
        if (old_active & active_links) {
                /*
                 * if there's at least one link that stays active across