wok-6.x view linux/stuff/mac80211.compat08082009.wl_frag+ack_v1.patch @ rev 18326
docbook-xsl: missing file
author | Xander Ziiryanoff <psychomaniak@xakep.ru> |
---|---|
date | Tue Sep 08 13:06:01 2015 +0200 (2015-09-08) |
parents | a1084fda7f23 |
children | ffc20f9bd49f |
line source
1 diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
2 index 0855cac..221bed6 100644
3 --- a/net/mac80211/tx.c
4 +++ b/net/mac80211/tx.c
5 @@ -677,11 +677,19 @@ int tid;
7 /*
8 * Packet injection may want to control the sequence
9 - * number, if we have no matching interface then we
10 - * neither assign one ourselves nor ask the driver to.
11 + * number, so if an injected packet is found, skip
12 + * renumbering it. Also make the packet NO_ACK to avoid
13 + * excessive retries (ACKing and retrying should be
14 + * handled by the injecting application).
15 + * FIXME This may break hostapd and some other injectors.
16 + * This should be done using a radiotap flag.
17 */
18 - if (unlikely(info->control.vif->type == NL80211_IFTYPE_MONITOR))
19 + if (unlikely((info->flags & IEEE80211_TX_CTL_INJECTED) &&
20 + !(tx->sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES))) {
21 + if (!ieee80211_has_morefrags(hdr->frame_control))
22 + info->flags |= IEEE80211_TX_CTL_NO_ACK;
23 return TX_CONTINUE;
24 + }
26 if (unlikely(ieee80211_is_ctl(hdr->frame_control)))
27 return TX_CONTINUE;