mac80211 from kernel 5.3 and later checks the new policy attribute. As this driver does not define any policies and does strange things, just tell mac80211 to ignore the policies. --- a/os_dep/linux/rtw_cfgvendor.c +++ b/os_dep/linux/rtw_cfgvendor.c @@ -1173,7 +1173,8 @@ static const struct wiphy_vendor_command .subcmd = BRCM_VENDOR_SCMD_PRIV_STR }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = wl_cfgvendor_priv_string_handler + .doit = wl_cfgvendor_priv_string_handler, + .policy = VENDOR_CMD_RAW_DATA, }, #if defined(GSCAN_SUPPORT) && 0 { @@ -1182,7 +1183,8 @@ static const struct wiphy_vendor_command .subcmd = GSCAN_SUBCMD_GET_CAPABILITIES }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = wl_cfgvendor_gscan_get_capabilities + .doit = wl_cfgvendor_gscan_get_capabilities, + .policy = VENDOR_CMD_RAW_DATA, }, { { @@ -1190,7 +1192,8 @@ static const struct wiphy_vendor_command .subcmd = GSCAN_SUBCMD_SET_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = wl_cfgvendor_set_scan_cfg + .doit = wl_cfgvendor_set_scan_cfg, + .policy = VENDOR_CMD_RAW_DATA, }, { { @@ -1198,7 +1201,8 @@ static const struct wiphy_vendor_command .subcmd = GSCAN_SUBCMD_SET_SCAN_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = wl_cfgvendor_set_batch_scan_cfg + .doit = wl_cfgvendor_set_batch_scan_cfg, + .policy = VENDOR_CMD_RAW_DATA, }, { { @@ -1206,7 +1210,8 @@ static const struct wiphy_vendor_command .subcmd = GSCAN_SUBCMD_ENABLE_GSCAN }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = wl_cfgvendor_initiate_gscan + .doit = wl_cfgvendor_initiate_gscan, + .policy = VENDOR_CMD_RAW_DATA, }, { { @@ -1214,7 +1219,8 @@ static const struct wiphy_vendor_command .subcmd = GSCAN_SUBCMD_ENABLE_FULL_SCAN_RESULTS }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = wl_cfgvendor_enable_full_scan_result + .doit = wl_cfgvendor_enable_full_scan_result, + .policy = VENDOR_CMD_RAW_DATA, }, { { @@ -1222,7 +1228,8 @@ static const struct wiphy_vendor_command .subcmd = GSCAN_SUBCMD_SET_HOTLIST }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = wl_cfgvendor_hotlist_cfg + .doit = wl_cfgvendor_hotlist_cfg, + .policy = VENDOR_CMD_RAW_DATA, }, { { @@ -1230,7 +1237,8 @@ static const struct wiphy_vendor_command .subcmd = GSCAN_SUBCMD_SET_SIGNIFICANT_CHANGE_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = wl_cfgvendor_significant_change_cfg + .doit = wl_cfgvendor_significant_change_cfg, + .policy = VENDOR_CMD_RAW_DATA, }, { { @@ -1238,7 +1246,8 @@ static const struct wiphy_vendor_command .subcmd = GSCAN_SUBCMD_GET_SCAN_RESULTS }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = wl_cfgvendor_gscan_get_batch_results + .doit = wl_cfgvendor_gscan_get_batch_results, + .policy = VENDOR_CMD_RAW_DATA, }, { { @@ -1246,7 +1255,8 @@ static const struct wiphy_vendor_command .subcmd = GSCAN_SUBCMD_GET_CHANNEL_LIST }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = wl_cfgvendor_gscan_get_channel_list + .doit = wl_cfgvendor_gscan_get_channel_list, + .policy = VENDOR_CMD_RAW_DATA, }, #endif /* GSCAN_SUPPORT */ #if defined(RTT_SUPPORT) && 0 @@ -1256,7 +1266,8 @@ static const struct wiphy_vendor_command .subcmd = RTT_SUBCMD_SET_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = wl_cfgvendor_rtt_set_config + .doit = wl_cfgvendor_rtt_set_config, + .policy = VENDOR_CMD_RAW_DATA, }, { { @@ -1264,7 +1275,8 @@ static const struct wiphy_vendor_command .subcmd = RTT_SUBCMD_CANCEL_CONFIG }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = wl_cfgvendor_rtt_cancel_config + .doit = wl_cfgvendor_rtt_cancel_config, + .policy = VENDOR_CMD_RAW_DATA, }, { { @@ -1272,7 +1284,8 @@ static const struct wiphy_vendor_command .subcmd = RTT_SUBCMD_GETCAPABILITY }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = wl_cfgvendor_rtt_get_capability + .doit = wl_cfgvendor_rtt_get_capability, + .policy = VENDOR_CMD_RAW_DATA, }, #endif /* RTT_SUPPORT */ { @@ -1281,7 +1294,8 @@ static const struct wiphy_vendor_command .subcmd = ANDR_WIFI_SUBCMD_GET_FEATURE_SET }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = rtw_cfgvendor_get_feature_set + .doit = rtw_cfgvendor_get_feature_set, + .policy = VENDOR_CMD_RAW_DATA, }, { { @@ -1289,7 +1303,8 @@ static const struct wiphy_vendor_command .subcmd = ANDR_WIFI_SUBCMD_GET_FEATURE_SET_MATRIX }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, - .doit = rtw_cfgvendor_get_feature_set_matrix + .doit = rtw_cfgvendor_get_feature_set_matrix, + .policy = VENDOR_CMD_RAW_DATA, } };