]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.19-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Dec 2019 20:11:17 +0000 (21:11 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Dec 2019 20:11:17 +0000 (21:11 +0100)
added patches:
revert-arm64-preempt-fix-big-endian-when-checking-preempt-count-in-assembly.patch

queue-4.19/revert-arm64-preempt-fix-big-endian-when-checking-preempt-count-in-assembly.patch [new file with mode: 0644]
queue-4.19/series

diff --git a/queue-4.19/revert-arm64-preempt-fix-big-endian-when-checking-preempt-count-in-assembly.patch b/queue-4.19/revert-arm64-preempt-fix-big-endian-when-checking-preempt-count-in-assembly.patch
new file mode 100644 (file)
index 0000000..745dea4
--- /dev/null
@@ -0,0 +1,56 @@
+From 3568eed989372764896b5a5f1cdb906bdad1854a Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Wed, 18 Dec 2019 21:09:37 +0100
+Subject: Revert "arm64: preempt: Fix big-endian when checking preempt count in assembly"
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+This reverts commit 64694b276d74c653051637caa4bfa5e8c27b30ad which is
+commit 7faa313f05cad184e8b17750f0cbe5216ac6debb upstream.
+
+Turns out one of the pre-requsite patches wasn't in 4.19.y, so this
+patch didn't make sense.  So let's revert it.
+
+Reported-by: Steven Rostedt <rostedt@goodmis.org>
+Reported-by: Will Deacon <will@kernel.org>
+Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Cc: Kevin Hilman <khilman@baylibre.com>
+Cc: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm64/include/asm/assembler.h |    8 +++++---
+ arch/arm64/kernel/entry.S          |    6 ++++--
+ 2 files changed, 9 insertions(+), 5 deletions(-)
+
+--- a/arch/arm64/include/asm/assembler.h
++++ b/arch/arm64/include/asm/assembler.h
+@@ -683,9 +683,11 @@ USER(\label, ic   ivau, \tmp2)                    // invali
+       .macro          if_will_cond_yield_neon
+ #ifdef CONFIG_PREEMPT
+       get_thread_info x0
+-      ldr             x0, [x0, #TSK_TI_PREEMPT]
+-      sub             x0, x0, #PREEMPT_DISABLE_OFFSET
+-      cbz             x0, .Lyield_\@
++      ldr             w1, [x0, #TSK_TI_PREEMPT]
++      ldr             x0, [x0, #TSK_TI_FLAGS]
++      cmp             w1, #PREEMPT_DISABLE_OFFSET
++      csel            x0, x0, xzr, eq
++      tbnz            x0, #TIF_NEED_RESCHED, .Lyield_\@       // needs rescheduling?
+       /* fall through to endif_yield_neon */
+       .subsection     1
+ .Lyield_\@ :
+--- a/arch/arm64/kernel/entry.S
++++ b/arch/arm64/kernel/entry.S
+@@ -622,8 +622,10 @@ el1_irq:
+       irq_handler
+ #ifdef CONFIG_PREEMPT
+-      ldr     x24, [tsk, #TSK_TI_PREEMPT]     // get preempt count
+-      cbnz    x24, 1f                         // preempt count != 0
++      ldr     w24, [tsk, #TSK_TI_PREEMPT]     // get preempt count
++      cbnz    w24, 1f                         // preempt count != 0
++      ldr     x0, [tsk, #TSK_TI_FLAGS]        // get flags
++      tbz     x0, #TIF_NEED_RESCHED, 1f       // needs rescheduling?
+       bl      el1_preempt
+ 1:
+ #endif
index d7ecc1b605c64559adef629341d1cf5315e73df4..e57b6fb5ab4479e28e3f15b5b046e4777bf471b4 100644 (file)
@@ -12,3 +12,4 @@ net-mlx5e-query-global-pause-state-before-setting-prio2buffer.patch
 tcp-fix-rejected-syncookies-due-to-stale-timestamps.patch
 tcp-tighten-acceptance-of-acks-not-matching-a-child-socket.patch
 tcp-protect-accesses-to-.ts_recent_stamp-with-read-write-_once.patch
+revert-arm64-preempt-fix-big-endian-when-checking-preempt-count-in-assembly.patch