--- /dev/null
+--- a/os_dep/linux/ioctl_cfg80211.c
++++ b/os_dep/linux/ioctl_cfg80211.c
+@@ -798,8 +798,8 @@ check_bss:
+
+ DBG_871X(FUNC_ADPT_FMT" call cfg80211_roamed\n", FUNC_ADPT_ARG(padapter));
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
+- roam_info.channel = notify_channel;
+- roam_info.bssid = cur_network->network.MacAddress;
++ roam_info.links[0].channel = notify_channel;
++ roam_info.links[0].bssid = cur_network->network.MacAddress;
+ roam_info.req_ie = pmlmepriv->assoc_req + sizeof(struct rtw_ieee80211_hdr_3addr) + 2;
+ roam_info.req_ie_len = pmlmepriv->assoc_req_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 2;
+ roam_info.resp_ie = pmlmepriv->assoc_rsp + sizeof(struct rtw_ieee80211_hdr_3addr) + 6;
+@@ -1389,6 +1389,7 @@ exit:
+
+ static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct net_device *ndev,
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE)
++ int link_id,
+ u8 key_index, bool pairwise, const u8 *mac_addr,
+ #else // (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
+ u8 key_index, const u8 *mac_addr,
+@@ -1529,6 +1530,7 @@ addkey_end:
+
+ static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct net_device *ndev,
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE)
++ int link_id,
+ u8 key_index, bool pairwise, const u8 *mac_addr,
+ #else // (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
+ u8 key_index, const u8 *mac_addr,
+@@ -1562,6 +1564,7 @@ static int cfg80211_rtw_get_key(struct w
+
+ static int cfg80211_rtw_del_key(struct wiphy *wiphy, struct net_device *ndev,
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE)
++ int link_id,
+ u8 key_index, bool pairwise, const u8 *mac_addr)
+ #else // (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
+ u8 key_index, const u8 *mac_addr)
+@@ -1581,7 +1584,7 @@ static int cfg80211_rtw_del_key(struct w
+ }
+
+ static int cfg80211_rtw_set_default_key(struct wiphy *wiphy,
+- struct net_device *ndev, u8 key_index
++ struct net_device *ndev, int link_id, u8 key_index
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) || defined(COMPAT_KERNEL_RELEASE)
+ , bool unicast, bool multicast
+ #endif
+@@ -4019,7 +4022,8 @@ static int cfg80211_rtw_change_beacon(st
+ return ret;
+ }
+
+-static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev)
++static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev,
++ unsigned int link_id)
+ {
+ DBG_871X(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
+ return 0;