This patch fixes following compiler warning:

drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c: In function
‘RxReorderIndicatePacket’:
drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c:758:1: warning: the
frame size of 1064 bytes is larger than 1024 bytes
[-Wframe-larger-than=]

It replaces the statically allocated array prxbIndicateArray with
a kmalloc'd one.

Signed-off-by: Okash Khawaja <okash.khaw...@gmail.com>
---
 drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c 
b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c
index 130c852..77eed52 100644
--- a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c
+++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c
@@ -594,12 +594,22 @@ static void RxReorderIndicatePacket(struct 
ieee80211_device *ieee,
 {
        PRT_HIGH_THROUGHPUT     pHTInfo = ieee->pHTInfo;
        PRX_REORDER_ENTRY       pReorderEntry = NULL;
-       struct ieee80211_rxb *prxbIndicateArray[REORDER_WIN_SIZE];
+       struct ieee80211_rxb **prxbIndicateArray;
        u8                      WinSize = pHTInfo->RxReorderWinSize;
        u16                     WinEnd = (pTS->RxIndicateSeq + WinSize -1)%4096;
        u8                      index = 0;
        bool                    bMatchWinStart = false, bPktInBuf = false;
        IEEE80211_DEBUG(IEEE80211_DL_REORDER,"%s(): Seq is 
%d,pTS->RxIndicateSeq is %d, WinSize is 
%d\n",__func__,SeqNum,pTS->RxIndicateSeq,WinSize);
+
+       prxbIndicateArray = kmalloc(sizeof(struct ieee80211_rxb *) *
+                       REORDER_WIN_SIZE, GFP_KERNEL);
+       if (!prxbIndicateArray) {
+               IEEE80211_DEBUG(IEEE80211_DL_ERR,
+                               "%s(): kmalloc prxbIndicateArray error\n",
+                               __func__);
+               return;
+       }
+
        /* Rx Reorder initialize condition.*/
        if (pTS->RxIndicateSeq == 0xffff) {
                pTS->RxIndicateSeq = SeqNum;
@@ -618,6 +628,8 @@ static void RxReorderIndicatePacket(struct ieee80211_device 
*ieee,
                        kfree(prxb);
                        prxb = NULL;
                }
+
+               kfree(prxbIndicateArray);
                return;
        }
 
@@ -741,6 +753,7 @@ static void RxReorderIndicatePacket(struct ieee80211_device 
*ieee,
                // Indicate packets
                if(index>REORDER_WIN_SIZE){
                        IEEE80211_DEBUG(IEEE80211_DL_ERR, 
"RxReorderIndicatePacket(): Rx Reorer buffer full!! \n");
+                       kfree(prxbIndicateArray);
                        return;
                }
                ieee80211_indicate_packets(ieee, prxbIndicateArray, index);
-- 
2.5.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to