Compiling drivers/staging/rtl8192u/ gives 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=]
This patch fixes it by replacing the statically allocated array `prxbIndicateArray` with kmalloc'd one. Signed-off-by: Okash Khawaja <okash.khaw...@gmail.com> --- drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c index 130c852..d89e99a 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; -- 2.5.2 _______________________________________________ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel