Skip to content

Commit

Permalink
fix warning compiler "test kstrtol"
Browse files Browse the repository at this point in the history
Signed-off-by: Julien Blais webmaster@jbsky.fr
  • Loading branch information
jbsky committed Mar 11, 2023
1 parent 69ba915 commit b802308
Showing 1 changed file with 27 additions and 4 deletions.
31 changes: 27 additions & 4 deletions hif/fwcmd.c
Expand Up @@ -887,7 +887,8 @@ static __le16 mwl_fwcmd_parse_cal_cfg(const u8 *src, size_t len, u8 *dst)
if (isxdigit(*ptr)) {
byte_str[0] = *ptr++;
byte_str[1] = *ptr++;
kstrtol(byte_str, 16, &res);
if (kstrtol(byte_str, 16, &res))
return -EINVAL;
*dptr++ = res;
} else {
ptr++;
Expand Down Expand Up @@ -918,7 +919,9 @@ static u16 mwl_fwcmd_parse_txpwrlmt_cfg(const u8 *src, size_t len,
if (isxdigit(*ptr)) {
byte_str[0] = *ptr++;
byte_str[1] = *ptr++;
kstrtol(byte_str, 16, &res);
if (kstrtol(byte_str, 16, &res)) {
return -EINVAL;
}
*dptr++ = res;
} else {
ptr++;
Expand Down Expand Up @@ -1484,7 +1487,7 @@ int mwl_fwcmd_set_cfg_data(struct ieee80211_hw *hw, u16 type)
{
struct mwl_priv *priv = hw->priv;
struct hostcmd_cmd_set_cfg *pcmd;

u16 parsed_len;
if (!priv->cal_data)
return 0;

Expand All @@ -1493,9 +1496,12 @@ int mwl_fwcmd_set_cfg_data(struct ieee80211_hw *hw, u16 type)
mutex_lock(&priv->fwcmd_mutex);

memset(pcmd, 0x00, sizeof(*pcmd));
pcmd->data_len = mwl_fwcmd_parse_cal_cfg(priv->cal_data->data,
parsed_len = mwl_fwcmd_parse_cal_cfg(priv->cal_data->data,
priv->cal_data->size,
pcmd->data);
if (parsed_len == -EINVAL)
return -EIO;
pcmd->data_len = parsed_len;
pcmd->cmd_hdr.cmd = cpu_to_le16(HOSTCMD_CMD_SET_CFG);
pcmd->cmd_hdr.len = cpu_to_le16(sizeof(*pcmd) +
le16_to_cpu(pcmd->data_len) - sizeof(pcmd->data));
Expand Down Expand Up @@ -3693,6 +3699,9 @@ int mwl_fwcmd_set_txpwrlmt_cfg_data(struct ieee80211_hw *hw)
parsed_len = mwl_fwcmd_parse_txpwrlmt_cfg(ptr, size,
TXPWRLMT_CFG_SIG_LEN,
(u8 *)&txpwr_cfg_sig);
if (parsed_len == -EINVAL)
return -EINVAL;

ptr += parsed_len;
size -= parsed_len;

Expand All @@ -3708,6 +3717,9 @@ int mwl_fwcmd_set_txpwrlmt_cfg_data(struct ieee80211_hw *hw)
parsed_len = mwl_fwcmd_parse_txpwrlmt_cfg(ptr, size,
TXPWRLMT_CFG_VERSION_INFO_LEN,
version);
if (parsed_len == -EINVAL)
return -EINVAL;

ptr += parsed_len;
size -= parsed_len;

Expand All @@ -3719,6 +3731,9 @@ int mwl_fwcmd_set_txpwrlmt_cfg_data(struct ieee80211_hw *hw)
parsed_len = mwl_fwcmd_parse_txpwrlmt_cfg(ptr, size,
parsed_len,
(u8 *)&hdr);
if (parsed_len == -EINVAL)
return -EINVAL;

ptr += parsed_len;
size -= parsed_len;
data_len = le16_to_cpu(hdr.len) -
Expand All @@ -3737,6 +3752,14 @@ int mwl_fwcmd_set_txpwrlmt_cfg_data(struct ieee80211_hw *hw)
/* Parsing tx pwr cfg subband header info */
parsed_len = mwl_fwcmd_parse_txpwrlmt_cfg(ptr, size,
data_len, pcmd->data);

if (parsed_len == -EINVAL) {
mutex_unlock(&priv->fwcmd_mutex);
release_firmware(priv->txpwrlmt_file);
priv->txpwrlmt_file = NULL;
return -EIO;
}

ptr += parsed_len;
size -= parsed_len;

Expand Down

0 comments on commit b802308

Please sign in to comment.