diff --git a/mxm_wifiex/wlan_src/mlinux/moal_cfg80211.c b/mxm_wifiex/wlan_src/mlinux/moal_cfg80211.c index ad65a00..99bb668 100644 --- a/mxm_wifiex/wlan_src/mlinux/moal_cfg80211.c +++ b/mxm_wifiex/wlan_src/mlinux/moal_cfg80211.c @@ -1117,7 +1117,7 @@ int woal_cfg80211_change_virtual_intf(struct wiphy *wiphy, #endif /* WIFI_DIRECT_SUPPORT */ #if defined(STA_SUPPORT) && defined(UAP_SUPPORT) if (priv->bss_type == MLAN_BSS_TYPE_UAP) { - woal_cfg80211_del_beacon(wiphy, dev); + woal_cfg80211_del_beacon(wiphy, dev, 0); bss_role = MLAN_BSS_ROLE_STA; woal_cfg80211_bss_role_cfg(priv, MLAN_ACT_SET, &bss_role); @@ -2084,7 +2084,7 @@ done: * @return 0 -- success, otherwise fail */ int woal_cfg80211_set_bitrate_mask(struct wiphy *wiphy, struct net_device *dev, - const u8 *peer, + unsigned int link_id, const u8 *peer, const struct cfg80211_bitrate_mask *mask) { int ret = 0; @@ -4771,7 +4771,7 @@ void woal_cfg80211_notify_channel(moal_private *priv, #if KERNEL_VERSION(3, 8, 0) <= CFG80211_VERSION_CODE if (MLAN_STATUS_SUCCESS == woal_chandef_create(priv, &chandef, pchan_info)) { - cfg80211_ch_switch_notify(priv->netdev, &chandef); + cfg80211_ch_switch_notify(priv->netdev, &chandef, 0); priv->channel = pchan_info->channel; #ifdef UAP_CFG80211 moal_memcpy_ext(priv->phandle, &priv->chan, &chandef, diff --git a/mxm_wifiex/wlan_src/mlinux/moal_cfg80211.h b/mxm_wifiex/wlan_src/mlinux/moal_cfg80211.h index bfbf867..60591ad 100644 --- a/mxm_wifiex/wlan_src/mlinux/moal_cfg80211.h +++ b/mxm_wifiex/wlan_src/mlinux/moal_cfg80211.h @@ -163,7 +163,7 @@ int woal_cfg80211_flush_pmksa(struct wiphy *wiphy, struct net_device *dev); #endif int woal_cfg80211_set_bitrate_mask(struct wiphy *wiphy, struct net_device *dev, - const u8 *peer, + unsigned int link_id, const u8 *peer, const struct cfg80211_bitrate_mask *mask); #if KERNEL_VERSION(2, 6, 38) <= CFG80211_VERSION_CODE int woal_cfg80211_set_antenna(struct wiphy *wiphy, u32 tx_ant, u32 rx_ant); @@ -429,7 +429,7 @@ int woal_cfg80211_set_beacon(struct wiphy *wiphy, struct net_device *dev, struct beacon_parameters *params); #endif -int woal_cfg80211_del_beacon(struct wiphy *wiphy, struct net_device *dev); +int woal_cfg80211_del_beacon(struct wiphy *wiphy, struct net_device *dev, unsigned int link_id); int woal_cfg80211_del_station(struct wiphy *wiphy, struct net_device *dev, #if KERNEL_VERSION(3, 19, 0) <= CFG80211_VERSION_CODE struct station_del_parameters *param); diff --git a/mxm_wifiex/wlan_src/mlinux/moal_main.c b/mxm_wifiex/wlan_src/mlinux/moal_main.c index afe35ec..b29a8f1 100644 --- a/mxm_wifiex/wlan_src/mlinux/moal_main.c +++ b/mxm_wifiex/wlan_src/mlinux/moal_main.c @@ -965,7 +965,7 @@ static void woal_hang_work_queue(struct work_struct *work) #ifdef STA_CFG80211 #if CFG80211_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) if (IS_STA_CFG80211(cfg80211_wext) && - priv->wdev->current_bss) { + priv->wdev->connected) { #if CFG80211_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) if (priv->host_mlme) woal_host_mlme_disconnect( @@ -5698,7 +5698,7 @@ int woal_close(struct net_device *dev) woal_cancel_scan(priv, MOAL_IOCTL_WAIT); #if CFG80211_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) - if (IS_STA_CFG80211(cfg80211_wext) && priv->wdev->current_bss) { + if (IS_STA_CFG80211(cfg80211_wext) && priv->wdev->connected) { priv->cfg_disconnect = MTRUE; cfg80211_disconnected(priv->netdev, 0, NULL, 0, #if CFG80211_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) @@ -8637,7 +8637,7 @@ t_void woal_send_disconnect_to_system(moal_private *priv, if (IS_STA_CFG80211(cfg80211_wext)) { spin_lock_irqsave(&priv->connect_lock, flags); if (!priv->cfg_disconnect && !priv->cfg_connect && priv->wdev && - priv->wdev->current_bss) { + priv->wdev->connected) { PRINTM(MMSG, "wlan: Disconnected from " MACSTR ": Reason code %d\n", diff --git a/mxm_wifiex/wlan_src/mlinux/moal_shim.c b/mxm_wifiex/wlan_src/mlinux/moal_shim.c index a40bdb0..cce2571 100644 --- a/mxm_wifiex/wlan_src/mlinux/moal_shim.c +++ b/mxm_wifiex/wlan_src/mlinux/moal_shim.c @@ -3308,7 +3308,7 @@ mlan_status moal_recv_event(t_void *pmoal, pmlan_event pmevent) PRINTM(MMSG, "Channel Under Nop: notify cfg80211 new channel=%d\n", priv->channel); - cfg80211_ch_switch_notify(priv->netdev, &priv->chan); + cfg80211_ch_switch_notify(priv->netdev, &priv->chan, 0); priv->chan_under_nop = MFALSE; } #endif @@ -3632,7 +3632,7 @@ mlan_status moal_recv_event(t_void *pmoal, pmlan_event pmevent) PRINTM(MEVENT, "HostMlme %s: Receive deauth/disassociate\n", priv->netdev->name); - if (!priv->wdev->current_bss) { + if (!priv->wdev->connected) { PRINTM(MEVENT, "HostMlme: Drop deauth/disassociate, current_bss = null\n"); break; @@ -4002,7 +4002,7 @@ mlan_status moal_recv_event(t_void *pmoal, pmlan_event pmevent) roam_info = kzalloc(sizeof(struct cfg80211_roam_info), GFP_ATOMIC); if (roam_info) { - roam_info->bssid = priv->cfg_bssid; + roam_info->links[0].bssid = priv->cfg_bssid; roam_info->req_ie = req_ie; roam_info->req_ie_len = ie_len; roam_info->resp_ie = pinfo->rsp_ie; diff --git a/mxm_wifiex/wlan_src/mlinux/moal_sta_cfg80211.c b/mxm_wifiex/wlan_src/mlinux/moal_sta_cfg80211.c index 691e06b..bb3dbb7 100644 --- a/mxm_wifiex/wlan_src/mlinux/moal_sta_cfg80211.c +++ b/mxm_wifiex/wlan_src/mlinux/moal_sta_cfg80211.c @@ -111,6 +111,7 @@ static int woal_cfg80211_dump_survey(struct wiphy *wiphy, #if CFG80211_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) static int woal_cfg80211_get_channel(struct wiphy *wiphy, struct wireless_dev *wdev, + unsigned int link_id, struct cfg80211_chan_def *chandef); #endif static int woal_cfg80211_set_power_mgmt(struct wiphy *wiphy, @@ -5381,7 +5382,7 @@ static int woal_cfg80211_disconnect(struct wiphy *wiphy, struct net_device *dev, if (priv->media_connected == MFALSE) { PRINTM(MMSG, " Already disconnected\n"); #if CFG80211_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) - if (priv->wdev->current_bss && + if (priv->wdev->connected && (priv->wdev->iftype == NL80211_IFTYPE_STATION || priv->wdev->iftype == NL80211_IFTYPE_P2P_CLIENT)) { priv->cfg_disconnect = MTRUE; @@ -5701,6 +5702,7 @@ done: #if CFG80211_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) static int woal_cfg80211_get_channel(struct wiphy *wiphy, struct wireless_dev *wdev, + unsigned int link_id, struct cfg80211_chan_def *chandef) { moal_private *priv = (moal_private *)woal_get_netdev_priv(wdev->netdev); @@ -8574,7 +8576,7 @@ int woal_cfg80211_update_ft_ies(struct wiphy *wiphy, struct net_device *dev, passoc_rsp = (IEEEtypes_AssocRsp_t *) assoc_rsp->assoc_resp_buf; #if CFG80211_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) - roam_info.bssid = priv->cfg_bssid; + roam_info.links[0].bssid = priv->cfg_bssid; roam_info.req_ie = priv->sme_current.ie; roam_info.req_ie_len = priv->sme_current.ie_len; roam_info.resp_ie = passoc_rsp->ie_buffer; @@ -9040,7 +9042,7 @@ void woal_start_roaming(moal_private *priv) } #endif #if CFG80211_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) - roam_info.bssid = priv->cfg_bssid; + roam_info.links[0].bssid = priv->cfg_bssid; roam_info.req_ie = ie; roam_info.req_ie_len = ie_len; roam_info.resp_ie = passoc_rsp->ie_buffer; diff --git a/mxm_wifiex/wlan_src/mlinux/moal_uap_cfg80211.c b/mxm_wifiex/wlan_src/mlinux/moal_uap_cfg80211.c index a028e53..8c89bc7 100644 --- a/mxm_wifiex/wlan_src/mlinux/moal_uap_cfg80211.c +++ b/mxm_wifiex/wlan_src/mlinux/moal_uap_cfg80211.c @@ -2314,15 +2314,15 @@ int woal_cfg80211_del_virtual_intf(struct wiphy *wiphy, } } if (vir_priv && vir_priv->bss_type == MLAN_BSS_TYPE_UAP) { - woal_cfg80211_del_beacon(wiphy, dev); + woal_cfg80211_del_beacon(wiphy, dev, 0); #if CFG80211_VERSION_CODE >= KERNEL_VERSION(3, 0, 0) - vir_priv->wdev->beacon_interval = 0; + vir_priv->wdev->links[0].ap.beacon_interval = 0; #if CFG80211_VERSION_CODE >= KERNEL_VERSION(3, 15, 0) - memset(&vir_priv->wdev->chandef, 0, - sizeof(vir_priv->wdev->chandef)); + memset(&vir_priv->wdev->links[0].ap.chandef, 0, + sizeof(vir_priv->wdev->links[0].ap.chandef)); #endif #endif - vir_priv->wdev->ssid_len = 0; + vir_priv->wdev->u.ap.ssid_len = 0; PRINTM(MMSG, "Skip del UAP virtual interface %s", dev->name); } @@ -2597,7 +2597,7 @@ done: * * @return 0 -- success, otherwise fail */ -int woal_cfg80211_del_beacon(struct wiphy *wiphy, struct net_device *dev) +int woal_cfg80211_del_beacon(struct wiphy *wiphy, struct net_device *dev, unsigned int link_id) { moal_private *priv = (moal_private *)woal_get_netdev_priv(dev); int ret = 0; @@ -3297,7 +3297,7 @@ static void woal_switch_uap_channel(moal_private *priv, t_u8 wait_option) priv->channel = uap_channel.channel; moal_memcpy_ext(priv->phandle, &priv->chan, &priv->csa_chan, sizeof(struct cfg80211_chan_def), sizeof(priv->chan)); - cfg80211_ch_switch_notify(priv->netdev, &priv->chan); + cfg80211_ch_switch_notify(priv->netdev, &priv->chan, 0); if (priv->uap_tx_blocked) { if (!netif_carrier_ok(priv->netdev)) netif_carrier_on(priv->netdev);