summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-wireless/ipw2200/files/ipw2200-1.0.6-dup-without-retry.patch')
-rw-r--r--net-wireless/ipw2200/files/ipw2200-1.0.6-dup-without-retry.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/net-wireless/ipw2200/files/ipw2200-1.0.6-dup-without-retry.patch b/net-wireless/ipw2200/files/ipw2200-1.0.6-dup-without-retry.patch
new file mode 100644
index 000000000000..7f79ec0fd32d
--- /dev/null
+++ b/net-wireless/ipw2200/files/ipw2200-1.0.6-dup-without-retry.patch
@@ -0,0 +1,32 @@
+Walkaround kernel BUG_ON panic caused by unexpected duplicate packets.
+
+Signed-off-by: Zhu Yi <yi.zhu@intel.com>
+---
+
+ ipw2200-1.0.6-chuyee/ipw2200.c | 6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+diff -puN ipw2200.c~dup-without-retry ipw2200.c
+--- ipw2200-1.0.6/ipw2200.c~dup-without-retry 2005-08-03 13:59:11.000000000 +0800
++++ ipw2200-1.0.6-chuyee/ipw2200.c 2005-08-03 14:51:52.000000000 +0800
+@@ -7698,7 +7698,6 @@ static inline int is_network_packet(stru
+ static inline int is_duplicate_packet(struct ipw_priv *priv,
+ struct ieee80211_hdr *header)
+ {
+- u16 fc = le16_to_cpu(header->frame_ctl);
+ u16 sc = le16_to_cpu(header->seq_ctl);
+ u16 seq = WLAN_GET_SEQ_SEQ(sc);
+ u16 frag = WLAN_GET_SEQ_FRAG(sc);
+@@ -7759,7 +7758,10 @@ static inline int is_duplicate_packet(st
+ return 0;
+
+ drop:
+- BUG_ON(!(fc & IEEE80211_FCTL_RETRY));
++ /* Comment this line now since we observed the card receives
++ * duplicate packets but the FCTL_RETRY bit is not set in the
++ * IBSS mode with fragmentation enabled.
++ BUG_ON(!(le16_to_cpu(header->frame_ctl) & IEEE80211_FCTL_RETRY)); */
+ return 1;
+ }
+
+_