File: b43-injection-2.6.24.4.patch

package info (click to toggle)
aircrack-ng 1%3A1.6%2Bgit20210130.91820bc-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 19,056 kB
  • sloc: ansic: 67,045; cs: 5,392; sh: 3,773; python: 2,565; pascal: 1,074; asm: 570; makefile: 253; cpp: 46
file content (59 lines) | stat: -rw-r--r-- 2,907 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# Kernel >= 2.6.24.1 highly recommended
#  Fixes injection speed (up to 350 pps)
#  Fixes fragmented injection (requires mac80211 patch too)
diff -bBur linux-2.6.24.4/drivers/net/wireless/b43/main.c linux-2.6.24.4-sud/drivers/net/wireless/b43/main.c
--- linux-2.6.24.4/drivers/net/wireless/b43/main.c	2008-04-05 16:25:11.000000000 +0200
+++ linux-2.6.24.4-sud/drivers/net/wireless/b43/main.c	2008-04-05 16:45:11.000000000 +0200
@@ -2516,6 +2516,11 @@
 		goto out;
 	if (unlikely(b43_status(dev) < B43_STAT_STARTED))
 		goto out;
+
+	if (ctl->type == IEEE80211_IF_TYPE_MNTR) {
+		ctl->flags |= IEEE80211_TXCTL_NO_ACK;
+	}
+
 	/* DMA-TX is done without a global lock. */
 	if (b43_using_pio(dev)) {
 		spin_lock_irqsave(&wl->irq_lock, flags);
diff -bBur linux-2.6.24.4/drivers/net/wireless/b43/xmit.c linux-2.6.24.4-sud/drivers/net/wireless/b43/xmit.c
--- linux-2.6.24.4/drivers/net/wireless/b43/xmit.c	2008-04-05 16:25:11.000000000 +0200
+++ linux-2.6.24.4-sud/drivers/net/wireless/b43/xmit.c	2008-04-05 16:48:51.000000000 +0200
@@ -295,7 +295,8 @@
 	/* MAC control */
 	if (!(txctl->flags & IEEE80211_TXCTL_NO_ACK))
 		mac_ctl |= B43_TX4_MAC_ACK;
-	if (!(((fctl & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_CTL) &&
+	if ( (txctl->type != IEEE80211_IF_TYPE_MNTR) &&
+	      !(((fctl & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_CTL) &&
 	      ((fctl & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_PSPOLL)))
 		mac_ctl |= B43_TX4_MAC_HWSEQ;
 	if (txctl->flags & IEEE80211_TXCTL_FIRST_FRAGMENT)
diff -bBur linux-2.6.24.4/drivers/net/wireless/b43legacy/main.c linux-2.6.24.4-sud/drivers/net/wireless/b43legacy/main.c
--- linux-2.6.24.4/drivers/net/wireless/b43legacy/main.c	2008-04-05 16:25:11.000000000 +0200
+++ linux-2.6.24.4-sud/drivers/net/wireless/b43legacy/main.c	2008-04-05 16:45:11.000000000 +0200
@@ -2379,6 +2379,11 @@
 		goto out;
 	if (unlikely(b43legacy_status(dev) < B43legacy_STAT_STARTED))
 		goto out;
+
+	if (ctl->type == IEEE80211_IF_TYPE_MNTR) {
+		ctl->flags |= IEEE80211_TXCTL_NO_ACK;
+	}
+
 	/* DMA-TX is done without a global lock. */
 	if (b43legacy_using_pio(dev)) {
 		spin_lock_irqsave(&wl->irq_lock, flags);
diff -bBur linux-2.6.24.4/drivers/net/wireless/b43legacy/xmit.c linux-2.6.24.4-sud/drivers/net/wireless/b43legacy/xmit.c
--- linux-2.6.24.4/drivers/net/wireless/b43legacy/xmit.c	2008-04-05 16:25:11.000000000 +0200
+++ linux-2.6.24.4-sud/drivers/net/wireless/b43legacy/xmit.c	2008-04-05 16:49:02.000000000 +0200
@@ -290,7 +290,8 @@
 	/* MAC control */
 	if (!(txctl->flags & IEEE80211_TXCTL_NO_ACK))
 		mac_ctl |= B43legacy_TX4_MAC_ACK;
-	if (!(((fctl & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_CTL) &&
+	if ( (txctl->type != IEEE80211_IF_TYPE_MNTR) &&
+	      !(((fctl & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_CTL) &&
 	      ((fctl & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_PSPOLL)))
 		mac_ctl |= B43legacy_TX4_MAC_HWSEQ;
 	if (txctl->flags & IEEE80211_TXCTL_FIRST_FRAGMENT)