summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO23
-rw-r--r--PKGBUILD13
-rw-r--r--fix-race-in-PRT-wait-for-completion-simple-wait-code_Nvidia-RT-160319.patch75
3 files changed, 17 insertions, 94 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 4dd8c60..a6ece56 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,8 @@
-# Generated by makepkg 5.1.2
-# Tue Feb 26 12:02:47 UTC 2019
+# Generated by makepkg 5.1.3
+# Thu Mar 14 12:47:35 UTC 2019
pkgbase = linux-rt-lts
- pkgver = 4.14.93_rt53
- pkgrel = 2
+ pkgver = 4.14.103_rt55
+ pkgrel = 1
url = https://git.archlinux.org/linux.git/log/?h=v
arch = x86_64
license = GPL2
@@ -15,12 +15,11 @@ pkgbase = linux-rt-lts
makedepends = python-sphinx
makedepends = graphviz
options = !strip
- source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.14.93.tar.xz
- source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.14.93.tar.sign
- source = https://www.kernel.org/pub/linux/kernel/projects/rt/4.14/older/patch-4.14.93-rt53.patch.xz
- source = https://www.kernel.org/pub/linux/kernel/projects/rt/4.14/older/patch-4.14.93-rt53.patch.sign
+ source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.14.103.tar.xz
+ source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.14.103.tar.sign
+ source = https://www.kernel.org/pub/linux/kernel/projects/rt/4.14/older/patch-4.14.103-rt55.patch.xz
+ source = https://www.kernel.org/pub/linux/kernel/projects/rt/4.14/older/patch-4.14.103-rt55.patch.sign
source = 0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch
- source = fix-race-in-PRT-wait-for-completion-simple-wait-code_Nvidia-RT-160319.patch
source = config
source = 60-linux-rt-lts.hook
source = 90-linux-rt-lts.hook
@@ -31,12 +30,12 @@ pkgbase = linux-rt-lts
validpgpkeys = 64254695FFF0AA4466CC19E67B96E8162A8CF5D1
validpgpkeys = 5ED9A48FC54C0A22D1D0804CEBC26CDB5A56DE73
validpgpkeys = E644E2F1D45FA0B2EAA02F33109F098506FF0B14
- sha256sums = bb125fb204f7089782e179126121dd0f0aad9f02b7517ce3744982254c221bad
+ validpgpkeys = 5BDFC45C2ECC5387D50CE5EFDE09826778A38521
+ sha256sums = 7aa43e34e4c9e5965da29cef5ae196e06006f8c0d1d65fd755a2f197f0796a11
sha256sums = SKIP
- sha256sums = 151bc28f2b33d952dac8b8d5059f18205f89002c9b58a523cdfe2e1a26646d4d
+ sha256sums = cf34816297240dccdd36539c517280ac06855f371d3dca33ea5ae6ed85039631
sha256sums = SKIP
sha256sums = 75aa8dd708ca5a0137fbf7cddc9cafefe6aac6b8e0638c06c156d412d05af4bc
- sha256sums = 85f7612edfa129210343d6a4fe4ba2a4ac3542d98b7e28c8896738e7e6541c06
sha256sums = 50b5311f7c0a2848b3a280d7ad6c61695f3613cfe7b110c8aaff5bfa3412d1cd
sha256sums = ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21
sha256sums = 75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919
diff --git a/PKGBUILD b/PKGBUILD
index 3df488c..1c254ad 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,10 +7,10 @@
#pkgbase=linux # Build stock -ARCH kernel
pkgbase=linux-rt-lts # Build kernel with a different name
-_pkgver=4.14.93
-_rtpatchver=rt53
+_pkgver=4.14.103
+_rtpatchver=rt55
pkgver=${_pkgver}_${_rtpatchver}
-pkgrel=2
+pkgrel=1
arch=(x86_64)
url="https://git.archlinux.org/linux.git/log/?h=v$_srcver"
license=(GPL2)
@@ -23,7 +23,6 @@ source=(
"https://www.kernel.org/pub/linux/kernel/projects/rt/4.14/older/patch-${_pkgver}-${_rtpatchver}.patch.xz"
"https://www.kernel.org/pub/linux/kernel/projects/rt/4.14/older/patch-${_pkgver}-${_rtpatchver}.patch.sign"
0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch
- fix-race-in-PRT-wait-for-completion-simple-wait-code_Nvidia-RT-160319.patch
config # the main kernel config file
60-${pkgbase}.hook # pacman hook for depmod
90-${pkgbase}.hook # pacman hook for initramfs regeneration
@@ -36,13 +35,13 @@ validpgpkeys=(
'64254695FFF0AA4466CC19E67B96E8162A8CF5D1' # Sebastian Andrzej Siewior
'5ED9A48FC54C0A22D1D0804CEBC26CDB5A56DE73' # Steven Rostedt
'E644E2F1D45FA0B2EAA02F33109F098506FF0B14' # Thomas Gleixner
+ '5BDFC45C2ECC5387D50CE5EFDE09826778A38521' # Tom Zanussi
)
-sha256sums=('bb125fb204f7089782e179126121dd0f0aad9f02b7517ce3744982254c221bad'
+sha256sums=('7aa43e34e4c9e5965da29cef5ae196e06006f8c0d1d65fd755a2f197f0796a11'
'SKIP'
- '151bc28f2b33d952dac8b8d5059f18205f89002c9b58a523cdfe2e1a26646d4d'
+ 'cf34816297240dccdd36539c517280ac06855f371d3dca33ea5ae6ed85039631'
'SKIP'
'75aa8dd708ca5a0137fbf7cddc9cafefe6aac6b8e0638c06c156d412d05af4bc'
- '85f7612edfa129210343d6a4fe4ba2a4ac3542d98b7e28c8896738e7e6541c06'
'50b5311f7c0a2848b3a280d7ad6c61695f3613cfe7b110c8aaff5bfa3412d1cd'
'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21'
'75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919'
diff --git a/fix-race-in-PRT-wait-for-completion-simple-wait-code_Nvidia-RT-160319.patch b/fix-race-in-PRT-wait-for-completion-simple-wait-code_Nvidia-RT-160319.patch
deleted file mode 100644
index 7e9e9c8..0000000
--- a/fix-race-in-PRT-wait-for-completion-simple-wait-code_Nvidia-RT-160319.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From: Joakim Hernberg <jhernberg@alchemy.lu>
-Date: Sat, 19 Mar 2016 13:03:55 +0100
-Subject: [PATCH] Fix a race in the PRT wait for completion simple wait code
- for NVIDIA on the rt patch
-
--Note refactored again 160319.
-
--NOTE: this patch is a rebase of John Blackwood's patch. On his kernel, he must be using
--an older simple wait patch - as his applies to kernel/sched/core.c, while the simple wait
--completion code lives in kernel/sched/completion.c ... I have ported this to test with
--nvidia, as i would like to see if it fixes the semaphore issues i have seen.
-
--I've kept the original patch comment in tact;
-
-I'm not 100% sure that the patch below will fix your problem, but we
-saw something that sounds pretty familiar to your issue involving the
-nvidia driver and the preempt-rt patch. The nvidia driver uses the
-completion support to create their own driver's notion of an internally
-used semaphore.
-
-Fix a race in the PRT wait for completion simple wait code.
-
-A wait_for_completion() waiter task can be awoken by a task calling
-complete(), but fail to consume the 'done' completion resource if it
-looses a race with another task calling wait_for_completion() just as
-it is waking up.
-
-In this case, the awoken task will call schedule_timeout() again
-without being in the simple wait queue.
-
-So if the awoken task is unable to claim the 'done' completion resource,
-check to see if it needs to be re-inserted into the wait list before
-waiting again in schedule_timeout().
-
-Fix-by: John Blackwood <john.blackwood@ccur.com>
-
----
- kernel/sched/completion.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/kernel/sched/completion.c b/kernel/sched/completion.c
-index b62cf64..c01bbd8 100644
---- a/kernel/sched/completion.c
-+++ b/kernel/sched/completion.c
-@@ -61,11 +61,19 @@ static inline long __sched
- do_wait_for_common(struct completion *x,
- long (*action)(long), long timeout, int state)
- {
-+ int again = 0;
-+
- if (!x->done) {
- DECLARE_SWAITQUEUE(wait);
-
- __prepare_to_swait(&x->wait, &wait);
- do {
-+ /* Check to see if we lost race for 'done' and are
-+ * no longer in the wait list.
-+ */
-+ if (unlikely(again) && list_empty(&wait.task_list))
-+ __prepare_to_swait(&x->wait, &wait);
-+
- if (signal_pending_state(state, current)) {
- timeout = -ERESTARTSYS;
- break;
-@@ -74,6 +82,7 @@ do_wait_for_common(struct completion *x,
- raw_spin_unlock_irq(&x->wait.lock);
- timeout = action(timeout);
- raw_spin_lock_irq(&x->wait.lock);
-+ again = 1;
- } while (!x->done && timeout);
- __finish_swait(&x->wait, &wait);
- if (!x->done)
---
-2.7.2
-