From: Greg Kroah-Hartman Date: Mon, 27 Dec 2021 13:19:29 +0000 (+0100) Subject: 4.9-stable patches X-Git-Tag: v4.4.297~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=44e928997048abcfee9c2fc53db67c200f819d1d;p=thirdparty%2Fkernel%2Fstable-queue.git 4.9-stable patches added patches: arm-9169-1-entry-fix-thumb2-bug-in-iwmmxt-exception-handling.patch --- diff --git a/queue-4.9/arm-9169-1-entry-fix-thumb2-bug-in-iwmmxt-exception-handling.patch b/queue-4.9/arm-9169-1-entry-fix-thumb2-bug-in-iwmmxt-exception-handling.patch new file mode 100644 index 00000000000..fb8385dbe49 --- /dev/null +++ b/queue-4.9/arm-9169-1-entry-fix-thumb2-bug-in-iwmmxt-exception-handling.patch @@ -0,0 +1,51 @@ +From 8536a5ef886005bc443c2da9b842d69fd3d7647f Mon Sep 17 00:00:00 2001 +From: Ard Biesheuvel +Date: Wed, 15 Dec 2021 09:31:36 +0100 +Subject: ARM: 9169/1: entry: fix Thumb2 bug in iWMMXt exception handling + +From: Ard Biesheuvel + +commit 8536a5ef886005bc443c2da9b842d69fd3d7647f upstream. + +The Thumb2 version of the FP exception handling entry code treats the +register holding the CP number (R8) differently, resulting in the iWMMXT +CP number check to be incorrect. + +Fix this by unifying the ARM and Thumb2 code paths, and switch the +order of the additions of the TI_USED_CP offset and the shifted CP +index. + +Cc: +Fixes: b86040a59feb ("Thumb-2: Implementation of the unified start-up and exceptions code") +Signed-off-by: Ard Biesheuvel +Signed-off-by: Russell King (Oracle) +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm/kernel/entry-armv.S | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +--- a/arch/arm/kernel/entry-armv.S ++++ b/arch/arm/kernel/entry-armv.S +@@ -631,11 +631,9 @@ call_fpe: + tstne r0, #0x04000000 @ bit 26 set on both ARM and Thumb-2 + reteq lr + and r8, r0, #0x00000f00 @ mask out CP number +- THUMB( lsr r8, r8, #8 ) + mov r7, #1 +- add r6, r10, #TI_USED_CP +- ARM( strb r7, [r6, r8, lsr #8] ) @ set appropriate used_cp[] +- THUMB( strb r7, [r6, r8] ) @ set appropriate used_cp[] ++ add r6, r10, r8, lsr #8 @ add used_cp[] array offset first ++ strb r7, [r6, #TI_USED_CP] @ set appropriate used_cp[] + #ifdef CONFIG_IWMMXT + @ Test if we need to give access to iWMMXt coprocessors + ldr r5, [r10, #TI_FLAGS] +@@ -644,7 +642,7 @@ call_fpe: + bcs iwmmxt_task_enable + #endif + ARM( add pc, pc, r8, lsr #6 ) +- THUMB( lsl r8, r8, #2 ) ++ THUMB( lsr r8, r8, #6 ) + THUMB( add pc, r8 ) + nop + diff --git a/queue-4.9/series b/queue-4.9/series index ec9304766e0..13857cb9df7 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -10,3 +10,4 @@ hwmon-lm90-fix-usage-of-config2-register-in-detect-f.patch alsa-jack-check-the-return-value-of-kstrdup.patch alsa-drivers-opl3-fix-incorrect-use-of-vp-state.patch x86-pkey-fix-undefined-behaviour-with-pkru_wd_bit.patch +arm-9169-1-entry-fix-thumb2-bug-in-iwmmxt-exception-handling.patch