summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorcorp2015-06-09 03:11:17 -0400
committercorp2015-06-09 03:11:17 -0400
commit6aa03c027922604d92172a1dde494b9d0a4d1971 (patch)
tree427c10e3d9fa0b1423da6ef4b64887ea8ae57d32
parentb0758811ac19e05d0aaece631358679b17237c46 (diff)
downloadaur-6aa03c027922604d92172a1dde494b9d0a4d1971.tar.gz
Added source files, version change to 4.1_rc1
-rw-r--r--.SRCINFO12
-rw-r--r--50-1-mac80211.compat08082009.wl_frag+ack_v1.patch27
-rw-r--r--60-1-compatdrivers_chan_qos_frag.patch68
-rw-r--r--70-1-fix-channel-negative-1.patch14
-rw-r--r--PKGBUILD36
5 files changed, 134 insertions, 23 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 56c3963a65bc..169912cb7858 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,12 +1,16 @@
pkgbase = backports-patches-git
pkgdesc = frag+ack, chan_qos_frag, and chan-neg-1 patches for backports-patched.
- pkgver = r9.e8ff5f4
- pkgrel = 1
+ pkgver = 4.1_rc1
+ pkgrel = 2
url = https://backports.wiki.kernel.org/index.php/Main_Page
arch = any
license = GPL
- source = backports-patches-git::git+https://github.com/hellnet/backports-patches.git
- sha256sums = SKIP
+ source = 50-1-mac80211.compat08082009.wl_frag+ack_v1.patch
+ source = 60-1-compatdrivers_chan_qos_frag.patch
+ source = 70-1-fix-channel-negative-1.patch
+ sha256sums = aa31eb472ad45a5d731d81883172d16a61796e81d0bbac1f7eb5770d3f452869
+ sha256sums = ae81b9a3b68bd89caf2d21834f40089ba9b786e09d74e3f094acdbecdc38767b
+ sha256sums = 642742930215db30b7ac8ea2318b9428d8c7a1989b2c8452703f8fbf0b9e41ae
pkgname = backports-patches-git
diff --git a/50-1-mac80211.compat08082009.wl_frag+ack_v1.patch b/50-1-mac80211.compat08082009.wl_frag+ack_v1.patch
new file mode 100644
index 000000000000..f9a26d463857
--- /dev/null
+++ b/50-1-mac80211.compat08082009.wl_frag+ack_v1.patch
@@ -0,0 +1,27 @@
+diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
+index 0855cac..221bed6 100644
+--- a/net/mac80211/tx.c
++++ b/net/mac80211/tx.c
+@@ -780,11 +780,19 @@ int tid;
+
+ /*
+ * Packet injection may want to control the sequence
+- * number, if we have no matching interface then we
+- * neither assign one ourselves nor ask the driver to.
++ * number, so if an injected packet is found, skip
++ * renumbering it. Also make the packet NO_ACK to avoid
++ * excessive retries (ACKing and retrying should be
++ * handled by the injecting application).
++ * FIXME This may break hostapd and some other injectors.
++ * This should be done using a radiotap flag.
+ */
+- if (unlikely(info->control.vif->type == NL80211_IFTYPE_MONITOR))
++ if (unlikely((info->flags & IEEE80211_TX_CTL_INJECTED) &&
++ !(tx->sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES))) {
++ if (!ieee80211_has_morefrags(hdr->frame_control))
++ info->flags |= IEEE80211_TX_CTL_NO_ACK;
+ return TX_CONTINUE;
++ }
+
+ if (unlikely(ieee80211_is_ctl(hdr->frame_control)))
+ return TX_CONTINUE;
diff --git a/60-1-compatdrivers_chan_qos_frag.patch b/60-1-compatdrivers_chan_qos_frag.patch
new file mode 100644
index 000000000000..aa5f32c6c78b
--- /dev/null
+++ b/60-1-compatdrivers_chan_qos_frag.patch
@@ -0,0 +1,68 @@
+ *original patch by Mathy Vanhoef
+ *http://www.mathyvanhoef.com/2012/09/compat-wireless-injection-patch-for.html
+ *fixed in offset by Devil_D, t3kk3n
+diff -r 6b71629b673d drivers/net/wireless/rtl818x/rtl8187/dev.c
+--- a/drivers/net/wireless/rtl818x/rtl8187/dev.c Tue May 28 16:57:23 2013 -0400
++++ b/drivers/net/wireless/rtl818x/rtl8187/dev.c Tue May 28 17:16:15 2013 -0400
+@@ -252,8 +252,13 @@
+
+ flags |= ieee80211_get_tx_rate(dev, info)->hw_value << 24;
+ if (ieee80211_has_morefrags(tx_hdr->frame_control))
+- flags |= RTL818X_TX_DESC_FLAG_MOREFRAG;
+-
++ {
++ // If info->control.vif is NULL it's most likely in monitor mode
++ if (likely(info->control.vif != NULL && info->control.vif->type != NL80211_IFTYPE_MONITOR)) {
++ flags |= RTL818X_TX_DESC_FLAG_MOREFRAG;
++ }
++ }
++
+ /* HW will perform RTS-CTS when only RTS flags is set.
+ * HW will perform CTS-to-self when both RTS and CTS flags are set.
+ * RTS rate and RTS duration will be used also for CTS-to-self.
+
+diff -r 6b71629b673d net/mac80211/cfg.c
+--- a/net/mac80211/cfg.c Tue May 28 16:57:23 2013 -0400
++++ b/net/mac80211/cfg.c Tue May 28 17:16:15 2013 -0400
+@@ -839,7 +839,8 @@ ieee80211_vif_release_channel(sdata);
+ ret = ieee80211_vif_use_channel(sdata, chandef,
+ IEEE80211_CHANCTX_EXCLUSIVE);
+ }
+- } else if (local->open_count == local->monitors) {
++ // Patch: Always allow channel change, even if a normal virtual interface is present
++ } else /*if (local->open_count == local->monitors)*/ {
+ local->_oper_chandef = *chandef;
+ ieee80211_hw_config(local, 0);
+ }
+
+diff -r 6b71629b673d net/mac80211/tx.c
+--- a/net/mac80211/tx.c Tue May 28 16:57:23 2013 -0400
++++ b/net/mac80211/tx.c Tue May 28 17:16:15 2013 -0400
+@@ -1534,7 +1534,10 @@
+ }
+ }
+
+- ieee80211_set_qos_hdr(sdata, skb);
++ // Don't overwrite QoS header in monitor mode
++ if (likely(info->control.vif->type != NL80211_IFTYPE_MONITOR)) {
++ ieee80211_set_qos_hdr(sdata, skb);
++ }
+ ieee80211_tx(sdata, sta, skb, false);
+ }
+
+diff -r 6b71629b673d net/wireless/chan.c
+--- a/net/wireless/chan.c Tue May 28 16:57:23 2013 -0400
++++ b/net/wireless/chan.c Tue May 28 17:16:15 2013 -0400
+@@ -689,8 +689,10 @@ int cfg80211_set_monitor_channel(struct
+ {
+ if (!rdev->ops->set_monitor_channel)
+ return -EOPNOTSUPP;
+- if (!cfg80211_has_monitors_only(rdev))
+- return -EBUSY;
++ // Always allow user to change channel, even if there is another normal
++ // virtual interface using the device.
++ //if (!cfg80211_has_monitors_only(rdev))
++ // return -EBUSY;
+
+ return rdev_set_monitor_channel(rdev, chandef);
+ }
diff --git a/70-1-fix-channel-negative-1.patch b/70-1-fix-channel-negative-1.patch
new file mode 100644
index 000000000000..ad5b815b87b9
--- /dev/null
+++ b/70-1-fix-channel-negative-1.patch
@@ -0,0 +1,14 @@
+--- a/net/mac80211/cfg.c
++++ b/net/mac80211/cfg.c
+@@ -3904,9 +3905,9 @@ static int ieee80211_cfg_get_channel
+ if (chanctx_conf) {
+ *chandef = chanctx_conf->def;
+ ret = 0;
+- } else if (local->open_count > 0 &&
++ } else /*if (local->open_count > 0 &&
+ local->open_count == local->monitors &&
+- sdata->vif.type == NL80211_IFTYPE_MONITOR) {
++ sdata->vif.type == NL80211_IFTYPE_MONITOR)*/ {
+ if (local->use_chanctx)
+ *chandef = local->monitor_chandef;
+ else
diff --git a/PKGBUILD b/PKGBUILD
index 7f3303da2749..d99739361a41 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,30 +1,28 @@
# Maintainer: t3kk3n <corp [at] hush [dot] ai>
-pkgname=backports-patches-git
-pkgver=r9.e8ff5f4
-pkgrel=1
-pkgdesc="frag+ack, chan_qos_frag, and chan-neg-1 patches for backports-patched."
-url='https://backports.wiki.kernel.org/index.php/Main_Page'
-arch=('any')
-license=('GPL')
-source=('backports-patches-git::git+https://github.com/hellnet/backports-patches.git')
-sha256sums='SKIP'
+## Just to note - The version will match backports-patched
_p1="50-1-mac80211.compat08082009.wl_frag+ack_v1.patch"
_p2="60-1-compatdrivers_chan_qos_frag.patch"
_p3="70-1-fix-channel-negative-1.patch"
-pkgver() {
- cd "$srcdir/$pkgname"
- ( set -o pipefail
- git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' ||
- printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
- )
-}
+pkgname=backports-patches-git
+pkgver=4.1_rc1
+pkgrel=2
+pkgdesc="frag+ack, chan_qos_frag, and chan-neg-1 patches for backports-patched."
+url="https://backports.wiki.kernel.org/index.php/Main_Page"
+arch=('any')
+license=('GPL')
+source=("50-1-mac80211.compat08082009.wl_frag+ack_v1.patch"
+ "60-1-compatdrivers_chan_qos_frag.patch"
+ "70-1-fix-channel-negative-1.patch")
+sha256sums=('aa31eb472ad45a5d731d81883172d16a61796e81d0bbac1f7eb5770d3f452869'
+ 'ae81b9a3b68bd89caf2d21834f40089ba9b786e09d74e3f094acdbecdc38767b'
+ '642742930215db30b7ac8ea2318b9428d8c7a1989b2c8452703f8fbf0b9e41ae')
package() {
install -d "${pkgdir}"/etc/makepkg.d/backports-patched/patches
- install -m0644 "${srcdir}/${pkgname}/${_p1}" "${pkgdir}"/etc/makepkg.d/backports-patched/patches/${_p1}
- install -m0644 "${srcdir}/${pkgname}/${_p2}" "${pkgdir}"/etc/makepkg.d/backports-patched/patches/${_p2}
- install -m0644 "${srcdir}/${pkgname}/${_p3}" "${pkgdir}"/etc/makepkg.d/backports-patched/patches/${_p3}
+ install -m0644 "${srcdir}/${_p1}" "${pkgdir}"/etc/makepkg.d/backports-patched/patches/${_p1}
+ install -m0644 "${srcdir}/${_p2}" "${pkgdir}"/etc/makepkg.d/backports-patched/patches/${_p2}
+ install -m0644 "${srcdir}/${_p3}" "${pkgdir}"/etc/makepkg.d/backports-patched/patches/${_p3}
}