aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorZhu Yi <chuyee@debian.sh.intel.com>2005-08-05 05:17:35 -0400
committerJames Ketrenos <jketreno@linux.intel.com>2005-11-07 18:50:34 -0500
commit87b016cb64b267a6f791494a4cfd84e84e022ebb (patch)
treeed62edcd2685229da636be3e605a309e89759607 /drivers
parent4f36f8088ada6c63719a970616078887f82e226c (diff)
Workaround kernel BUG_ON panic caused by unexpected duplicate packets.
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ipw2200.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index 6e79ae24ee1c..483993a4ca4b 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -7696,7 +7696,6 @@ static inline int is_network_packet(struct ipw_priv *priv,
7696static inline int is_duplicate_packet(struct ipw_priv *priv, 7696static inline int is_duplicate_packet(struct ipw_priv *priv,
7697 struct ieee80211_hdr_4addr *header) 7697 struct ieee80211_hdr_4addr *header)
7698{ 7698{
7699 u16 fc = le16_to_cpu(header->frame_ctl);
7700 u16 sc = le16_to_cpu(header->seq_ctl); 7699 u16 sc = le16_to_cpu(header->seq_ctl);
7701 u16 seq = WLAN_GET_SEQ_SEQ(sc); 7700 u16 seq = WLAN_GET_SEQ_SEQ(sc);
7702 u16 frag = WLAN_GET_SEQ_FRAG(sc); 7701 u16 frag = WLAN_GET_SEQ_FRAG(sc);
@@ -7760,7 +7759,10 @@ static inline int is_duplicate_packet(struct ipw_priv *priv,
7760 return 0; 7759 return 0;
7761 7760
7762 drop: 7761 drop:
7763 BUG_ON(!(fc & IEEE80211_FCTL_RETRY)); 7762 /* Comment this line now since we observed the card receives
7763 * duplicate packets but the FCTL_RETRY bit is not set in the
7764 * IBSS mode with fragmentation enabled.
7765 BUG_ON(!(le16_to_cpu(header->frame_ctl) & IEEE80211_FCTL_RETRY)); */
7764 return 1; 7766 return 1;
7765} 7767}
7766 7768