From 3e20e8864de8a7b9ebb65eccd841b60757e5628d Mon Sep 17 00:00:00 2001 From: Rin Cat Date: Fri, 24 Jan 2020 11:57:56 -0500 Subject: [PATCH] Update to 5.6.1.6 --- README.md | 2 +- ReleaseNotes.pdf | Bin 100584 -> 101957 bytes core/mesh/rtw_mesh.o | Bin 944 -> 0 bytes core/mesh/rtw_mesh_hwmp.o | Bin 944 -> 0 bytes core/mesh/rtw_mesh_pathtbl.o | Bin 952 -> 0 bytes core/rtw_ap.c | 2 +- core/rtw_ieee80211.c | 56 +++++++++++++ core/rtw_mlme_ext.c | 43 +++++++++- core/rtw_p2p.c | 9 +- hal/phydm/halrf/rtl8822b/halrf_iqk_8822b.c | 14 ++-- include/ieee80211.h | 5 ++ include/rtl8822b_hal.h | 4 + include/rtw_security.h | 2 + include/rtw_version.h | 2 +- include/wifi.h | 4 +- os_dep/linux/ioctl_cfg80211.c | 40 +++++++-- os_dep/linux/ioctl_cfg80211.h | 2 +- os_dep/linux/os_intfs.c | 14 ++-- os_dep/linux/rtw_android.c | 9 +- os_dep/linux/rtw_cfgvendor.c | 93 --------------------- os_dep/linux/usb_intf.c | 8 -- os_dep/osdep_service.c | 12 +-- 22 files changed, 171 insertions(+), 150 deletions(-) delete mode 100644 core/mesh/rtw_mesh.o delete mode 100644 core/mesh/rtw_mesh_hwmp.o delete mode 100644 core/mesh/rtw_mesh_pathtbl.o mode change 100644 => 100755 os_dep/linux/ioctl_cfg80211.c diff --git a/README.md b/README.md index fcd7505..0444b73 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # REALTEK RTL88x2B USB Linux Driver -**Current Driver Version**: 5.6.1.5 +**Current Driver Version**: 5.6.1.6 **Support Kernel**: 2.6.24 ~ 5.4 (with unofficial patches) Official release note please check ReleaseNotes.pdf diff --git a/ReleaseNotes.pdf b/ReleaseNotes.pdf index a3b3762f0d8840355a1bf44eb9c07f49281f137f..18109211884c7957bbe799d7af5c632f70636727 100644 GIT binary patch delta 57778 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 z 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 ivuf@J_qd>1lF zQRTYU1w}IdlEB^)nE*?L0G2I_A}^7ZOPRCT%X}zgl6^Ec*pHl}P5rAw$IhLcQtR3@ zy1-E}_YZMB+ZT%r1Sm6DuYkA(i`H&B_#P mjUJ(@uFk63SuObHn`hVaW}_2RN8;{(+Ty=7g;O#bb^ZUy8ZN{D diff --git a/core/mesh/rtw_mesh_hwmp.o b/core/mesh/rtw_mesh_hwmp.o deleted file mode 100644 index 4edb55cc8b13c86dfe846085978252f10c361999..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 944 zcmbVKu};G<5WO^o!pMfiQYI*(Rw5OF7?7o^bg9@nS4oHzft*H-qrw8e!|(A0aCUsE z<+uY_vftgi_k4-%&)MR!7X&~ffCt!R!~#?n$u-U47>)qu)9L;2a+x-zY=*aN!lH59 z=q&z-?^rY$wd`&yZ=|;G!}pJ`7<#`5AcUSzj(oU>KiI?fyZlCOS0b;ARk0Nn%K%vY zE@YA-%1w&}MKXVrz@8JC088r{Shf}-FOe(PGH3Ir<+zqf_S)_8XXXqY>Z}eOCwFp6 zt!vZNIj)LxPl)SkcX9m}D8XC*xBnWwYR?F#J-A7(Y!YMYPk3W-w)DkLteAX6soeK! rDkJzZI6zcW{i_U!X5( z!a|x}7D&GDee%9Z)8u>l^wJsb0EgQ3F z6xS+?zv4Rqc`EVYWeFF9HRyq^f|W%c96iV&xJuHhZ3rDirBkd!yaR8QJ7N+js2T z$xUiqpF-y}O6LA4u4dbV>%X89y8WH~L-NWsBkFeJI=QwX#b$q_Hx{!?U+u(-jn5#N t`(DpV7yM{FAeCL7RkqVc=>Af2a$m#;Dcx{{sXlGAaN7 diff --git a/core/rtw_ap.c b/core/rtw_ap.c index a03a71a..1f8081c 100644 --- a/core/rtw_ap.c +++ b/core/rtw_ap.c @@ -1787,7 +1787,7 @@ chbw_decision: , pdvobj->padapters[i]->mlmeextpriv.cur_channel , pdvobj->padapters[i]->mlmeextpriv.cur_bwmode , pdvobj->padapters[i]->mlmeextpriv.cur_ch_offset - , ht_option); + , ht_option, 0); } } #endif /* defined(CONFIG_IOCTL_CFG80211) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)) */ diff --git a/core/rtw_ieee80211.c b/core/rtw_ieee80211.c index 33b05c4..93169ff 100644 --- a/core/rtw_ieee80211.c +++ b/core/rtw_ieee80211.c @@ -1191,6 +1191,62 @@ u8 *rtw_get_wps_attr_content(u8 *wps_ie, uint wps_ielen, u16 target_attr_id , u8 return NULL; } +/* OWE */ + +/** + * rtw_get_OWE_ie - Search OWE IE from a series of IEs + * @in_ie: Address of IEs to search + * @in_len: Length limit from in_ie + * @wps_ie: If not NULL and OWE IE is found, OWE IE will be copied to the buf starting from owe_ie + * @wps_ielen: If not NULL and OWE IE is found, will set to the length of the entire OWE IE + * + * Returns: The address of the OWE IE found, or NULL + */ +u8 *rtw_get_owe_ie(const u8 *in_ie, uint in_len, u8 *owe_ie, uint *owe_ielen) +{ + uint cnt; + const u8 *oweie_ptr = NULL; + u8 eid; + + if (owe_ielen) + *owe_ielen = 0; + + if (!in_ie) { + rtw_warn_on(1); + return (u8 *)oweie_ptr; + } + + if (in_len <= 0) + return (u8 *)oweie_ptr; + + cnt = 0; + + while (cnt + 1 + 4 < in_len) { + eid = in_ie[cnt]; + + if (cnt + 1 + 4 >= MAX_IE_SZ) { + rtw_warn_on(1); + return NULL; + } + + if ((eid == WLAN_EID_EXTENSION) && (in_ie[cnt + 2] == WLAN_EID_EXT_OWE_DH_PARAM)) { + oweie_ptr = in_ie + cnt; + + if (owe_ie) + _rtw_memcpy(owe_ie, &in_ie[cnt], in_ie[cnt + 1] + 2); + + if (owe_ielen) + *owe_ielen = in_ie[cnt + 1] + 2; + + break; + } else + cnt += in_ie[cnt + 1] + 2; + + } + + return (u8 *)oweie_ptr; +} + static int rtw_ieee802_11_parse_vendor_specific(u8 *pos, uint elen, struct rtw_ieee802_11_elems *elems, int show_errors) diff --git a/core/rtw_mlme_ext.c b/core/rtw_mlme_ext.c index 4cb7b9e..ac83578 100755 --- a/core/rtw_mlme_ext.c +++ b/core/rtw_mlme_ext.c @@ -105,6 +105,7 @@ unsigned char WMM_OUI[] = {0x00, 0x50, 0xf2, 0x02}; unsigned char WPS_OUI[] = {0x00, 0x50, 0xf2, 0x04}; unsigned char P2P_OUI[] = {0x50, 0x6F, 0x9A, 0x09}; unsigned char WFD_OUI[] = {0x50, 0x6F, 0x9A, 0x0A}; +unsigned char DPP_OUI[] = {0x50, 0x6F, 0x9A, 0x1A}; unsigned char WMM_INFO_OUI[] = {0x00, 0x50, 0xf2, 0x02, 0x00, 0x01}; unsigned char WMM_PARA_OUI[] = {0x00, 0x50, 0xf2, 0x02, 0x01, 0x01}; @@ -6543,6 +6544,9 @@ unsigned int on_action_public_vendor(union recv_frame *precv_frame) unsigned int ret = _FAIL; u8 *pframe = precv_frame->u.hdr.rx_data; u8 *frame_body = pframe + sizeof(struct rtw_ieee80211_hdr_3addr); + _adapter *adapter = precv_frame->u.hdr.adapter; + int cnt = 0; + char msg[64]; if (_rtw_memcmp(frame_body + 2, P2P_OUI, 4) == _TRUE) { if (rtw_action_public_decache(precv_frame, 7) == _FAIL) @@ -6552,6 +6556,13 @@ unsigned int on_action_public_vendor(union recv_frame *precv_frame) rtw_rframe_del_wfd_ie(precv_frame, 8); ret = on_action_public_p2p(precv_frame); + } else if (_rtw_memcmp(frame_body + 2, DPP_OUI, 4) == _TRUE) { + u8 dpp_type = frame_body[7]; + +#ifdef CONFIG_IOCTL_CFG80211 + cnt += sprintf((msg + cnt), "DPP(type:%u)", dpp_type); + rtw_cfg80211_rx_action(adapter, precv_frame, msg); +#endif } exit: @@ -8937,6 +8948,23 @@ void issue_asocrsp(_adapter *padapter, unsigned short status, struct sta_info *p #endif } +static u32 rtw_append_assoc_req_owe_ie(_adapter *adapter, u8 *pbuf) +{ + struct security_priv *sec = &adapter->securitypriv; + u32 len = 0; + + if (sec == NULL) + goto exit; + + if (sec->owe_ie && sec->owe_ie_len > 0) { + len = sec->owe_ie_len; + _rtw_memcpy(pbuf, sec->owe_ie, len); + } + +exit: + return len; +} + void _issue_assocreq(_adapter *padapter, u8 is_reassoc) { int ret = _FAIL; @@ -9383,6 +9411,15 @@ void _issue_assocreq(_adapter *padapter, u8 is_reassoc) #endif #endif /* CONFIG_P2P */ + /* OWE */ + { + u32 owe_ie_len; + + owe_ie_len = rtw_append_assoc_req_owe_ie(padapter, pframe); + pframe += owe_ie_len; + pattrib->pktlen += owe_ie_len; + } + #ifdef CONFIG_RTW_REPEATER_SON rtw_rson_append_ie(padapter, pframe, &pattrib->pktlen); #endif @@ -16066,7 +16103,7 @@ void rtw_join_done_chk_ch(_adapter *adapter, int join_res) rtw_cfg80211_ch_switch_notify(iface , mlmeext->cur_channel, mlmeext->cur_bwmode, mlmeext->cur_ch_offset - , ht_option); + , ht_option, 0); #endif } } @@ -16279,12 +16316,12 @@ exit: ht_option = adapter->mlmepriv.htpriv.ht_option; #endif /* CONFIG_80211N_HT */ - /* + /* when supplicant send the mlme frame, the bss freq is updated by channel switch event. */ rtw_cfg80211_ch_switch_notify(adapter, - cur_ch, cur_bw, cur_ch_offset, ht_option); + cur_ch, cur_bw, cur_ch_offset, ht_option, 1); } #endif } diff --git a/core/rtw_p2p.c b/core/rtw_p2p.c index b0bd8e7..f66fa71 100644 --- a/core/rtw_p2p.c +++ b/core/rtw_p2p.c @@ -4459,7 +4459,7 @@ void process_p2p_ps_ie(PADAPTER padapter, u8 *IEs, u32 IELength) u32 ies_len; u8 *p2p_ie; u32 p2p_ielen = 0; - u8 noa_attr[MAX_P2P_IE_LEN] = { 0x00 };/* NoA length should be n*(13) + 2 */ + u8 *noa_attr; /* NoA length should be n*(13) + 2 */ u32 attr_contentlen = 0; struct wifidirect_info *pwdinfo = &(padapter->wdinfo); @@ -4486,7 +4486,8 @@ void process_p2p_ps_ie(PADAPTER padapter, u8 *IEs, u32 IELength) while (p2p_ie) { find_p2p = _TRUE; /* Get Notice of Absence IE. */ - if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_NOA, noa_attr, &attr_contentlen)) { + noa_attr = rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_NOA, NULL, &attr_contentlen); + if (noa_attr) { find_p2p_ps = _TRUE; noa_index = noa_attr[0]; @@ -4499,8 +4500,8 @@ void process_p2p_ps_ie(PADAPTER padapter, u8 *IEs, u32 IELength) noa_offset = 2; noa_num = 0; /* NoA length should be n*(13) + 2 */ - if (attr_contentlen > 2) { - while (noa_offset < attr_contentlen) { + if (attr_contentlen > 2 && (attr_contentlen - 2) % 13 == 0) { + while (noa_offset < attr_contentlen && noa_num < P2P_MAX_NOA_NUM) { /* _rtw_memcpy(&wifidirect_info->noa_count[noa_num], &noa_attr[noa_offset], 1); */ pwdinfo->noa_count[noa_num] = noa_attr[noa_offset]; noa_offset += 1; diff --git a/hal/phydm/halrf/rtl8822b/halrf_iqk_8822b.c b/hal/phydm/halrf/rtl8822b/halrf_iqk_8822b.c index fcd710f..70e8278 100644 --- a/hal/phydm/halrf/rtl8822b/halrf_iqk_8822b.c +++ b/hal/phydm/halrf/rtl8822b/halrf_iqk_8822b.c @@ -318,13 +318,13 @@ void _iqk_restore_rf_8822b(struct dm_struct *dm, u32 *backup_rf_reg, odm_set_rf_reg(dm, RF_PATH_B, RF_0xef, MASK20BITS, 0x0); /*0xdf[4]=0*/ _iqk_rf_set_check_8822b(dm, RF_PATH_A, 0xdf, - RF_backup[0][RF_PATH_A] & (!BIT(4))); + RF_backup[0][RF_PATH_A] & (~BIT(4))); _iqk_rf_set_check_8822b(dm, RF_PATH_B, 0xdf, - RF_backup[0][RF_PATH_B] & (!BIT(4))); + RF_backup[0][RF_PATH_B] & (~BIT(4))); #if 0 - /*odm_set_rf_reg(dm, RF_PATH_A, RF_0xdf, MASK20BITS, RF_backup[0][RF_PATH_A] & (!BIT(4)));*/ - /*odm_set_rf_reg(dm, RF_PATH_B, RF_0xdf, MASK20BITS, RF_backup[0][RF_PATH_B] & (!BIT(4)));*/ + /*odm_set_rf_reg(dm, RF_PATH_A, RF_0xdf, MASK20BITS, RF_backup[0][RF_PATH_A] & (~BIT(4)));*/ + /*odm_set_rf_reg(dm, RF_PATH_B, RF_0xdf, MASK20BITS, RF_backup[0][RF_PATH_B] & (~BIT(4)));*/ #endif for (i = 1; i < RF_REG_NUM_8822B; i++) { @@ -443,11 +443,11 @@ void _iqk_reload_iqk_setting_8822b(struct dm_struct *dm, u8 ch, odm_write_4byte(dm, 0x1bd8, data); } if (idx == 0) { - report = !(iqk->iqk_fail_report[ch][path][idx]); + report = ~(iqk->iqk_fail_report[ch][path][idx]); odm_set_bb_reg(dm, iqk_apply[path], BIT(0), report); } else { - report = !(iqk->iqk_fail_report[ch][path][idx]); + report = ~(iqk->iqk_fail_report[ch][path][idx]); odm_set_bb_reg(dm, iqk_apply[path], BIT(10), report); } @@ -528,7 +528,7 @@ void _iqk_rf_setting_8822b(struct dm_struct *dm) /*0xdf:B11 = 1,B4 = 0, B1 = 1*/ tmp = odm_get_rf_reg(dm, (enum rf_path)path, RF_0xdf, MASK20BITS); - tmp = (tmp & (!BIT(4))) | BIT(1) | BIT(11); + tmp = (tmp & (~BIT(4))) | BIT(1) | BIT(11); _iqk_rf_set_check_8822b(dm, (enum rf_path)path, 0xdf, tmp); #if 0 /*odm_set_rf_reg(dm, (enum rf_path)path, RF_0xdf, MASK20BITS, tmp);*/ diff --git a/include/ieee80211.h b/include/ieee80211.h index 6fac3d2..92dd317 100644 --- a/include/ieee80211.h +++ b/include/ieee80211.h @@ -813,6 +813,8 @@ struct ieee80211_snap_hdr { #define WLAN_EID_VHT_CAPABILITY 191 #define WLAN_EID_VHT_OPERATION 192 #define WLAN_EID_VHT_OP_MODE_NOTIFY 199 +#define WLAN_EID_EXTENSION 255 +#define WLAN_EID_EXT_OWE_DH_PARAM 32 #define IEEE80211_MGMT_HDR_LEN 24 #define IEEE80211_DATA_HDR3_LEN 24 @@ -1488,6 +1490,7 @@ struct ieee80211_txb { #define MAX_WPA_IE_LEN (256) #define MAX_WPS_IE_LEN (512) +#define MAX_OWE_IE_LEN (128) #define MAX_P2P_IE_LEN (256) #define MAX_WFD_IE_LEN (128) @@ -2113,6 +2116,8 @@ u8 *rtw_get_wps_ie(const u8 *in_ie, uint in_len, u8 *wps_ie, uint *wps_ielen); u8 *rtw_get_wps_attr(u8 *wps_ie, uint wps_ielen, u16 target_attr_id , u8 *buf_attr, u32 *len_attr); u8 *rtw_get_wps_attr_content(u8 *wps_ie, uint wps_ielen, u16 target_attr_id , u8 *buf_content, uint *len_content); +u8 *rtw_get_owe_ie(const u8 *in_ie, uint in_len, u8 *owe_ie, uint *owe_ielen); + /** * for_each_ie - iterate over continuous IEs * @ie: diff --git a/include/rtl8822b_hal.h b/include/rtl8822b_hal.h index 076f824..68ad970 100644 --- a/include/rtl8822b_hal.h +++ b/include/rtl8822b_hal.h @@ -23,7 +23,11 @@ #ifdef CONFIG_SUPPORT_TRX_SHARED #define MAX_RECVBUF_SZ 46080 /* 45KB, TX: (256-64)KB */ #else /* !CONFIG_SUPPORT_TRX_SHARED */ +#ifdef CONFIG_PCI_HCI +#define MAX_RECVBUF_SZ 12288 /* 12KB */ +#else #define MAX_RECVBUF_SZ 24576 /* 24KB, TX: 256KB */ +#endif /* !CONFIG_PCI_HCI */ #endif /* !CONFIG_SUPPORT_TRX_SHARED */ /* diff --git a/include/rtw_security.h b/include/rtw_security.h index 36756e1..58362eb 100644 --- a/include/rtw_security.h +++ b/include/rtw_security.h @@ -164,6 +164,8 @@ struct security_priv { u8 wps_ie[MAX_WPS_IE_LEN];/* added in assoc req */ int wps_ie_len; + u8 owe_ie[MAX_OWE_IE_LEN];/* added in assoc req */ + int owe_ie_len; u8 binstallGrpkey; #ifdef CONFIG_GTK_OL diff --git a/include/rtw_version.h b/include/rtw_version.h index 0d42bdd..ce229e4 100644 --- a/include/rtw_version.h +++ b/include/rtw_version.h @@ -1,2 +1,2 @@ -#define DRIVERVERSION "v5.6.1.5_33902.20190604_COEX20180928-6a6a" +#define DRIVERVERSION "v5.6.1.6_35492.20191025_COEX20180928-6a6a" #define BTCOEXVERSION "COEX20180928-6a6a" diff --git a/include/wifi.h b/include/wifi.h index d4fc508..9d9c0d7 100644 --- a/include/wifi.h +++ b/include/wifi.h @@ -1034,9 +1034,7 @@ typedef enum _HT_CAP_AMPDU_DENSITY { * According to IEEE802.11n spec size varies from 8K to 64K (in powers of 2) */ #define IEEE80211_MIN_AMPDU_BUF 0x8 -#ifndef IEEE80211_MAX_AMPDU_BUF - #define IEEE80211_MAX_AMPDU_BUF 0x40 -#endif +#define IEEE80211_MAX_AMPDU_BUF_HT 0x40 /* Spatial Multiplexing Power Save Modes */ diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c old mode 100644 new mode 100755 index 4967375..b083c52 --- a/os_dep/linux/ioctl_cfg80211.c +++ b/os_dep/linux/ioctl_cfg80211.c @@ -424,7 +424,8 @@ bool rtw_cfg80211_allow_ch_switch_notify(_adapter *adapter) return 1; } -u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, u8 ht) +u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, + u8 ht, bool started) { struct wiphy *wiphy = adapter_to_wiphy(adapter); u8 ret = _SUCCESS; @@ -432,13 +433,20 @@ u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, u8 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) struct cfg80211_chan_def chdef; - if (!rtw_cfg80211_allow_ch_switch_notify(adapter)) - goto exit; - ret = rtw_chbw_to_cfg80211_chan_def(wiphy, &chdef, ch, bw, offset, ht); if (ret != _SUCCESS) goto exit; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)) + if (started) { + cfg80211_ch_switch_started_notify(adapter->pnetdev, &chdef, 0); + goto exit; + } +#endif + + if (!rtw_cfg80211_allow_ch_switch_notify(adapter)) + goto exit; + cfg80211_ch_switch_notify(adapter->pnetdev, &chdef); #else @@ -713,9 +721,7 @@ static int rtw_cfg80211_sync_iftype(_adapter *adapter) static u64 rtw_get_systime_us(void) { #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)) - struct timespec ts; - getboottime(&ts); - return ((u64)ts.tv_sec * 1000000) + ts.tv_nsec / 1000; + return ktime_to_us(ktime_get_boottime()); #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39)) struct timespec ts; get_monotonic_boottime(&ts); @@ -3560,6 +3566,18 @@ static int rtw_cfg80211_set_wpa_ie(_adapter *padapter, u8 *pie, size_t ielen) _clr_fwstate_(&padapter->mlmepriv, WIFI_UNDER_WPS); } + {/* handle owe_ie */ + uint owe_ielen; + u8 *owe_ie; + + owe_ie = rtw_get_owe_ie(buf, ielen, NULL, &owe_ielen); + if (owe_ie && owe_ielen > 0) { + RTW_INFO("got owe_ie, owe_ielen:%u\n", owe_ielen); + padapter->securitypriv.owe_ie_len = owe_ielen < MAX_OWE_IE_LEN ? owe_ielen : MAX_OWE_IE_LEN; + _rtw_memcpy(padapter->securitypriv.owe_ie, owe_ie, padapter->securitypriv.owe_ie_len); + } + } + #ifdef CONFIG_P2P {/* check p2p_ie for assoc req; */ uint p2p_ielen = 0; @@ -9976,7 +9994,9 @@ int rtw_wiphy_register(struct wiphy *wiphy) { RTW_INFO(FUNC_WIPHY_FMT"\n", FUNC_WIPHY_ARG(wiphy)); -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0)) || defined(RTW_VENDOR_EXT_SUPPORT) +#if ( ((LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0)) && \ + LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0)) \ + || defined(RTW_VENDOR_EXT_SUPPORT) ) rtw_cfgvendor_attach(wiphy); #endif @@ -9989,7 +10009,9 @@ void rtw_wiphy_unregister(struct wiphy *wiphy) { RTW_INFO(FUNC_WIPHY_FMT"\n", FUNC_WIPHY_ARG(wiphy)); -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0)) || defined(RTW_VENDOR_EXT_SUPPORT) +#if ( ((LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0)) && \ + LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0)) \ + || defined(RTW_VENDOR_EXT_SUPPORT) ) rtw_cfgvendor_detach(wiphy); #endif diff --git a/os_dep/linux/ioctl_cfg80211.h b/os_dep/linux/ioctl_cfg80211.h index b12ce56..6775480 100644 --- a/os_dep/linux/ioctl_cfg80211.h +++ b/os_dep/linux/ioctl_cfg80211.h @@ -407,7 +407,7 @@ void rtw_cfg80211_deinit_rfkill(struct wiphy *wiphy); #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)) -u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, u8 ht); +u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, u8 ht, bool started); #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)) && (LINUX_VERSION_CODE < KERNEL_VERSION(4, 7, 0)) diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c index 73c4d77..af89009 100644 --- a/os_dep/linux/os_intfs.c +++ b/os_dep/linux/os_intfs.c @@ -1338,15 +1338,13 @@ unsigned int rtw_classify8021d(struct sk_buff *skb) static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0) - #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0) - , struct net_device *sb_dev - #else + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0) + , struct net_device *sb_dev + #else , void *accel_priv - #endif - #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0) - #if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0) - , select_queue_fallback_t fallback - #endif + #endif + #if ((LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0))) + , select_queue_fallback_t fallback #endif #endif ) diff --git a/os_dep/linux/rtw_android.c b/os_dep/linux/rtw_android.c index 212c039..e468574 100644 --- a/os_dep/linux/rtw_android.c +++ b/os_dep/linux/rtw_android.c @@ -663,12 +663,11 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd) ret = -ENOMEM; goto exit; } - -#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0)) - if (!access_ok(VERIFY_READ, priv_cmd.buf, priv_cmd.total_len)) { -#else + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)) if (!access_ok(priv_cmd.buf, priv_cmd.total_len)) { -#endif + #else + if (!access_ok(VERIFY_READ, priv_cmd.buf, priv_cmd.total_len)) { + #endif RTW_INFO("%s: failed to access memory\n", __FUNCTION__); ret = -EFAULT; goto exit; diff --git a/os_dep/linux/rtw_cfgvendor.c b/os_dep/linux/rtw_cfgvendor.c index 57fc1a8..d906163 100644 --- a/os_dep/linux/rtw_cfgvendor.c +++ b/os_dep/linux/rtw_cfgvendor.c @@ -1748,9 +1748,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = GSCAN_SUBCMD_GET_CAPABILITIES }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_gscan_get_capabilities }, { @@ -1759,9 +1756,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = GSCAN_SUBCMD_SET_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_set_scan_cfg }, { @@ -1770,9 +1764,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = GSCAN_SUBCMD_SET_SCAN_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_set_batch_scan_cfg }, { @@ -1781,9 +1772,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = GSCAN_SUBCMD_ENABLE_GSCAN }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_initiate_gscan }, { @@ -1792,9 +1780,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = GSCAN_SUBCMD_ENABLE_FULL_SCAN_RESULTS }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_enable_full_scan_result }, { @@ -1803,9 +1788,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = GSCAN_SUBCMD_SET_HOTLIST }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_hotlist_cfg }, { @@ -1814,9 +1796,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = GSCAN_SUBCMD_SET_SIGNIFICANT_CHANGE_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_significant_change_cfg }, { @@ -1825,9 +1804,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = GSCAN_SUBCMD_GET_SCAN_RESULTS }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_gscan_get_batch_results }, { @@ -1836,9 +1812,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = GSCAN_SUBCMD_GET_CHANNEL_LIST }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_gscan_get_channel_list }, #endif /* GSCAN_SUPPORT */ @@ -1849,9 +1822,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = RTT_SUBCMD_SET_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_rtt_set_config }, { @@ -1860,9 +1830,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = RTT_SUBCMD_CANCEL_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_rtt_cancel_config }, { @@ -1871,9 +1838,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = RTT_SUBCMD_GETCAPABILITY }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_rtt_get_capability }, #endif /* RTT_SUPPORT */ @@ -1884,9 +1848,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LSTATS_SUBCMD_GET_INFO }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_lstats_get_info }, { @@ -1895,9 +1856,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LSTATS_SUBCMD_SET_INFO }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_lstats_set_info }, { @@ -1906,9 +1864,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LSTATS_SUBCMD_CLEAR_INFO }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, - #endif .doit = rtw_cfgvendor_lstats_clear_info }, #endif /* CONFIG_RTW_CFGVEDNOR_LLSTATS */ @@ -1919,9 +1874,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_SUBCMD_SET_RSSI_MONITOR }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_set_rssi_monitor }, #endif /* CONFIG_RTW_CFGVEDNOR_RSSIMONITOR */ @@ -1932,9 +1884,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_START_LOGGING }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_logger_start_logging }, { @@ -1943,9 +1892,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_GET_FEATURE }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_logger_get_feature }, { @@ -1954,9 +1900,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_GET_VER }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_logger_get_version }, { @@ -1965,9 +1908,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_GET_RING_STATUS }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_logger_get_ring_status }, { @@ -1976,9 +1916,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_GET_RING_DATA }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_logger_get_ring_data }, { @@ -1987,9 +1924,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_TRIGGER_MEM_DUMP }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_logger_get_firmware_memory_dump }, { @@ -1998,9 +1932,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_START_PKT_FATE_MONITORING }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_logger_start_pkt_fate_monitoring }, { @@ -2009,9 +1940,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_GET_TX_PKT_FATES }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_logger_get_tx_pkt_fates }, { @@ -2020,9 +1948,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_GET_RX_PKT_FATES }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_logger_get_rx_pkt_fates }, #endif /* CONFIG_RTW_CFGVENDOR_WIFI_LOGGER */ @@ -2034,9 +1959,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_SUBCMD_SET_PNO_RANDOM_MAC_OUI }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_set_rand_mac_oui }, #endif @@ -2046,9 +1968,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_SUBCMD_NODFS_SET }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_set_nodfs_flag }, @@ -2058,9 +1977,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_SUBCMD_SET_COUNTRY_CODE }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_set_country }, { @@ -2069,9 +1985,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_SUBCMD_CONFIG_ND_OFFLOAD }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_set_nd_offload }, #endif /* CONFIG_RTW_WIFI_HAL */ @@ -2081,9 +1994,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_SUBCMD_GET_FEATURE_SET }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_get_feature_set }, { @@ -2092,9 +2002,6 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_SUBCMD_GET_FEATURE_SET_MATRIX }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) - .policy = VENDOR_CMD_RAW_DATA, -#endif .doit = rtw_cfgvendor_get_feature_set_matrix } }; diff --git a/os_dep/linux/usb_intf.c b/os_dep/linux/usb_intf.c index 66fa74d..041e4dd 100644 --- a/os_dep/linux/usb_intf.c +++ b/os_dep/linux/usb_intf.c @@ -242,14 +242,6 @@ static struct usb_device_id rtw_usb_id_tbl[] = { {USB_DEVICE_AND_INTERFACE_INFO(USB_VENDER_ID_REALTEK, 0xB812, 0xff, 0xff, 0xff), .driver_info = RTL8822B}, /* Default ID for USB Single-function, WiFi only */ /*=== Customer ID ===*/ {USB_DEVICE_AND_INTERFACE_INFO(0x13b1, 0x0043, 0xff, 0xff, 0xff), .driver_info = RTL8822B}, /* Alpha - Alpha*/ - {USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0115, 0xff, 0xff, 0xff), .driver_info = RTL8822B}, /* TP-Link Archer T4U V3 */ - {USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x012D, 0xff, 0xff, 0xff), .driver_info = RTL8822B}, /* TP-Link Archer T3U */ - {USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xB822, 0xff, 0xff, 0xff), .driver_info = RTL8822B}, /* Edimax EW-7822ULC */ - {USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xC822, 0xff, 0xff, 0xff), .driver_info = RTL8822B}, /* Edimax EW-7822UTC */ - {USB_DEVICE_AND_INTERFACE_INFO(0x0b05, 0x1841, 0xff, 0xff, 0xff), .driver_info = RTL8822B}, /* ASUS AC1300 USB-AC55 B1 */ - {USB_DEVICE_AND_INTERFACE_INFO(0x0b05, 0x184C, 0xff, 0xff, 0xff), .driver_info = RTL8822B}, /* ASUS U2*/ - {USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x331c, 0xff, 0xff, 0xff), .driver_info = RTL8822B}, /* Dlink - DWA-182*/ - {USB_DEVICE_AND_INTERFACE_INFO(0x0846, 0x9055, 0xff, 0xff, 0xff), .driver_info = RTL8822B}, /* NetGear A6150 */ #endif /* CONFIG_RTL8822B */ #ifdef CONFIG_RTL8723D diff --git a/os_dep/osdep_service.c b/os_dep/osdep_service.c index c549e64..35013ed 100644 --- a/os_dep/osdep_service.c +++ b/os_dep/osdep_service.c @@ -2202,9 +2202,9 @@ static int isFileReadable(const char *path, u32 *sz) else { oldfs = get_fs(); #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)) - set_fs(KERNEL_DS); + set_fs(KERNEL_DS); #else - set_fs(get_ds()); + set_fs(get_ds()); #endif if (1 != readFile(fp, &buf, 1)) @@ -2244,9 +2244,9 @@ static int retriveFromFile(const char *path, u8 *buf, u32 sz) oldfs = get_fs(); #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)) - set_fs(KERNEL_DS); + set_fs(KERNEL_DS); #else - set_fs(get_ds()); + set_fs(get_ds()); #endif ret = readFile(fp, buf, sz); set_fs(oldfs); @@ -2283,9 +2283,9 @@ static int storeToFile(const char *path, u8 *buf, u32 sz) oldfs = get_fs(); #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)) - set_fs(KERNEL_DS); + set_fs(KERNEL_DS); #else - set_fs(get_ds()); + set_fs(get_ds()); #endif ret = writeFile(fp, buf, sz); set_fs(oldfs);