mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 01:49:36 +00:00
Staging: wlan-ng: fix sparse warning in prism2fw.c
Fix the following sparse warning : In file included from drivers/staging/wlan-ng/prism2usb.c:5:0: drivers/staging/wlan-ng/prism2fw.c: In function ‘read_cardpda.constprop.43’: drivers/staging/wlan-ng/prism2fw.c:792:1: warning: the frame size of 1068 bytes is larger than 1024 bytes [-Wframe-larger-than=] The variable to 'struct p80211msg_p2req_readpda' was previously being created on the stack, which inturn exeeded the frame size limit, resulting in a sparse warning. This patch alloctes the memory to the structure dynamically and the operations are left unchanged. Signed-off-by: A Raghavendra Rao <arrao@cdac.in> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0d0e9d9e77
commit
41cb65c485
1 changed files with 18 additions and 13 deletions
|
@ -764,30 +764,35 @@ static int plugimage(struct imgchunk *fchunk, unsigned int nfchunks,
|
|||
static int read_cardpda(struct pda *pda, wlandevice_t *wlandev)
|
||||
{
|
||||
int result = 0;
|
||||
struct p80211msg_p2req_readpda msg;
|
||||
struct p80211msg_p2req_readpda *msg;
|
||||
|
||||
msg = kzalloc(sizeof(*msg), GFP_KERNEL);
|
||||
if (!msg)
|
||||
return -ENOMEM;
|
||||
|
||||
/* set up the msg */
|
||||
msg.msgcode = DIDmsg_p2req_readpda;
|
||||
msg.msglen = sizeof(msg);
|
||||
strcpy(msg.devname, wlandev->name);
|
||||
msg.pda.did = DIDmsg_p2req_readpda_pda;
|
||||
msg.pda.len = HFA384x_PDA_LEN_MAX;
|
||||
msg.pda.status = P80211ENUM_msgitem_status_no_value;
|
||||
msg.resultcode.did = DIDmsg_p2req_readpda_resultcode;
|
||||
msg.resultcode.len = sizeof(u32);
|
||||
msg.resultcode.status = P80211ENUM_msgitem_status_no_value;
|
||||
msg->msgcode = DIDmsg_p2req_readpda;
|
||||
msg->msglen = sizeof(msg);
|
||||
strcpy(msg->devname, wlandev->name);
|
||||
msg->pda.did = DIDmsg_p2req_readpda_pda;
|
||||
msg->pda.len = HFA384x_PDA_LEN_MAX;
|
||||
msg->pda.status = P80211ENUM_msgitem_status_no_value;
|
||||
msg->resultcode.did = DIDmsg_p2req_readpda_resultcode;
|
||||
msg->resultcode.len = sizeof(u32);
|
||||
msg->resultcode.status = P80211ENUM_msgitem_status_no_value;
|
||||
|
||||
if (prism2mgmt_readpda(wlandev, &msg) != 0) {
|
||||
if (prism2mgmt_readpda(wlandev, msg) != 0) {
|
||||
/* prism2mgmt_readpda prints an errno if appropriate */
|
||||
result = -1;
|
||||
} else if (msg.resultcode.data == P80211ENUM_resultcode_success) {
|
||||
memcpy(pda->buf, msg.pda.data, HFA384x_PDA_LEN_MAX);
|
||||
} else if (msg->resultcode.data == P80211ENUM_resultcode_success) {
|
||||
memcpy(pda->buf, msg->pda.data, HFA384x_PDA_LEN_MAX);
|
||||
result = mkpdrlist(pda);
|
||||
} else {
|
||||
/* resultcode must've been something other than success */
|
||||
result = -1;
|
||||
}
|
||||
|
||||
kfree(msg);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue