diff options
author | Zhu Yi <chuyee@debian.sh.intel.com> | 2005-08-05 05:17:35 -0400 |
---|---|---|
committer | James Ketrenos <jketreno@linux.intel.com> | 2005-11-07 18:50:34 -0500 |
commit | 87b016cb64b267a6f791494a4cfd84e84e022ebb (patch) | |
tree | ed62edcd2685229da636be3e605a309e89759607 | |
parent | 4f36f8088ada6c63719a970616078887f82e226c (diff) |
Workaround kernel BUG_ON panic caused by unexpected duplicate packets.
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
-rw-r--r-- | drivers/net/wireless/ipw2200.c | 6 |
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, | |||
7696 | static inline int is_duplicate_packet(struct ipw_priv *priv, | 7696 | static 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 | ||