Revert "arm64: preempt: Fix big-endian when checking preempt count in assembly"
This commit is contained in:
parent
278eae7330
commit
f73fafb39e
|
@ -77,7 +77,6 @@ linux (4.19.88-1) UNRELEASED; urgency=medium
|
|||
- platform/x86: mlx-platform: Fix LED configuration
|
||||
- ARM: OMAP1: fix USB configuration for device-only setups
|
||||
- RDMA/hns: Fix the bug while use multi-hop of pbl
|
||||
- arm64: preempt: Fix big-endian when checking preempt count in assembly
|
||||
- RDMA/vmw_pvrdma: Use atomic memory allocation in create AH
|
||||
- PM / AVS: SmartReflex: NULL check before some freeing functions is not needed
|
||||
- xfs: zero length symlinks are not valid
|
||||
|
|
57
debian/patches/debian/Revert-arm64-preempt-Fix-big-endian-when-checking-pr.patch
vendored
Normal file
57
debian/patches/debian/Revert-arm64-preempt-Fix-big-endian-when-checking-pr.patch
vendored
Normal file
|
@ -0,0 +1,57 @@
|
|||
From: Salvatore Bonaccorso <carnil@debian.org>
|
||||
Date: Tue, 17 Dec 2019 15:18:10 +0100
|
||||
Subject: Revert "arm64: preempt: Fix big-endian when checking preempt count in
|
||||
assembly"
|
||||
Bug: https://lore.kernel.org/stable/20191214021403.GA1357@home.goodmis.org/
|
||||
|
||||
As reported[1] by Steven Rostedt while updating 4.19-rt, the change
|
||||
breaks without having as well 396244692232f ("arm64: preempt: Provide
|
||||
our own implementation of asm/preempt.h").
|
||||
|
||||
[1]: <https://lore.kernel.org/stable/20191214021403.GA1357@home.goodmis.org/>
|
||||
|
||||
Signed-off-by: Salvatore Bonaccorso <carnil@debian.org>
|
||||
---
|
||||
arch/arm64/include/asm/assembler.h | 8 +++++---
|
||||
arch/arm64/kernel/entry.S | 6 ++++--
|
||||
2 files changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h
|
||||
index 0c100506a29a..5a97ac853168 100644
|
||||
--- a/arch/arm64/include/asm/assembler.h
|
||||
+++ b/arch/arm64/include/asm/assembler.h
|
||||
@@ -683,9 +683,11 @@ USER(\label, ic ivau, \tmp2) // invalidate I line PoU
|
||||
.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_\@ :
|
||||
diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S
|
||||
index bb6832353045..5f800384cb9a 100644
|
||||
--- 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
|
||||
--
|
||||
2.24.1
|
||||
|
|
@ -101,6 +101,7 @@ bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch
|
|||
debian/revert-objtool-fix-config_stack_validation-y-warning.patch
|
||||
bugfix/all/mt76-use-the-correct-hweight8-function.patch
|
||||
bugfix/all/rtc-s35390a-set-uie_unsupported.patch
|
||||
debian/Revert-arm64-preempt-Fix-big-endian-when-checking-pr.patch
|
||||
|
||||
# Miscellaneous features
|
||||
|
||||
|
|
Loading…
Reference in New Issue