--- zzzz-none-000/linux-5.15.111/net/wireless/core.h 2023-05-11 14:00:40.000000000 +0000 +++ puma7-atom-6670-761/linux-5.15.111/net/wireless/core.h 2024-02-07 10:23:31.000000000 +0000 @@ -247,6 +247,7 @@ EVENT_PORT_AUTHORIZED, }; +#ifndef CFG80211_PROP_MULTI_LINK_SUPPORT struct cfg80211_event { struct list_head list; enum cfg80211_event_type type; @@ -269,6 +270,31 @@ } pa; }; }; +#else /* CFG80211_PROP_MULTI_LINK_SUPPORT */ +struct cfg80211_event { + struct list_head list; + enum cfg80211_event_type type; + + union { + struct cfg80211_connect_resp_params cr; + struct cfg80211_roam_info rm; + struct { + const u8 *ie; + size_t ie_len; + u16 reason; + bool locally_generated; + int link_id; + } dc; + struct { + u8 bssid[ETH_ALEN]; + struct ieee80211_channel *channel; + } ij; + struct { + u8 bssid[ETH_ALEN]; + } pa; + }; +}; +#endif /* CFG80211_PROP_MULTI_LINK_SUPPORT */ struct cfg80211_cached_keys { struct key_params params[CFG80211_MAX_WEP_KEYS]; @@ -354,9 +380,11 @@ /* AP */ 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); 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); /* MLME */ int cfg80211_mlme_auth(struct cfg80211_registered_device *rdev, @@ -409,8 +437,14 @@ void __cfg80211_connect_result(struct net_device *dev, struct cfg80211_connect_resp_params *params, bool wextev); +#ifndef CFG80211_PROP_MULTI_LINK_SUPPORT void __cfg80211_disconnected(struct net_device *dev, const u8 *ie, size_t ie_len, u16 reason, bool from_ap); +#else /* CFG80211_PROP_MULTI_LINK_SUPPORT */ +void __cfg80211_disconnected(struct net_device *dev, const u8 *ie, + size_t ie_len, u16 reason, bool from_ap, + int link_id); +#endif /* CFG80211_PROP_MULTI_LINK_SUPPORT */ int cfg80211_disconnect(struct cfg80211_registered_device *rdev, struct net_device *dev, u16 reason, bool wextev);