Commit 05b92610 authored by Arend van Spriel's avatar Arend van Spriel Committed by Greg Kroah-Hartman

staging: brcm80211: replace simple_strtoul usage in brcmfmac

The usage of simple_strtoul is not preferred. Instead kstrtoul
should be used. This patch fixes this for the brcmfmac driver.
Reported-by: default avatarDan Carpenter <error27@gmail.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 9917124f
...@@ -827,10 +827,13 @@ static int brcmf_c_pattern_atoh(char *src, char *dst) ...@@ -827,10 +827,13 @@ static int brcmf_c_pattern_atoh(char *src, char *dst)
return -EINVAL; return -EINVAL;
} }
for (i = 0; *src != '\0'; i++) { for (i = 0; *src != '\0'; i++) {
unsigned long res;
char num[3]; char num[3];
strncpy(num, src, 2); strncpy(num, src, 2);
num[2] = '\0'; num[2] = '\0';
dst[i] = (u8) simple_strtoul(num, NULL, 16); if (kstrtoul(num, 16, &res))
return -EINVAL;
dst[i] = (u8)res;
src += 2; src += 2;
} }
return i; return i;
...@@ -840,6 +843,7 @@ void ...@@ -840,6 +843,7 @@ void
brcmf_c_pktfilter_offload_enable(struct brcmf_pub *drvr, char *arg, int enable, brcmf_c_pktfilter_offload_enable(struct brcmf_pub *drvr, char *arg, int enable,
int master_mode) int master_mode)
{ {
unsigned long res;
char *argv[8]; char *argv[8];
int i = 0; int i = 0;
const char *str; const char *str;
...@@ -876,7 +880,9 @@ brcmf_c_pktfilter_offload_enable(struct brcmf_pub *drvr, char *arg, int enable, ...@@ -876,7 +880,9 @@ brcmf_c_pktfilter_offload_enable(struct brcmf_pub *drvr, char *arg, int enable,
pkt_filterp = (struct brcmf_pkt_filter_enable *) (buf + str_len + 1); pkt_filterp = (struct brcmf_pkt_filter_enable *) (buf + str_len + 1);
/* Parse packet filter id. */ /* Parse packet filter id. */
enable_parm.id = simple_strtoul(argv[i], NULL, 0); enable_parm.id = 0;
if (!kstrtoul(argv[i], 0, &res))
enable_parm.id = (u32)res;
/* Parse enable/disable value. */ /* Parse enable/disable value. */
enable_parm.enable = enable; enable_parm.enable = enable;
...@@ -913,6 +919,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg) ...@@ -913,6 +919,7 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
const char *str; const char *str;
struct brcmf_pkt_filter pkt_filter; struct brcmf_pkt_filter pkt_filter;
struct brcmf_pkt_filter *pkt_filterp; struct brcmf_pkt_filter *pkt_filterp;
unsigned long res;
int buf_len; int buf_len;
int str_len; int str_len;
int rc; int rc;
...@@ -956,7 +963,9 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg) ...@@ -956,7 +963,9 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
pkt_filterp = (struct brcmf_pkt_filter *) (buf + str_len + 1); pkt_filterp = (struct brcmf_pkt_filter *) (buf + str_len + 1);
/* Parse packet filter id. */ /* Parse packet filter id. */
pkt_filter.id = simple_strtoul(argv[i], NULL, 0); pkt_filter.id = 0;
if (!kstrtoul(argv[i], 0, &res))
pkt_filter.id = (u32)res;
if (NULL == argv[++i]) { if (NULL == argv[++i]) {
BRCMF_ERROR(("Polarity not provided\n")); BRCMF_ERROR(("Polarity not provided\n"));
...@@ -964,7 +973,9 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg) ...@@ -964,7 +973,9 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
} }
/* Parse filter polarity. */ /* Parse filter polarity. */
pkt_filter.negate_match = simple_strtoul(argv[i], NULL, 0); pkt_filter.negate_match = 0;
if (!kstrtoul(argv[i], 0, &res))
pkt_filter.negate_match = (u32)res;
if (NULL == argv[++i]) { if (NULL == argv[++i]) {
BRCMF_ERROR(("Filter type not provided\n")); BRCMF_ERROR(("Filter type not provided\n"));
...@@ -972,7 +983,9 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg) ...@@ -972,7 +983,9 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
} }
/* Parse filter type. */ /* Parse filter type. */
pkt_filter.type = simple_strtoul(argv[i], NULL, 0); pkt_filter.type = 0;
if (!kstrtoul(argv[i], 0, &res))
pkt_filter.type = (u32)res;
if (NULL == argv[++i]) { if (NULL == argv[++i]) {
BRCMF_ERROR(("Offset not provided\n")); BRCMF_ERROR(("Offset not provided\n"));
...@@ -980,7 +993,9 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg) ...@@ -980,7 +993,9 @@ void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg)
} }
/* Parse pattern filter offset. */ /* Parse pattern filter offset. */
pkt_filter.u.pattern.offset = simple_strtoul(argv[i], NULL, 0); pkt_filter.u.pattern.offset = 0;
if (!kstrtoul(argv[i], 0, &res))
pkt_filter.u.pattern.offset = (u32)res;
if (NULL == argv[++i]) { if (NULL == argv[++i]) {
BRCMF_ERROR(("Bitmask not provided\n")); BRCMF_ERROR(("Bitmask not provided\n"));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment