summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-09-14 23:29:55 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-09-22 16:15:04 -0300
commitc3334377eb71906d8e19d7a23743bbf3af5002d2 (patch)
treef734fced1995ab6fd47cfe5fbec657d3e983d7a8
parentd82c678f5222370f93f4947272b1fd3a07b038c2 (diff)
linux-libre-4.2_gnu-4: fix bridge networking -> https://bugzilla.kernel.org/show_bug.cgi?id=104161
-rw-r--r--libre-testing/linux-libre/0001-fix-bridge-regression.patch25
-rw-r--r--libre-testing/linux-libre/PKGBUILD10
-rw-r--r--libre-testing/linux-libre/linux.install4
3 files changed, 35 insertions, 4 deletions
diff --git a/libre-testing/linux-libre/0001-fix-bridge-regression.patch b/libre-testing/linux-libre/0001-fix-bridge-regression.patch
new file mode 100644
index 000000000..250dfcbcf
--- /dev/null
+++ b/libre-testing/linux-libre/0001-fix-bridge-regression.patch
@@ -0,0 +1,25 @@
+@@ -, +, @@
+---
+ net/bridge/br_multicast.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+--- a/net/bridge/br_multicast.c
++++ a/net/bridge/br_multicast.c
+@@ -991,7 +991,7 @@ static int br_ip4_multicast_igmp3_report(struct net_bridge *br,
+
+ ih = igmpv3_report_hdr(skb);
+ num = ntohs(ih->ngrec);
+- len = sizeof(*ih);
++ len = skb_transport_offset(skb) + sizeof(*ih);
+
+ for (i = 0; i < num; i++) {
+ len += sizeof(*grec);
+@@ -1052,7 +1052,7 @@ static int br_ip6_multicast_mld2_report(struct net_bridge *br,
+
+ icmp6h = icmp6_hdr(skb);
+ num = ntohs(icmp6h->icmp6_dataun.un_data16[1]);
+- len = sizeof(*icmp6h);
++ len = skb_transport_offset(skb) + sizeof(*icmp6h);
+
+ for (i = 0; i < num; i++) {
+ __be16 *nsrcs, _nsrcs;
+--
diff --git a/libre-testing/linux-libre/PKGBUILD b/libre-testing/linux-libre/PKGBUILD
index 80b1f9bd2..9978e3a24 100644
--- a/libre-testing/linux-libre/PKGBUILD
+++ b/libre-testing/linux-libre/PKGBUILD
@@ -19,7 +19,7 @@ _replacesoldmodules=('linux-libre%-kmod-alx') # '%' gets replaced with _kernelna
_srcname=linux-${_pkgbasever%-*}
_archpkgver=${_pkgver%-*}
pkgver=${_pkgver//-/_}
-pkgrel=3
+pkgrel=4
arch=('i686' 'x86_64')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
@@ -42,6 +42,7 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/li
'change-default-console-loglevel.patch'
'0001-e1000e-Fix-tight-loop-implementation-of-systime-read.patch'
'0001-netfilter-conntrack-use-nf_ct_tmpl_free-in-CT-synpro.patch'
+ '0001-fix-bridge-regression.patch'
'0001-drm-radeon-Make-the-driver-load-without-the-firmwares.patch')
sha256sums=('3a8fc9da5a38f15cc4ed0c5132d05b8245dfc1007c37e7e1994b2486535ecf49'
'SKIP'
@@ -57,6 +58,7 @@ sha256sums=('3a8fc9da5a38f15cc4ed0c5132d05b8245dfc1007c37e7e1994b2486535ecf49'
'1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
'0b1e41ba59ae45f5929963aa22fdc53bc8ffb4534e976cec046269d1a462197b'
'6ed9e31ae5614c289c4884620e45698e764c03670ebc45bab9319d741238cbd3'
+ '0a8fe4434e930d393c7983e335842f6cb77ee263af5592a0ca7e14bae7296183'
'61370b766e0c60b407c29d2c44b3f55fc352e9049c448bc8fcddb0efc53e42fc')
validpgpkeys=(
'474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva
@@ -96,6 +98,10 @@ prepare() {
# many instances of this error: nf_conntrack: table full, dropping packet
patch -p1 -i "${srcdir}/0001-netfilter-conntrack-use-nf_ct_tmpl_free-in-CT-synpro.patch"
+ # add not-yes-mainlined patch to fix bridge code
+ # https://bugzilla.kernel.org/show_bug.cgi?id=104161
+ patch -Np1 -i "${srcdir}/0001-fix-bridge-regression.patch"
+
# set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
# remove this when a Kconfig knob is made available by upstream
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
@@ -103,7 +109,7 @@ prepare() {
# Make the radeon driver load without the firmwares
# http://www.fsfla.org/pipermail/linux-libre/2015-August/003098.html
- patch -Np1 -i ../0001-drm-radeon-Make-the-driver-load-without-the-firmwares.patch
+ patch -p1 -i "${srcdir}/0001-drm-radeon-Make-the-driver-load-without-the-firmwares.patch"
cat "${srcdir}/config.${CARCH}" > ./.config
diff --git a/libre-testing/linux-libre/linux.install b/libre-testing/linux-libre/linux.install
index 32514d892..70e177ef2 100644
--- a/libre-testing/linux-libre/linux.install
+++ b/libre-testing/linux-libre/linux.install
@@ -8,7 +8,7 @@ post_install () {
# updating module dependencies
echo ">>> Updating module dependencies. Please wait ..."
depmod ${KERNEL_VERSION}
- echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
+ echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
mkinitcpio -p linux-libre${KERNEL_NAME}
}
@@ -20,7 +20,7 @@ post_upgrade() {
# updating module dependencies
echo ">>> Updating module dependencies. Please wait ..."
depmod ${KERNEL_VERSION}
- echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
+ echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
mkinitcpio -p linux-libre${KERNEL_NAME}
if [ $(vercmp $2 3.13) -lt 0 ]; then