Merge tag 'LA.VENDOR.1.0.r1-26900-WAIPIO.QSSI15.0' of https://git.codelinaro.org/clo/la/platform/hardware/qcom/wlan into android-15-caf
"LA.VENDOR.1.0.r1-26900-WAIPIO.QSSI15.0"
Change-Id: I0c2e57b3776647c1629b8cba6aa85a0b89f17d4e
diff --git a/qcwcn/wifi_hal/wificonfig.cpp b/qcwcn/wifi_hal/wificonfig.cpp
index 9e1a6a0..f5cbddd 100644
--- a/qcwcn/wifi_hal/wificonfig.cpp
+++ b/qcwcn/wifi_hal/wificonfig.cpp
@@ -1571,6 +1571,15 @@
return (wifi_error)ret;
}
+static int wifi_get_wlan0_id(hal_info *info)
+{
+ int i;
+ for (i = 0; i < info->num_interfaces; i++)
+ if (!strncmp(info->interfaces[i]->name, "wlan0", 5))
+ return info->interfaces[i]->id;
+ return -1;
+}
+
/**
* Set STA + STA use case
*/
@@ -1579,6 +1588,7 @@
{
int requestId, ret = 0;
u8 use_case;
+ int index;
WiFiConfigCommand *wifiConfigCommand;
if (!handle) {
ALOGE("%s: Error wifi_handle NULL", __FUNCTION__);
@@ -1628,8 +1638,14 @@
}
/* Set the interface Id of the message. */
- if (wifiConfigCommand->put_u32(NL80211_ATTR_IFINDEX,
- info->interfaces[0]->id)) {
+ index = wifi_get_wlan0_id(info);
+ if (index == -1) {
+ ALOGE("%s: failed to obtain wlan0", __FUNCTION__);
+ ret = WIFI_ERROR_UNKNOWN;
+ goto cleanup;
+ }
+
+ if (wifiConfigCommand->put_u32(NL80211_ATTR_IFINDEX, index)) {
ret = WIFI_ERROR_UNKNOWN;
ALOGE("%s: Failed to put iface id", __FUNCTION__);
goto cleanup;
diff --git a/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211.c b/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211.c
index daced34..397f0c7 100644
--- a/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211.c
+++ b/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211.c
@@ -89,16 +89,16 @@
#define TWT_SETUP_WAKE_INTVL_EXP_MAX 31
#define TWT_WAKE_INTERVAL_TU_FACTOR 1024
-#define TWT_SETUP_STR "twt_session_setup"
-#define TWT_TERMINATE_STR "twt_session_terminate"
-#define TWT_PAUSE_STR "twt_session_pause"
-#define TWT_RESUME_STR "twt_session_resume"
-#define TWT_NUDGE_STR "twt_session_nudge"
-#define TWT_GET_PARAMS_STR "twt_session_get_params"
-#define TWT_GET_STATS_STR "twt_session_get_stats"
-#define TWT_CLEAR_STATS_STR "twt_session_clear_stats"
+#define TWT_SETUP_STR "twt_session_setup "
+#define TWT_TERMINATE_STR "twt_session_terminate "
+#define TWT_PAUSE_STR "twt_session_pause "
+#define TWT_RESUME_STR "twt_session_resume "
+#define TWT_NUDGE_STR "twt_session_nudge "
+#define TWT_GET_PARAMS_STR "twt_session_get_params "
+#define TWT_GET_STATS_STR "twt_session_get_stats "
+#define TWT_CLEAR_STATS_STR "twt_session_clear_stats "
#define TWT_GET_CAP_STR "twt_get_capability"
-#define TWT_SET_PARAM_STR "twt_set_param"
+#define TWT_SET_PARAM_STR "twt_set_param "
#define TWT_SETUP_STRLEN strlen(TWT_SETUP_STR)
#define TWT_TERMINATE_STR_LEN strlen(TWT_TERMINATE_STR)
@@ -2641,50 +2641,40 @@
* check_for_twt_cmd() - Check if the command string is a TWT command
* @cmd: Command string
*
- * This function will identify a TWT operation in the command string
- * and return one of the values in enum qca_wlan_twt_operation.
+ * This function will identify a TWT operation and
+ * return one of the values in enum qca_wlan_twt_operation.
*
* Return: A valid TWT opertion if found, or error if not found
*
*/
-static int check_for_twt_cmd(char **cmd)
+static int check_for_twt_cmd(char *cmd)
{
- if (os_strncasecmp(*cmd, TWT_SETUP_STR, TWT_SETUP_STRLEN) == 0) {
- *cmd += (TWT_SETUP_STRLEN + 1);
+ if (os_strncasecmp(cmd, TWT_SETUP_STR, TWT_SETUP_STRLEN) == 0) {
return QCA_WLAN_TWT_SET;
- } else if (os_strncasecmp(*cmd, TWT_TERMINATE_STR,
+ } else if (os_strncasecmp(cmd, TWT_TERMINATE_STR,
TWT_TERMINATE_STR_LEN) == 0) {
- *cmd += (TWT_TERMINATE_STR_LEN + 1);
return QCA_WLAN_TWT_TERMINATE;
- } else if (os_strncasecmp(*cmd, TWT_PAUSE_STR, TWT_PAUSE_STR_LEN) == 0) {
- *cmd += (TWT_PAUSE_STR_LEN + 1);
+ } else if (os_strncasecmp(cmd, TWT_PAUSE_STR, TWT_PAUSE_STR_LEN) == 0) {
return QCA_WLAN_TWT_SUSPEND;
- } else if (os_strncasecmp(*cmd, TWT_RESUME_STR, TWT_RESUME_STR_LEN) == 0) {
- *cmd += (TWT_RESUME_STR_LEN + 1);
+ } else if (os_strncasecmp(cmd, TWT_RESUME_STR, TWT_RESUME_STR_LEN) == 0) {
return QCA_WLAN_TWT_RESUME;
- } else if (os_strncasecmp(*cmd, TWT_GET_PARAMS_STR,
+ } else if (os_strncasecmp(cmd, TWT_GET_PARAMS_STR,
TWT_GET_PARAMS_STR_LEN) == 0) {
- *cmd += (TWT_GET_PARAMS_STR_LEN + 1);
return QCA_WLAN_TWT_GET;
- } else if (os_strncasecmp(*cmd, TWT_NUDGE_STR,
+ } else if (os_strncasecmp(cmd, TWT_NUDGE_STR,
TWT_NUDGE_STR_LEN) == 0) {
- *cmd += (TWT_NUDGE_STR_LEN + 1);
return QCA_WLAN_TWT_NUDGE;
- } else if (os_strncasecmp(*cmd, TWT_GET_STATS_STR,
+ } else if (os_strncasecmp(cmd, TWT_GET_STATS_STR,
TWT_GET_STATS_STR_LEN) == 0) {
- *cmd += (TWT_GET_STATS_STR_LEN + 1);
return QCA_WLAN_TWT_GET_STATS;
- } else if (os_strncasecmp(*cmd, TWT_CLEAR_STATS_STR,
+ } else if (os_strncasecmp(cmd, TWT_CLEAR_STATS_STR,
TWT_CLEAR_STATS_STR_LEN) == 0) {
- *cmd += (TWT_CLEAR_STATS_STR_LEN + 1);
return QCA_WLAN_TWT_CLEAR_STATS;
- } else if (os_strncasecmp(*cmd, TWT_GET_CAP_STR,
+ } else if (os_strncasecmp(cmd, TWT_GET_CAP_STR,
TWT_GET_CAP_STR_LEN) == 0) {
- *cmd += (TWT_GET_CAP_STR_LEN + 1);
return QCA_WLAN_TWT_GET_CAPABILITIES;
- } else if (os_strncasecmp(*cmd, TWT_SET_PARAM_STR,
+ } else if (os_strncasecmp(cmd, TWT_SET_PARAM_STR,
TWT_SET_PARAM_STR_LEN) == 0) {
- *cmd += (TWT_SET_PARAM_STR_LEN + 1);
return QCA_WLAN_TWT_SET_PARAM;
} else {
return TWT_CMD_NOT_EXIST;
@@ -2884,11 +2874,11 @@
return -EINVAL;
wpa_printf(MSG_DEBUG, "process twt setup command string: %s", cmd);
- while (*cmd == ' ')
- cmd++;
+
+ cmd = skip_white_space(cmd);
if (os_strncasecmp(cmd, DIALOG_ID_STR, DIALOG_ID_STR_LEN) == 0) {
- cmd += (DIALOG_ID_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->dialog_id = get_u8_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -2896,7 +2886,7 @@
}
if (os_strncasecmp(cmd, REQ_TYPE_STR, REQ_TYPE_STR_LEN) == 0) {
- cmd += (REQ_TYPE_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->req_type = get_u8_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -2904,7 +2894,7 @@
}
if (os_strncasecmp(cmd, TRIG_TYPE_STR, TRIG_TYPE_STR_LEN) == 0) {
- cmd += (TRIG_TYPE_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->trig_type = get_u8_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -2917,7 +2907,7 @@
}
if (strncmp(cmd, FLOW_TYPE_STR, FLOW_TYPE_STR_LEN) == 0) {
- cmd += (FLOW_TYPE_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->flow_type = get_u8_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -2930,7 +2920,7 @@
}
if (strncmp(cmd, WAKE_INTR_EXP_STR, WAKE_INTR_EXP_STR_LEN) == 0) {
- cmd += (WAKE_INTR_EXP_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->wake_intr_exp = get_u8_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -2945,7 +2935,7 @@
}
if (strncmp(cmd, PROTECTION_STR, PROTECTION_STR_LEN) == 0) {
- cmd += (PROTECTION_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->protection = get_u8_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -2958,7 +2948,7 @@
}
if (strncmp(cmd, WAKE_TIME_STR, WAKE_TIME_STR_LEN) == 0) {
- cmd += (WAKE_TIME_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->wake_time = get_u32_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -2966,7 +2956,7 @@
}
if (strncmp(cmd, WAKE_DUR_STR, WAKE_DUR_STR_LEN) == 0) {
- cmd += (WAKE_DUR_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->wake_dur = get_u32_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -2983,7 +2973,7 @@
if (strncmp(cmd, WAKE_INTR_MANTISSA_STR,
WAKE_INTR_MANTISSA_STR_LEN) == 0) {
- cmd += (WAKE_INTR_MANTISSA_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->wake_intr_mantissa = get_u32_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -2998,7 +2988,7 @@
}
if (strncmp(cmd, BROADCAST_STR, BROADCAST_STR_LEN) == 0) {
- cmd += (BROADCAST_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->bcast = get_u8_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -3011,7 +3001,7 @@
}
if (strncmp(cmd, MIN_WAKE_INTVL_STR, MIN_WAKE_INTVL_STR_LEN) == 0) {
- cmd += (MIN_WAKE_INTVL_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->min_wake_intvl = get_u32_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -3019,7 +3009,7 @@
}
if (strncmp(cmd, MAX_WAKE_INTVL_STR, MAX_WAKE_INTVL_STR_LEN) == 0) {
- cmd += (MAX_WAKE_INTVL_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->max_wake_intvl = get_u32_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -3027,7 +3017,7 @@
}
if (strncmp(cmd, MIN_WAKE_DUR_STR, MIN_WAKE_DUR_STR_LEN) == 0) {
- cmd += (MIN_WAKE_DUR_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->min_wake_duration = get_u32_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -3035,7 +3025,7 @@
}
if (strncmp(cmd, MAX_WAKE_DUR_STR, MAX_WAKE_DUR_STR_LEN) == 0) {
- cmd += (MAX_WAKE_DUR_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->max_wake_duration = get_u32_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -3043,7 +3033,7 @@
}
if (strncmp(cmd, WAKE_TSF_STR, WAKE_TSF_STR_LEN) == 0) {
- cmd += (WAKE_TSF_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->wake_tsf = get_u64_from_string(cmd, &ret);
if(ret < 0)
return ret;
@@ -3051,7 +3041,7 @@
}
if (strncmp(cmd, ANNOUNCE_TIMEOUT_STR, ANNOUNCE_TIMEOUT_STR_LEN) == 0) {
- cmd += (ANNOUNCE_TIMEOUT_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
twt_setup_params->announce_timeout_us =
get_u32_from_string(cmd, &ret);
if (ret < 0)
@@ -3224,11 +3214,10 @@
if(check_cmd_input(cmd))
return -EINVAL;
- while(*cmd == ' ')
- cmd++;
+ cmd = skip_white_space(cmd);
if (os_strncasecmp(cmd, DIALOG_ID_STR, DIALOG_ID_STR_LEN) == 0) {
- cmd += (DIALOG_ID_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
dialog_id = get_u8_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -3272,11 +3261,10 @@
if(check_cmd_input(cmd))
return -EINVAL;
- while(*cmd == ' ')
- cmd++;
+ cmd = skip_white_space(cmd);
if (os_strncasecmp(cmd, DIALOG_ID_STR, DIALOG_ID_STR_LEN) == 0) {
- cmd += (DIALOG_ID_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
dialog_id = get_u8_from_string(cmd, &ret);
if(ret < 0)
return ret;
@@ -3334,21 +3322,20 @@
if(check_cmd_input(cmd))
return -EINVAL;
- while(*cmd == ' ')
- cmd++;
+ cmd = skip_white_space(cmd);
if (os_strncasecmp(cmd, DIALOG_ID_STR, DIALOG_ID_STR_LEN) != 0) {
wpa_printf(MSG_ERROR, "TWT: dialog ID parameter is required");
return -EINVAL;
}
- cmd += (DIALOG_ID_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
resume_params->dialog_id = get_u8_from_string(cmd, &ret);
if (ret < 0)
return ret;
cmd = move_to_next_str(cmd);
if (os_strncasecmp(cmd, NEXT_TWT_STR, NEXT_TWT_STR_LEN) == 0) {
- cmd += (NEXT_TWT_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
resume_params->next_twt = get_u8_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -3357,7 +3344,7 @@
}
if (os_strncasecmp(cmd, NEXT2_TWT_STR, NEXT2_TWT_STR_LEN) == 0) {
- cmd += (NEXT2_TWT_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
resume_params->next2_twt = get_u32_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -3369,7 +3356,7 @@
wpa_printf(MSG_ERROR, "TWT: next_twt_size parameter is required");
return -EINVAL;
}
- cmd += (NEXT_TWT_SIZE_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
resume_params->next_twt_size = get_u32_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -3444,21 +3431,20 @@
if(check_cmd_input(cmd))
return -EINVAL;
- while(*cmd == ' ')
- cmd++;
+ cmd = skip_white_space(cmd);
if (os_strncasecmp(cmd, DIALOG_ID_STR, DIALOG_ID_STR_LEN) != 0) {
wpa_printf(MSG_ERROR, "TWT: dialog_id parameter is required");
return -EINVAL;
}
- cmd += (DIALOG_ID_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
nudge_params->dialog_id = get_u8_from_string(cmd, &ret);
if (ret < 0)
return ret;
cmd = move_to_next_str(cmd);
if (os_strncasecmp(cmd, PAUSE_DURATION_STR, PAUSE_DURATION_STR_LEN) == 0) {
- cmd += (PAUSE_DURATION_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
nudge_params->wake_time = get_u32_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -3470,14 +3456,14 @@
wpa_printf(MSG_ERROR, "TWT: next_twt_size parameter is required");
return -EINVAL;
}
- cmd += (NEXT_TWT_SIZE_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
nudge_params->next_twt_size = get_u32_from_string(cmd, &ret);
if (ret < 0)
return ret;
cmd = move_to_next_str(cmd);
if (os_strncasecmp(cmd, "sp_start_offset", strlen("sp_start_offset")) == 0) {
- cmd += (strlen("sp_start_offset") + 1);
+ cmd = move_to_next_str(cmd);
nudge_params->sp_start_offset = get_s32_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -3569,11 +3555,10 @@
if (check_cmd_input(cmd))
return -EINVAL;
- while (*cmd == ' ')
- cmd++;
+ cmd = skip_white_space(cmd);
if (os_strncasecmp(cmd, AP_AC_VALUE_STR, AP_AC_VALUE_STR_LEN) == 0) {
- cmd += (AP_AC_VALUE_STR_LEN + 1);
+ cmd = move_to_next_str(cmd);
set_params->ap_ac_value = get_u8_from_string(cmd, &ret);
wpa_printf(MSG_DEBUG, "TWT: AP AC VALUE: %d", set_params->ap_ac_value);
if (ret < 0)
@@ -3637,8 +3622,7 @@
u8 dialog_id;
int ret = 0;
- while(*cmd == ' ')
- cmd++;
+ cmd = skip_white_space(cmd);
if (nla_put_u8(nlmsg, QCA_WLAN_VENDOR_ATTR_CONFIG_TWT_OPERATION,
QCA_WLAN_TWT_CLEAR_STATS)) {
@@ -3652,8 +3636,7 @@
return -EINVAL;
if (os_strncasecmp(cmd, DIALOG_ID_STR, DIALOG_ID_STR_LEN) == 0) {
- cmd += DIALOG_ID_STR_LEN + 1;
-
+ cmd = move_to_next_str(cmd);
dialog_id = get_u8_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -3689,8 +3672,7 @@
u8 dialog_id;
int ret = 0;
- while(*cmd == ' ')
- cmd++;
+ cmd = skip_white_space(cmd);
if (nla_put_u8(nlmsg, QCA_WLAN_VENDOR_ATTR_CONFIG_TWT_OPERATION,
QCA_WLAN_TWT_GET_STATS)) {
@@ -3704,8 +3686,7 @@
return -EINVAL;
if (os_strncasecmp(cmd, DIALOG_ID_STR, DIALOG_ID_STR_LEN) == 0) {
- cmd += DIALOG_ID_STR_LEN + 1;
-
+ cmd = move_to_next_str(cmd);
dialog_id = get_u8_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -3734,8 +3715,7 @@
int ret = 0;
uint8_t peer_mac[MAC_ADDR_LEN];
- while(*cmd == ' ')
- cmd++;
+ cmd = skip_white_space(cmd);
if (nla_put_u8(nlmsg, QCA_WLAN_VENDOR_ATTR_CONFIG_TWT_OPERATION,
QCA_WLAN_TWT_GET)) {
@@ -3749,8 +3729,7 @@
return -EINVAL;
if (os_strncasecmp(cmd, DIALOG_ID_STR, DIALOG_ID_STR_LEN) == 0) {
- cmd += DIALOG_ID_STR_LEN + 1;
-
+ cmd = move_to_next_str(cmd);
dialog_id = get_u8_from_string(cmd, &ret);
if (ret < 0)
return ret;
@@ -3769,8 +3748,7 @@
if (os_strncasecmp(cmd, MAC_ADDRESS_STR, MAC_ADDR_STR_LEN) == 0) {
- cmd += MAC_ADDR_STR_LEN + 1;
-
+ cmd = move_to_next_str(cmd);
if (convert_string_to_bytes(peer_mac, cmd, MAC_ADDR_LEN) !=
MAC_ADDR_LEN) {
wpa_printf(MSG_ERROR, "TWT: invalid mac address");
@@ -3899,16 +3877,19 @@
char *result_copy_to_buf(char *src, char *dst_buf, int *dst_len)
{
- int str_len, remaining = 0;
+ size_t str_len, remaining = 0;
+
+ if (!dst_buf || *dst_len < 0)
+ return NULL;
remaining = *dst_len;
str_len = strlen(src);
- remaining = remaining - (str_len + 1);
- if (remaining <= 0) {
- wpa_printf(MSG_ERROR, "destination buffer length not enough");
+ if (remaining > 0 && (remaining - 1) > str_len)
+ remaining = remaining - (str_len + 1);
+ else
return NULL;
- }
+
os_memcpy(dst_buf, src, str_len);
*dst_len = remaining;
@@ -5259,17 +5240,7 @@
/* First comes interface name - optional */
if (os_strncasecmp(cmd, "iface", 5) == 0) {
- char *iface;
cmd = move_to_next_str(cmd);
- /* null terminate the iface name in the cmd string */
- iface = strchr(cmd, ' ');
- if (iface == NULL) {
- wpa_printf(MSG_ERROR, "mcc_quota: iface is not found"
- " in cmd string");
- return -EINVAL;
- }
- *iface = '\0';
- iface = cmd;
errno = 0;
if_index = if_nametoindex(cmd);
if (if_index == 0) {
@@ -5469,6 +5440,7 @@
{
int ret;
+ cmd = skip_white_space(cmd);
wpa_printf(MSG_INFO, "mcc_quota: %s", cmd);
if (os_strncasecmp(cmd, "set", 3) == 0) {
@@ -6662,7 +6634,7 @@
} else if (os_strncasecmp(cmd, "CSI", 3) == 0) {
cmd += 3;
return wpa_driver_handle_csi_cmd(bss, cmd, buf, buf_len, &status);
- } else if(os_strncasecmp(cmd, "GETSTATSBSSINFO", 15) == 0) {
+ } else if (os_strncasecmp(cmd, "GETSTATSBSSINFO", 15) == 0) {
struct resp_info info,info2;
struct nl_msg *nlmsg;
@@ -6681,12 +6653,11 @@
if(p != NULL)
memcpy(info.country, (p+1), strlen(p+1)+1);//length of p including null
}
- cmd += 16;
os_memset(buf, 0, buf_len);
u8 mac[MAC_ADDR_LEN];
- cmd = skip_white_space(cmd);
+ cmd = move_to_next_str(cmd);
if (strlen(cmd) >= MAC_ADDR_LEN * 2 + MAC_ADDR_LEN - 1
&& convert_string_to_bytes(mac, cmd, MAC_ADDR_LEN) > 0) {
@@ -6860,10 +6831,11 @@
}
return WPA_DRIVER_OEM_STATUS_SUCCESS;
- } else if ((ret = check_for_twt_cmd(&cmd)) != TWT_CMD_NOT_EXIST) {
+ } else if ((ret = check_for_twt_cmd(cmd)) != TWT_CMD_NOT_EXIST) {
enum qca_wlan_twt_operation twt_oper = ret;
u8 is_twt_feature_supported = 0;
+ cmd = move_to_next_str(cmd);
if (oem_cb_table) {
for (lib_n = 0;
oem_cb_table[lib_n].wpa_driver_driver_cmd_oem_cb != NULL;
@@ -6886,14 +6858,14 @@
if (ret)
ret = os_snprintf(buf, buf_len, "TWT failed for operation %d", twt_oper);
}
- } else if (os_strncasecmp(cmd, "MCC_QUOTA", 9) == 0) {
+ } else if (os_strncasecmp(cmd, "MCC_QUOTA ", 10) == 0) {
/* DRIVER MCC_QUOTA set iface <name> quota <val>
* DRIVER MCC_QUOTA clear iface <name>
*/
/* Move cmd by string len and space */
cmd += 10;
return wpa_driver_cmd_send_mcc_quota(priv, cmd);
- } else if (os_strncasecmp(cmd, "FLUSH_QUEUE_CONFIG", 18) == 0) {
+ } else if (os_strncasecmp(cmd, "FLUSH_QUEUE_CONFIG ", 19) == 0) {
/* DRIVER FLUSH_QUEUE_CONFIG set peer <mac addr> policy <val>
* tid <tid mask> ac <ac mask>
*/
diff --git a/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211_sr.c b/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211_sr.c
index d0cb989..47e26e7 100644
--- a/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211_sr.c
+++ b/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211_sr.c
@@ -343,11 +343,7 @@
cmd += 21;
cmd = skip_white_space(cmd);
pd_thres = get_s32_from_string(cmd, &ret);
- /**
- * For non-SRG OBSS, allowed range for PD threshold
- * is -62 to -81 as -82 is fixed as min offset.
- **/
- if (ret < 0 || pd_thres <= OBSS_PD_THRESHOLD_MIN ||
+ if (ret < 0 || pd_thres < OBSS_PD_THRESHOLD_MIN ||
pd_thres > OBSS_PD_THRESHOLD_MAX) {
wpa_printf(MSG_ERROR, "Invalid Non-SRG PD threshold: %d", pd_thres);
return -EINVAL;