diff options
author | Larry Finger <Larry.Finger@lwfinger.net> | 2011-09-01 17:23:20 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-09-06 23:35:59 (GMT) |
commit | 2eed3dee92453c1798f0932613b1b66f0763ab2e (patch) | |
tree | 44ff25dc51f603186073ff85bed655b70fde6e48 /drivers/staging/rtl8192e/rtllib.h | |
parent | 52a7fb0951b35840a79a5b162fb853b78cec3c09 (diff) | |
download | linux-fsl-qoriq-2eed3dee92453c1798f0932613b1b66f0763ab2e.tar.xz |
staging: rtl8192e: Fix smatch warnings regarding large arrays on stack
Smatch reports the follwing warnings:
CHECK drivers/staging/rtl8192e/rtllib_rx.c
drivers/staging/rtl8192e/rtllib_rx.c +552 RxReorderIndicatePacket(6) warn: 'prxbIndicateArray' puts 1024 bytes on stack
CHECK drivers/staging/rtl8192e/rtl819x_TSProc.c
drivers/staging/rtl8192e/rtl819x_TSProc.c +40 RxPktPendingTimeout(9) warn: 'stats_IndicateArray' puts 1024 bytes on stack
CHECK drivers/staging/rtl8192e/r8192E_phy.c
drivers/staging/rtl8192e/r8192E_phy.c +859 rtl8192_phy_SwChnlStepByStep(11) warn: function puts 797 bytes on stack
CHECK drivers/staging/rtl8192e/rtllib_rx.c
drivers/staging/rtl8192e/rtllib_rx.c +552 RxReorderIndicatePacket(6) warn: 'prxbIndicateArray' puts 1024 bytes on stack
These are fixed by adding the arrays in question as a union in a struct used
by nearly all routines.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/rtl8192e/rtllib.h')
-rw-r--r-- | drivers/staging/rtl8192e/rtllib.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/drivers/staging/rtl8192e/rtllib.h b/drivers/staging/rtl8192e/rtllib.h index c80460e..de25975 100644 --- a/drivers/staging/rtl8192e/rtllib.h +++ b/drivers/staging/rtl8192e/rtllib.h @@ -43,6 +43,10 @@ #include <linux/netdevice.h> #include <linux/if_arp.h> /* ARPHRD_ETHER */ +#define MAX_PRECMD_CNT 16 +#define MAX_RFDEPENDCMD_CNT 16 +#define MAX_POSTCMD_CNT 16 + #ifndef WIRELESS_SPY #define WIRELESS_SPY #endif @@ -208,6 +212,23 @@ struct cb_desc { u8 bIsBTProbRsp; }; +enum sw_chnl_cmd_id { + CmdID_End, + CmdID_SetTxPowerLevel, + CmdID_BBRegWrite10, + CmdID_WritePortUlong, + CmdID_WritePortUshort, + CmdID_WritePortUchar, + CmdID_RF_WriteReg, +}; + +struct sw_chnl_cmd { + enum sw_chnl_cmd_id CmdID; + u32 Para1; + u32 Para2; + u32 msDelay; +} __packed; + /*--------------------------Define -------------------------------------------*/ #define MGN_1M 0x02 #define MGN_2M 0x04 @@ -2416,6 +2437,16 @@ struct rtllib_device { struct work_struct wx_sync_scan_wq; struct workqueue_struct *wq; + union { + struct rtllib_rxb *RfdArray[REORDER_WIN_SIZE]; + struct rtllib_rxb *stats_IndicateArray[REORDER_WIN_SIZE]; + struct rtllib_rxb *prxbIndicateArray[REORDER_WIN_SIZE]; + struct { + struct sw_chnl_cmd PreCommonCmd[MAX_PRECMD_CNT]; + struct sw_chnl_cmd PostCommonCmd[MAX_POSTCMD_CNT]; + struct sw_chnl_cmd RfDependCmd[MAX_RFDEPENDCMD_CNT]; + }; + }; /* Callback functions */ void (*set_security)(struct net_device *dev, |