lkml.org 
[lkml]   [2017]   [Nov]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 267/294] Staging: wlan-ng: fix sparse warning in prism2fw.c
    3.16.50-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: A Raghavendra Rao <raghav3276@gmail.com>

    commit 41cb65c4854e14f12b1cbb8215e509d8ad4d0c88 upstream.

    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>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    drivers/staging/wlan-ng/prism2fw.c | 33 +++++++++++++++++++--------------
    1 file changed, 19 insertions(+), 14 deletions(-)

    --- a/drivers/staging/wlan-ng/prism2fw.c
    +++ b/drivers/staging/wlan-ng/prism2fw.c
    @@ -763,30 +763,35 @@ static int plugimage(struct imgchunk *fc
    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;
    }

    \
     
     \ /
      Last update: 2017-11-08 20:59    [W:4.613 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site