--- a/os_dep/linux/ioctl_cfg80211.c +++ b/os_dep/linux/ioctl_cfg80211.c @@ -460,9 +460,9 @@ u8 rtw_cfg80211_ch_switch_notify(_adapte #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)) if (started) { -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(6, 9, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(6, 9, 0)) && !defined(BUILD_OPENWRT) cfg80211_ch_switch_started_notify(adapter->pnetdev, &chdef, 0, 0, false, 0); -#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) || defined(BUILD_OPENWRT) cfg80211_ch_switch_started_notify(adapter->pnetdev, &chdef, 0, 0, false); #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0)) || (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8,0)) cfg80211_ch_switch_started_notify(adapter->pnetdev, &chdef, 0, false); @@ -476,9 +476,9 @@ u8 rtw_cfg80211_ch_switch_notify(_adapte if (!rtw_cfg80211_allow_ch_switch_notify(adapter)) goto exit; -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(6, 9, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(6, 9, 0)) && !defined(BUILD_OPENWRT) cfg80211_ch_switch_notify(adapter->pnetdev, &chdef, 0, 0); -#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 2)) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 2)) || defined(BUILD_OPENWRT) cfg80211_ch_switch_notify(adapter->pnetdev, &chdef, 0); #else cfg80211_ch_switch_notify(adapter->pnetdev, &chdef); @@ -1155,7 +1155,7 @@ check_bss: #endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) - #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0) + #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0) && !defined(BUILD_OPENWRT) roam_info.channel = notify_channel; roam_info.bssid = cur_network->network.MacAddress; #endif @@ -1738,7 +1738,7 @@ exit: } static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct net_device *ndev -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) || defined(BUILD_OPENWRT) , int link_id #endif , u8 key_index @@ -1885,7 +1885,7 @@ addkey_end: } static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct net_device *ndev -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) || defined(BUILD_OPENWRT) , int link_id #endif , u8 keyid @@ -2053,7 +2053,7 @@ exit: } static int cfg80211_rtw_del_key(struct wiphy *wiphy, struct net_device *ndev, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) || defined(BUILD_OPENWRT) int link_id, #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE) @@ -2077,7 +2077,7 @@ static int cfg80211_rtw_del_key(struct w static int cfg80211_rtw_set_default_key(struct wiphy *wiphy, struct net_device *ndev, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) || defined(BUILD_OPENWRT) int link_id, #endif u8 key_index @@ -2129,7 +2129,7 @@ static int cfg80211_rtw_set_default_key( #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 30)) int cfg80211_rtw_set_default_mgmt_key(struct wiphy *wiphy, struct net_device *ndev, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) || defined(BUILD_OPENWRT) int link_id, #endif u8 key_index) @@ -5283,7 +5283,7 @@ exit: return ret; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 7, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 7, 0)) || defined(BUILD_OPENWRT) static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev, struct cfg80211_ap_update *params) { @@ -5315,7 +5315,7 @@ static int cfg80211_rtw_change_beacon(st return ret; } -#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 19, 2)) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 19, 2)) && !defined(BUILD_OPENWRT) static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev) #else static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev, unsigned int link_id) @@ -6191,7 +6191,7 @@ static int cfg80211_rtw_set_channel(stru return 0; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 2)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 2)) || defined(BUILD_OPENWRT) static int cfg80211_rtw_get_channel(struct wiphy *wiphy, struct wireless_dev *wdev, unsigned int link_id, struct cfg80211_chan_def *chandef){ #else static int cfg80211_rtw_get_channel(struct wiphy *wiphy, struct wireless_dev *wdev, struct cfg80211_chan_def *chandef){ @@ -7862,7 +7862,7 @@ static int cfg80211_rtw_tdls_mgmt(struct #else u8 *peer, #endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0)) || defined(BUILD_OPENWRT) int link_id, #endif u8 action_code, @@ -10484,7 +10484,7 @@ void rtw_wdev_unregister(struct wireless rtw_cfg80211_indicate_scan_done(adapter, _TRUE); #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)) || defined(COMPAT_KERNEL_RELEASE) - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 2)) + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 2)) || defined(BUILD_OPENWRT) if (wdev->links[0].client.current_bss) { #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 2)) if (wdev->connected) { --- a/os_dep/linux/os_intfs.c +++ b/os_dep/linux/os_intfs.c @@ -2798,7 +2798,13 @@ static int netdev_vir_if_close(struct ne #ifdef CONFIG_IOCTL_CFG80211 wdev->iftype = NL80211_IFTYPE_MONITOR; - wdev->current_bss = NULL; + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0) || defined(BUILD_OPENWRT)) + wdev->links[0].client.current_bss = NULL; + #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,19, 2)) + wdev->connected = NULL; + #else + wdev->current_bss = NULL; + #endif rtw_scan_abort(padapter); rtw_cfg80211_wait_scan_req_empty(padapter, 200); adapter_wdev_data(padapter)->bandroid_scan = _FALSE;