wok-next diff linux/stuff/mac80211.compat08082009.wl_frag+ack_v1.patch @ rev 13936
gnome-games: fix build
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Sat Jan 26 17:04:10 2013 +0000 (2013-01-26) |
parents | |
children | a1084fda7f23 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/linux/stuff/mac80211.compat08082009.wl_frag+ack_v1.patch Sat Jan 26 17:04:10 2013 +0000 1.3 @@ -0,0 +1,27 @@ 1.4 +diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c 1.5 +index 0855cac..221bed6 100644 1.6 +--- a/net/mac80211/tx.c 1.7 ++++ b/net/mac80211/tx.c 1.8 +@@ -677,11 +677,19 @@ int tid; 1.9 + 1.10 + /* 1.11 + * Packet injection may want to control the sequence 1.12 +- * number, if we have no matching interface then we 1.13 +- * neither assign one ourselves nor ask the driver to. 1.14 ++ * number, so if an injected packet is found, skip 1.15 ++ * renumbering it. Also make the packet NO_ACK to avoid 1.16 ++ * excessive retries (ACKing and retrying should be 1.17 ++ * handled by the injecting application). 1.18 ++ * FIXME This may break hostapd and some other injectors. 1.19 ++ * This should be done using a radiotap flag. 1.20 + */ 1.21 +- if (unlikely(info->control.vif->type == NL80211_IFTYPE_MONITOR)) 1.22 ++ if (unlikely((info->flags & IEEE80211_TX_CTL_INJECTED) && 1.23 ++ !(tx->sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES))) { 1.24 ++ if (!ieee80211_has_morefrags(hdr->frame_control)) 1.25 ++ info->flags |= IEEE80211_TX_CTL_NO_ACK; 1.26 + return TX_CONTINUE; 1.27 ++ } 1.28 + 1.29 + if (unlikely(ieee80211_is_ctl(hdr->frame_control))) 1.30 + return TX_CONTINUE;