--- zzzz-none-000/linux-5.15.111/net/wireless/ap.c 2023-05-11 14:00:40.000000000 +0000 +++ puma7-atom-6670-761/linux-5.15.111/net/wireless/ap.c 2024-02-07 10:23:31.000000000 +0000 @@ -8,10 +8,14 @@ int __cfg80211_stop_ap(struct cfg80211_registered_device *rdev, - struct net_device *dev, bool notify) + struct net_device *dev, bool notify, + struct genl_info *info) { struct wireless_dev *wdev = dev->ieee80211_ptr; int err; +#ifdef CFG80211_PROP_MULTI_LINK_SUPPORT + struct cfg80211_ap_settings params = {0}; +#endif /* CFG80211_PROP_MULTI_LINK_SUPPORT */ ASSERT_WDEV_LOCK(wdev); @@ -25,7 +29,15 @@ if (!wdev->beacon_interval) return -ENOENT; +#ifndef CFG80211_PROP_MULTI_LINK_SUPPORT err = rdev_stop_ap(rdev, dev); +#else /* CFG80211_PROP_MULTI_LINK_SUPPORT */ + if (info) + params.mlo_info.reconfig = + nla_get_flag(info->attrs[NL80211_ATTR_RECONFIG]); + + err = rdev_stop_ap(rdev, dev, ¶ms); +#endif /* CFG80211_PROP_MULTI_LINK_SUPPORT */ if (!err) { wdev->conn_owner_nlportid = 0; wdev->beacon_interval = 0; @@ -47,13 +59,14 @@ } int cfg80211_stop_ap(struct cfg80211_registered_device *rdev, - struct net_device *dev, bool notify) + struct net_device *dev, bool notify, + struct genl_info *info) { struct wireless_dev *wdev = dev->ieee80211_ptr; int err; wdev_lock(wdev); - err = __cfg80211_stop_ap(rdev, dev, notify); + err = __cfg80211_stop_ap(rdev, dev, notify, info); wdev_unlock(wdev); return err;