summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO6
-rw-r--r--0001-linux-4.6-rtlwifi-fix-atomic.patch70
-rw-r--r--PKGBUILD9
3 files changed, 82 insertions, 3 deletions
diff --git a/.SRCINFO b/.SRCINFO
index d5038182bde2..e9ecf9066a79 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,8 @@
# Generated by mksrcinfo v8
-# Thu Jul 28 14:21:02 UTC 2016
+# Thu Jul 28 21:05:19 UTC 2016
pkgbase = linux-rt-bfq
pkgver = 4.6.4_rt8
- pkgrel = 2
+ pkgrel = 3
url = http://algo.ing.unimo.it
arch = i686
arch = x86_64
@@ -26,6 +26,7 @@ pkgbase = linux-rt-bfq
source = change-default-console-loglevel.patch
source = config
source = config.x86_64
+ source = 0001-linux-4.6-rtlwifi-fix-atomic.patch
source = fix-race-in-PRT-wait-for-completion-simple-wait-code_Nvidia-RT-160319.patch
sha512sums = df5ee40b0ebd89914a900f63c32a481cb4f405d8f792b2d03ea167ce9c5bdf75154c7bd8ecd7ebac77a8dbf2b077c972cbfe6b95163e27c38c1fefc6ddbdfa0b
sha512sums = SKIP
@@ -42,6 +43,7 @@ pkgbase = linux-rt-bfq
sha512sums = d9d28e02e964704ea96645a5107f8b65cae5f4fb4f537e224e5e3d087fd296cb770c29ac76e0ce95d173bc420ea87fb8f187d616672a60a0cae618b0ef15b8c8
sha512sums = e24ffa4aaf145239bc0035e1853598cfd6b231c1a10373b840220a1799402f30cb39ecf71d56b4a76ddc9d953710dbe297e85f2686bba52da8d5d63816c10e0e
sha512sums = 2b461dc737582ddd77f7c9b15ff567d0d26d4d7f30e9511bfff5f884a57861b4d75e56ddb6cb37175fb7ef5f2a9cf333fb91bc696d0feb1ba011653194080457
+ sha512sums = dba709890b8f2f0d70e761ea27488801442647d6753bfd69364a7b343a74e78aff1d69209926460d23237c1d23806f720dd02b069cea68e5f3e12e4fbb2721fb
sha512sums = 86f717f596c613db3bc40624fd956ed379b8a2a20d1d99e076ae9061251fe9afba39cf536623eccd970258e124b8c2c05643e3d539f37bd910e02dc5dd498749
pkgname = linux-rt-bfq
diff --git a/0001-linux-4.6-rtlwifi-fix-atomic.patch b/0001-linux-4.6-rtlwifi-fix-atomic.patch
new file mode 100644
index 000000000000..e514ec85f906
--- /dev/null
+++ b/0001-linux-4.6-rtlwifi-fix-atomic.patch
@@ -0,0 +1,70 @@
+From de26859dcf363d520cc44e59f6dcaf20ebe0aadf Mon Sep 17 00:00:00 2001
+From: Larry Finger <Larry.Finger@lwfinger.net>
+Date: Sat, 21 May 2016 11:50:35 -0500
+Subject: rtlwifi: Fix scheduling while atomic error from commit 49f86ec21c01
+
+Commit 49f86ec21c01 ("rtlwifi: Change long delays to sleeps") was correct
+for most cases; however, driver rtl8192ce calls the affected routines while
+in atomic context. The kernel bug output is as follows:
+
+BUG: scheduling while atomic: wpa_supplicant/627/0x00000002
+[...]
+ [<ffffffff815c2b39>] __schedule+0x899/0xad0
+ [<ffffffff815c2dac>] schedule+0x3c/0x90
+ [<ffffffff815c5bb2>] schedule_hrtimeout_range_clock+0xa2/0x120
+ [<ffffffff810e8b80>] ? hrtimer_init+0x120/0x120
+ [<ffffffff815c5ba6>] ? schedule_hrtimeout_range_clock+0x96/0x120
+ [<ffffffff815c5c43>] schedule_hrtimeout_range+0x13/0x20
+ [<ffffffff815c568f>] usleep_range+0x4f/0x70
+ [<ffffffffa0667218>] rtl_rfreg_delay+0x38/0x50 [rtlwifi]
+ [<ffffffffa06dd0e7>] rtl92c_phy_config_rf_with_headerfile+0xc7/0xe0 [rtl8192ce]
+
+To fix this bug, three of the changes from delay to sleep are reverted.
+Unfortunately, one of the changes involves a delay of 50 msec. The calling
+code will be modified so that this long delay can be avoided; however,
+this change is being pushed now to fix the problem in kernel 4.6.0.
+
+Fixes: 49f86ec21c01 ("rtlwifi: Change long delays to sleeps")
+Reported-by: James Feeney <james@nurealm.net>
+Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
+Cc: James Feeney <james@nurealm.net>
+Cc: Stable <stable@vger.kernel.org> [4.6+]
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/realtek/rtlwifi/core.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/net/wireless/realtek/rtlwifi/core.c b/drivers/net/wireless/realtek/rtlwifi/core.c
+index 0f48048..3a0faa8 100644
+--- a/drivers/net/wireless/realtek/rtlwifi/core.c
++++ b/drivers/net/wireless/realtek/rtlwifi/core.c
+@@ -54,7 +54,7 @@ EXPORT_SYMBOL(channel5g_80m);
+ void rtl_addr_delay(u32 addr)
+ {
+ if (addr == 0xfe)
+- msleep(50);
++ mdelay(50);
+ else if (addr == 0xfd)
+ msleep(5);
+ else if (addr == 0xfc)
+@@ -75,7 +75,7 @@ void rtl_rfreg_delay(struct ieee80211_hw *hw, enum radio_path rfpath, u32 addr,
+ rtl_addr_delay(addr);
+ } else {
+ rtl_set_rfreg(hw, rfpath, addr, mask, data);
+- usleep_range(1, 2);
++ udelay(1);
+ }
+ }
+ EXPORT_SYMBOL(rtl_rfreg_delay);
+@@ -86,7 +86,7 @@ void rtl_bb_delay(struct ieee80211_hw *hw, u32 addr, u32 data)
+ rtl_addr_delay(addr);
+ } else {
+ rtl_set_bbreg(hw, addr, MASKDWORD, data);
+- usleep_range(1, 2);
++ udelay(1);
+ }
+ }
+ EXPORT_SYMBOL(rtl_bb_delay);
+--
+cgit v0.12
+
diff --git a/PKGBUILD b/PKGBUILD
index ac97b2e10e56..999de03d8d2e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -55,7 +55,7 @@ _srcname=linux-4.6
_pkgver=4.6.4
_rtpatchver=rt8
pkgver=${_pkgver}_${_rtpatchver}
-pkgrel=2
+pkgrel=3
arch=('i686' 'x86_64')
url="http://algo.ing.unimo.it"
license=('GPL2')
@@ -81,6 +81,7 @@ source=("http://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz"
'linux-rt-bfq.preset'
'change-default-console-loglevel.patch'
'config' 'config.x86_64'
+ '0001-linux-4.6-rtlwifi-fix-atomic.patch'
'fix-race-in-PRT-wait-for-completion-simple-wait-code_Nvidia-RT-160319.patch')
prepare() {
@@ -94,6 +95,11 @@ prepare() {
msg "Add rt patch"
patch -Np1 -i "${srcdir}/patch-${_pkgver}-${_rtpatchver}.patch"
+ ### fix rtlwifi atomic
+ # https://bugs.archlinux.org/task/49401
+ msg "0001-linux-4.6-rtlwifi-fix-atomic.patch"
+ patch -p1 -i "${srcdir}/0001-linux-4.6-rtlwifi-fix-atomic.patch"
+
### A patch to fix a problem that ought to be fixed in the NVIDIA source code.
# Stops X from hanging on certain NVIDIA cards
msg "Fix-race-in-PRT-wait-for-completion-simple-wait-code_Nvidia-RT.patch"
@@ -472,6 +478,7 @@ sha512sums=('df5ee40b0ebd89914a900f63c32a481cb4f405d8f792b2d03ea167ce9c5bdf75154
'd9d28e02e964704ea96645a5107f8b65cae5f4fb4f537e224e5e3d087fd296cb770c29ac76e0ce95d173bc420ea87fb8f187d616672a60a0cae618b0ef15b8c8'
'e24ffa4aaf145239bc0035e1853598cfd6b231c1a10373b840220a1799402f30cb39ecf71d56b4a76ddc9d953710dbe297e85f2686bba52da8d5d63816c10e0e'
'2b461dc737582ddd77f7c9b15ff567d0d26d4d7f30e9511bfff5f884a57861b4d75e56ddb6cb37175fb7ef5f2a9cf333fb91bc696d0feb1ba011653194080457'
+ 'dba709890b8f2f0d70e761ea27488801442647d6753bfd69364a7b343a74e78aff1d69209926460d23237c1d23806f720dd02b069cea68e5f3e12e4fbb2721fb'
'86f717f596c613db3bc40624fd956ed379b8a2a20d1d99e076ae9061251fe9afba39cf536623eccd970258e124b8c2c05643e3d539f37bd910e02dc5dd498749')
validpgpkeys=(