1*4882a593SmuzhiyunFrom cde2dbf6e94e00fcf198422b03de01d3090675d9 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Jesper Skov <jb1811@jyskebank.dk> 3*4882a593SmuzhiyunDate: Fri, 25 Oct 2019 10:10:29 +0200 4*4882a593SmuzhiyunSubject: [PATCH] Fix kernel 5.3 driver crashes, from aircrack-ng/rtl8812au#421 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun[Upstream: https://github.com/abperiasamy/rtl8812AU_8821AU_linux/commit/822b485d36d6f72304a219c3be228f40968b542b.patch] 7*4882a593SmuzhiyunSigned-off-by: Peter Seiderer <ps.report@gmx.net> 8*4882a593SmuzhiyunSigned-off-by: Christian Stewart <christian@paral.in> 9*4882a593Smuzhiyun--- 10*4882a593Smuzhiyun os_dep/linux/rtw_cfgvendor.c | 45 ++++++++++++++++++++++++++++++++++++ 11*4882a593Smuzhiyun 1 file changed, 45 insertions(+) 12*4882a593Smuzhiyun 13*4882a593Smuzhiyundiff --git a/os_dep/linux/rtw_cfgvendor.c b/os_dep/linux/rtw_cfgvendor.c 14*4882a593Smuzhiyunindex e7ba90a..81fc8af 100644 15*4882a593Smuzhiyun--- a/os_dep/linux/rtw_cfgvendor.c 16*4882a593Smuzhiyun+++ b/os_dep/linux/rtw_cfgvendor.c 17*4882a593Smuzhiyun@@ -1173,6 +1173,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 18*4882a593Smuzhiyun .subcmd = BRCM_VENDOR_SCMD_PRIV_STR 19*4882a593Smuzhiyun }, 20*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 21*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 22*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 23*4882a593Smuzhiyun+#endif 24*4882a593Smuzhiyun .doit = wl_cfgvendor_priv_string_handler 25*4882a593Smuzhiyun }, 26*4882a593Smuzhiyun #if defined(GSCAN_SUPPORT) && 0 27*4882a593Smuzhiyun@@ -1182,6 +1185,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 28*4882a593Smuzhiyun .subcmd = GSCAN_SUBCMD_GET_CAPABILITIES 29*4882a593Smuzhiyun }, 30*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 31*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 32*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 33*4882a593Smuzhiyun+#endif 34*4882a593Smuzhiyun .doit = wl_cfgvendor_gscan_get_capabilities 35*4882a593Smuzhiyun }, 36*4882a593Smuzhiyun { 37*4882a593Smuzhiyun@@ -1190,6 +1196,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 38*4882a593Smuzhiyun .subcmd = GSCAN_SUBCMD_SET_CONFIG 39*4882a593Smuzhiyun }, 40*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 41*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 42*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 43*4882a593Smuzhiyun+#endif 44*4882a593Smuzhiyun .doit = wl_cfgvendor_set_scan_cfg 45*4882a593Smuzhiyun }, 46*4882a593Smuzhiyun { 47*4882a593Smuzhiyun@@ -1198,6 +1207,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 48*4882a593Smuzhiyun .subcmd = GSCAN_SUBCMD_SET_SCAN_CONFIG 49*4882a593Smuzhiyun }, 50*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 51*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 52*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 53*4882a593Smuzhiyun+#endif 54*4882a593Smuzhiyun .doit = wl_cfgvendor_set_batch_scan_cfg 55*4882a593Smuzhiyun }, 56*4882a593Smuzhiyun { 57*4882a593Smuzhiyun@@ -1206,6 +1218,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 58*4882a593Smuzhiyun .subcmd = GSCAN_SUBCMD_ENABLE_GSCAN 59*4882a593Smuzhiyun }, 60*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 61*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 62*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 63*4882a593Smuzhiyun+#endif 64*4882a593Smuzhiyun .doit = wl_cfgvendor_initiate_gscan 65*4882a593Smuzhiyun }, 66*4882a593Smuzhiyun { 67*4882a593Smuzhiyun@@ -1214,6 +1229,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 68*4882a593Smuzhiyun .subcmd = GSCAN_SUBCMD_ENABLE_FULL_SCAN_RESULTS 69*4882a593Smuzhiyun }, 70*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 71*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 72*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 73*4882a593Smuzhiyun+#endif 74*4882a593Smuzhiyun .doit = wl_cfgvendor_enable_full_scan_result 75*4882a593Smuzhiyun }, 76*4882a593Smuzhiyun { 77*4882a593Smuzhiyun@@ -1222,6 +1240,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 78*4882a593Smuzhiyun .subcmd = GSCAN_SUBCMD_SET_HOTLIST 79*4882a593Smuzhiyun }, 80*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 81*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 82*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 83*4882a593Smuzhiyun+#endif 84*4882a593Smuzhiyun .doit = wl_cfgvendor_hotlist_cfg 85*4882a593Smuzhiyun }, 86*4882a593Smuzhiyun { 87*4882a593Smuzhiyun@@ -1230,6 +1251,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 88*4882a593Smuzhiyun .subcmd = GSCAN_SUBCMD_SET_SIGNIFICANT_CHANGE_CONFIG 89*4882a593Smuzhiyun }, 90*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 91*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 92*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 93*4882a593Smuzhiyun+#endif 94*4882a593Smuzhiyun .doit = wl_cfgvendor_significant_change_cfg 95*4882a593Smuzhiyun }, 96*4882a593Smuzhiyun { 97*4882a593Smuzhiyun@@ -1238,6 +1262,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 98*4882a593Smuzhiyun .subcmd = GSCAN_SUBCMD_GET_SCAN_RESULTS 99*4882a593Smuzhiyun }, 100*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 101*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 102*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 103*4882a593Smuzhiyun+#endif 104*4882a593Smuzhiyun .doit = wl_cfgvendor_gscan_get_batch_results 105*4882a593Smuzhiyun }, 106*4882a593Smuzhiyun { 107*4882a593Smuzhiyun@@ -1246,6 +1273,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 108*4882a593Smuzhiyun .subcmd = GSCAN_SUBCMD_GET_CHANNEL_LIST 109*4882a593Smuzhiyun }, 110*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 111*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 112*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 113*4882a593Smuzhiyun+#endif 114*4882a593Smuzhiyun .doit = wl_cfgvendor_gscan_get_channel_list 115*4882a593Smuzhiyun }, 116*4882a593Smuzhiyun #endif /* GSCAN_SUPPORT */ 117*4882a593Smuzhiyun@@ -1256,6 +1286,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 118*4882a593Smuzhiyun .subcmd = RTT_SUBCMD_SET_CONFIG 119*4882a593Smuzhiyun }, 120*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 121*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 122*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 123*4882a593Smuzhiyun+#endif 124*4882a593Smuzhiyun .doit = wl_cfgvendor_rtt_set_config 125*4882a593Smuzhiyun }, 126*4882a593Smuzhiyun { 127*4882a593Smuzhiyun@@ -1264,6 +1297,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 128*4882a593Smuzhiyun .subcmd = RTT_SUBCMD_CANCEL_CONFIG 129*4882a593Smuzhiyun }, 130*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 131*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 132*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 133*4882a593Smuzhiyun+#endif 134*4882a593Smuzhiyun .doit = wl_cfgvendor_rtt_cancel_config 135*4882a593Smuzhiyun }, 136*4882a593Smuzhiyun { 137*4882a593Smuzhiyun@@ -1272,6 +1308,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 138*4882a593Smuzhiyun .subcmd = RTT_SUBCMD_GETCAPABILITY 139*4882a593Smuzhiyun }, 140*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 141*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 142*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 143*4882a593Smuzhiyun+#endif 144*4882a593Smuzhiyun .doit = wl_cfgvendor_rtt_get_capability 145*4882a593Smuzhiyun }, 146*4882a593Smuzhiyun #endif /* RTT_SUPPORT */ 147*4882a593Smuzhiyun@@ -1281,6 +1320,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 148*4882a593Smuzhiyun .subcmd = ANDR_WIFI_SUBCMD_GET_FEATURE_SET 149*4882a593Smuzhiyun }, 150*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 151*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 152*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 153*4882a593Smuzhiyun+#endif 154*4882a593Smuzhiyun .doit = rtw_cfgvendor_get_feature_set 155*4882a593Smuzhiyun }, 156*4882a593Smuzhiyun { 157*4882a593Smuzhiyun@@ -1289,6 +1331,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds [] = { 158*4882a593Smuzhiyun .subcmd = ANDR_WIFI_SUBCMD_GET_FEATURE_SET_MATRIX 159*4882a593Smuzhiyun }, 160*4882a593Smuzhiyun .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, 161*4882a593Smuzhiyun+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0) 162*4882a593Smuzhiyun+ .policy = VENDOR_CMD_RAW_DATA, 163*4882a593Smuzhiyun+#endif 164*4882a593Smuzhiyun .doit = rtw_cfgvendor_get_feature_set_matrix 165*4882a593Smuzhiyun } 166*4882a593Smuzhiyun }; 167*4882a593Smuzhiyun-- 168*4882a593Smuzhiyun2.28.0 169*4882a593Smuzhiyun 170