summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhu Yi <yi.zhu@intel.com>2006-12-20 16:11:58 +0800
committerJohn W. Linville <linville@tuxdriver.com>2007-01-02 20:56:26 -0500
commitfe5f8e2a1c5c040209c598a28e19c55f30e1040d (patch)
treed8518e8e32f19144083ca3bcb2dfda25601aa5d9
parent3eb546057dd65ec75c900c9948684ffd5e617630 (diff)
downloadkernel-crypto-fe5f8e2a1c5c040209c598a28e19c55f30e1040d.tar.gz
kernel-crypto-fe5f8e2a1c5c040209c598a28e19c55f30e1040d.tar.xz
kernel-crypto-fe5f8e2a1c5c040209c598a28e19c55f30e1040d.zip
[PATCH] ipw2100: Fix dropping fragmented small packet problem
The rx_data.header struct is ieee80211_hdr_4addr. If a wireless frame uses ieee80211_hdr_3addr header and is less than 6 bytes, it will be discarded. This is not likely going to happen for normal packets (since there is TCP, IP headers). But if fragmentation is used, there will be such small trailing packets. And they will be lost for ever. Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ipw2100.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index 0e94fbbf7a9..b85857a8487 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -2664,7 +2664,7 @@ static void __ipw2100_rx_process(struct ipw2100_priv *priv)
break;
}
#endif
- if (stats.len < sizeof(u->rx_data.header))
+ if (stats.len < sizeof(struct ieee80211_hdr_3addr))
break;
switch (WLAN_FC_GET_TYPE(u->rx_data.header.frame_ctl)) {
case IEEE80211_FTYPE_MGMT: