--- a/os_dep/linux/ioctl_cfg80211.c +++ b/os_dep/linux/ioctl_cfg80211.c @@ -460,7 +460,7 @@ 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)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 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)) cfg80211_ch_switch_started_notify(adapter->pnetdev, &chdef, 0, 0, false); @@ -476,7 +476,7 @@ 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)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0) || defined(BUILD_OPENWRT)) cfg80211_ch_switch_notify(adapter->pnetdev, &chdef, 0, 0); #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,19, 2)) cfg80211_ch_switch_notify(adapter->pnetdev, &chdef, 0); @@ -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) @@ -5267,7 +5267,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, unsigned int link_id) #else static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev) @@ -6143,7 +6143,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){ @@ -10432,9 +10432,9 @@ 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(6, 0, 0)) + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0) || defined(BUILD_OPENWRT)) if (wdev->links[0].client.current_bss) { - #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 2)) + #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 2) || defined(BUILD_OPENWRT)) if (wdev->connected) { #else if (wdev->current_bss) { --- a/os_dep/linux/os_intfs.c +++ b/os_dep/linux/os_intfs.c @@ -1737,7 +1737,11 @@ int rtw_os_ndev_register(_adapter *adapt #if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) netif_napi_add_weight(ndev, &adapter->napi, rtw_recv_napi_poll, RTL_NAPI_WEIGHT); #else - netif_napi_add(ndev, &adapter->napi, rtw_recv_napi_poll, RTL_NAPI_WEIGHT); + netif_napi_add(ndev, &adapter->napi, rtw_recv_napi_poll +#ifndef BUILD_OPENWRT + , RTL_NAPI_WEIGHT +#endif + ); #endif #endif /* CONFIG_RTW_NAPI */ @@ -2794,7 +2798,13 @@ static int netdev_vir_if_close(struct ne #ifdef CONFIG_IOCTL_CFG80211 wdev->iftype = NL80211_IFTYPE_MONITOR; + #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;