|
@@ -35,9 +35,10 @@ static int brcmf_cfg80211_vndr_cmds_dcmd_handler(struct wiphy *wiphy,
|
|
|
struct brcmf_if *ifp;
|
|
struct brcmf_if *ifp;
|
|
|
const struct brcmf_vndr_dcmd_hdr *cmdhdr = data;
|
|
const struct brcmf_vndr_dcmd_hdr *cmdhdr = data;
|
|
|
struct sk_buff *reply;
|
|
struct sk_buff *reply;
|
|
|
- int ret, payload, ret_len;
|
|
|
|
|
|
|
+ unsigned int payload, ret_len;
|
|
|
void *dcmd_buf = NULL, *wr_pointer;
|
|
void *dcmd_buf = NULL, *wr_pointer;
|
|
|
u16 msglen, maxmsglen = PAGE_SIZE - 0x100;
|
|
u16 msglen, maxmsglen = PAGE_SIZE - 0x100;
|
|
|
|
|
+ int ret;
|
|
|
|
|
|
|
|
if (len < sizeof(*cmdhdr)) {
|
|
if (len < sizeof(*cmdhdr)) {
|
|
|
brcmf_err("vendor command too short: %d\n", len);
|
|
brcmf_err("vendor command too short: %d\n", len);
|
|
@@ -65,7 +66,7 @@ static int brcmf_cfg80211_vndr_cmds_dcmd_handler(struct wiphy *wiphy,
|
|
|
brcmf_err("oversize return buffer %d\n", ret_len);
|
|
brcmf_err("oversize return buffer %d\n", ret_len);
|
|
|
ret_len = BRCMF_DCMD_MAXLEN;
|
|
ret_len = BRCMF_DCMD_MAXLEN;
|
|
|
}
|
|
}
|
|
|
- payload = max(ret_len, len) + 1;
|
|
|
|
|
|
|
+ payload = max_t(unsigned int, ret_len, len) + 1;
|
|
|
dcmd_buf = vzalloc(payload);
|
|
dcmd_buf = vzalloc(payload);
|
|
|
if (NULL == dcmd_buf)
|
|
if (NULL == dcmd_buf)
|
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|