diff --git a/os_if/linux/scan/inc/wlan_cfg80211_scan.h b/os_if/linux/scan/inc/wlan_cfg80211_scan.h index a43e057b90..9944bf7245 100644 --- a/os_if/linux/scan/inc/wlan_cfg80211_scan.h +++ b/os_if/linux/scan/inc/wlan_cfg80211_scan.h @@ -37,6 +37,21 @@ /* Max number of scans allowed from userspace */ #define WLAN_MAX_SCAN_COUNT 8 +extern const struct nla_policy cfg80211_scan_policy[ + QCA_WLAN_VENDOR_ATTR_SCAN_MAX + 1]; + +#define FEATURE_ABORT_SCAN_VENDOR_COMMANDS \ + { \ + .info.vendor_id = QCA_NL80211_VENDOR_ID, \ + .info.subcmd = QCA_NL80211_VENDOR_SUBCMD_ABORT_SCAN, \ + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | \ + WIPHY_VENDOR_CMD_NEED_NETDEV | \ + WIPHY_VENDOR_CMD_NEED_RUNNING, \ + .doit = wlan_hdd_vendor_abort_scan, \ + vendor_command_policy(cfg80211_scan_policy, \ + QCA_WLAN_VENDOR_ATTR_SCAN_MAX) \ + }, + /* GPS application requirement */ #define QCOM_VENDOR_IE_ID 221 #define QCOM_OUI1 0x00 diff --git a/os_if/linux/scan/src/wlan_cfg80211_scan.c b/os_if/linux/scan/src/wlan_cfg80211_scan.c index 52ca22433d..340b0c1bf3 100644 --- a/os_if/linux/scan/src/wlan_cfg80211_scan.c +++ b/os_if/linux/scan/src/wlan_cfg80211_scan.c @@ -44,8 +44,8 @@ #include "host_diag_core_event.h" #endif -static const -struct nla_policy scan_policy[QCA_WLAN_VENDOR_ATTR_SCAN_MAX + 1] = { +const struct nla_policy cfg80211_scan_policy[ + QCA_WLAN_VENDOR_ATTR_SCAN_MAX + 1] = { [QCA_WLAN_VENDOR_ATTR_SCAN_FLAGS] = {.type = NLA_U32}, [QCA_WLAN_VENDOR_ATTR_SCAN_TX_NO_CCK_RATE] = {.type = NLA_FLAG}, [QCA_WLAN_VENDOR_ATTR_SCAN_COOKIE] = {.type = NLA_U64}, @@ -1731,7 +1731,7 @@ int wlan_vendor_abort_scan(struct wlan_objmgr_pdev *pdev, pdev_id = wlan_objmgr_pdev_get_pdev_id(pdev); if (wlan_cfg80211_nla_parse(tb, QCA_WLAN_VENDOR_ATTR_SCAN_MAX, data, - data_len, scan_policy)) { + data_len, cfg80211_scan_policy)) { osif_err("Invalid ATTR"); return ret; }