This commit is contained in:
Dan Ziemba 2016-08-01 18:31:05 -04:00
parent 0a7000d748
commit 6813e6088b
3 changed files with 7 additions and 85 deletions

View File

@ -1,7 +1,7 @@
# Generated by mksrcinfo v8 # Generated by mksrcinfo v8
# Wed Jul 27 05:54:52 UTC 2016 # Mon Aug 1 22:35:33 UTC 2016
pkgbase = linux-vfio pkgbase = linux-vfio
pkgver = 4.6.4 pkgver = 4.6.5
pkgrel = 1 pkgrel = 1
url = http://www.kernel.org/ url = http://www.kernel.org/
arch = i686 arch = i686
@ -16,24 +16,22 @@ pkgbase = linux-vfio
options = !strip options = !strip
source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.6.tar.xz source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.6.tar.xz
source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.6.tar.sign source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.6.tar.sign
source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.6.4.xz source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.6.5.xz
source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.6.4.sign source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.6.5.sign
source = config source = config
source = config.x86_64 source = config.x86_64
source = linux.preset source = linux.preset
source = change-default-console-loglevel.patch source = change-default-console-loglevel.patch
source = 0001-linux-4.6-rtlwifi-fix-atomic.patch
source = 0001-Updated-ACS-override-patch-for-4.6.2.patch source = 0001-Updated-ACS-override-patch-for-4.6.2.patch
source = 0001-Updated-i915-vga-arbiter-patch-for-4.6.2.patch source = 0001-Updated-i915-vga-arbiter-patch-for-4.6.2.patch
sha256sums = a93771cd5a8ad27798f22e9240538dfea48d3a2bf2a6a6ab415de3f02d25d866 sha256sums = a93771cd5a8ad27798f22e9240538dfea48d3a2bf2a6a6ab415de3f02d25d866
sha256sums = SKIP sha256sums = SKIP
sha256sums = f500a3b841c41420914938d681e258c712fbbd7ebec5fe70f0abc071a1738e47 sha256sums = 857df33f085a0116b9d2322ffe3b23d5b7d8c4898427d79f68108a653e84910c
sha256sums = SKIP sha256sums = SKIP
sha256sums = 02e8b02e8cd10aa059917a489a9663e7f66bdf12c5ae8a1e0369bb2862da6b68 sha256sums = 02e8b02e8cd10aa059917a489a9663e7f66bdf12c5ae8a1e0369bb2862da6b68
sha256sums = d59014b8f887c6aa9488ef5ff9bc5d4357850a979f3ff90a2999bbe24e5c6e15 sha256sums = d59014b8f887c6aa9488ef5ff9bc5d4357850a979f3ff90a2999bbe24e5c6e15
sha256sums = f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c sha256sums = f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c
sha256sums = 1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99 sha256sums = 1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99
sha256sums = ae0d16e81a915fae130125ba9d0b6fd2427e06f50b8b9514abc4029efe61ee98
sha256sums = 7568f319f0cffbf27e79a781e7a21cfe62771bd14ea09d671919368c4f3fcd2f sha256sums = 7568f319f0cffbf27e79a781e7a21cfe62771bd14ea09d671919368c4f3fcd2f
sha256sums = 6dc172c2ef277223aa59806a2edda7efc4f94d2bf68b6bf2b1d0413e84b9e260 sha256sums = 6dc172c2ef277223aa59806a2edda7efc4f94d2bf68b6bf2b1d0413e84b9e260

View File

@ -1,70 +0,0 @@
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

View File

@ -2,7 +2,7 @@
pkgbase=linux-vfio pkgbase=linux-vfio
_srcname=linux-4.6 _srcname=linux-4.6
pkgver=4.6.4 pkgver=4.6.5
pkgrel=1 pkgrel=1
arch=('i686' 'x86_64') arch=('i686' 'x86_64')
url="http://www.kernel.org/" url="http://www.kernel.org/"
@ -18,18 +18,16 @@ source=("https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz"
# standard config files for mkinitcpio ramdisk # standard config files for mkinitcpio ramdisk
'linux.preset' 'linux.preset'
'change-default-console-loglevel.patch' 'change-default-console-loglevel.patch'
'0001-linux-4.6-rtlwifi-fix-atomic.patch'
'0001-Updated-ACS-override-patch-for-4.6.2.patch' '0001-Updated-ACS-override-patch-for-4.6.2.patch'
'0001-Updated-i915-vga-arbiter-patch-for-4.6.2.patch') '0001-Updated-i915-vga-arbiter-patch-for-4.6.2.patch')
sha256sums=('a93771cd5a8ad27798f22e9240538dfea48d3a2bf2a6a6ab415de3f02d25d866' sha256sums=('a93771cd5a8ad27798f22e9240538dfea48d3a2bf2a6a6ab415de3f02d25d866'
'SKIP' 'SKIP'
'f500a3b841c41420914938d681e258c712fbbd7ebec5fe70f0abc071a1738e47' '857df33f085a0116b9d2322ffe3b23d5b7d8c4898427d79f68108a653e84910c'
'SKIP' 'SKIP'
'02e8b02e8cd10aa059917a489a9663e7f66bdf12c5ae8a1e0369bb2862da6b68' '02e8b02e8cd10aa059917a489a9663e7f66bdf12c5ae8a1e0369bb2862da6b68'
'd59014b8f887c6aa9488ef5ff9bc5d4357850a979f3ff90a2999bbe24e5c6e15' 'd59014b8f887c6aa9488ef5ff9bc5d4357850a979f3ff90a2999bbe24e5c6e15'
'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c' 'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c'
'1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99' '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
'ae0d16e81a915fae130125ba9d0b6fd2427e06f50b8b9514abc4029efe61ee98'
'7568f319f0cffbf27e79a781e7a21cfe62771bd14ea09d671919368c4f3fcd2f' '7568f319f0cffbf27e79a781e7a21cfe62771bd14ea09d671919368c4f3fcd2f'
'6dc172c2ef277223aa59806a2edda7efc4f94d2bf68b6bf2b1d0413e84b9e260') '6dc172c2ef277223aa59806a2edda7efc4f94d2bf68b6bf2b1d0413e84b9e260')
validpgpkeys=( validpgpkeys=(
@ -53,10 +51,6 @@ prepare() {
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227) # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
patch -p1 -i "${srcdir}/change-default-console-loglevel.patch" patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"
# fix rtlwifi atomic
# https://bugs.archlinux.org/task/49401
patch -p1 -i "${srcdir}/0001-linux-4.6-rtlwifi-fix-atomic.patch"
if [ "${CARCH}" = "x86_64" ]; then if [ "${CARCH}" = "x86_64" ]; then
cat "${srcdir}/config.x86_64" > ./.config cat "${srcdir}/config.x86_64" > ./.config
else else