summaryrefslogtreecommitdiff
path: root/drivers/staging/rtl8192e/rtllib.h
diff options
context:
space:
mode:
authorLarry Finger <Larry.Finger@lwfinger.net>2011-09-01 17:23:20 (GMT)
committerGreg Kroah-Hartman <gregkh@suse.de>2011-09-06 23:35:59 (GMT)
commit2eed3dee92453c1798f0932613b1b66f0763ab2e (patch)
tree44ff25dc51f603186073ff85bed655b70fde6e48 /drivers/staging/rtl8192e/rtllib.h
parent52a7fb0951b35840a79a5b162fb853b78cec3c09 (diff)
downloadlinux-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.h31
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,