]> git.baikalelectronics.ru Git - kernel.git/commit
ARM: 9214/1: alignment: advance IT state after emulating Thumb instruction
authorArd Biesheuvel <ardb@kernel.org>
Thu, 30 Jun 2022 15:46:54 +0000 (16:46 +0100)
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Wed, 6 Jul 2022 21:44:49 +0000 (22:44 +0100)
commit76a7ba9c46ceffc77127314c773db198f72e378f
tree97b2792805da656e88e39826064b1bc192be03a0
parentcbcb9c7e3e911433c37ff9298f633bf2bb8249f8
ARM: 9214/1: alignment: advance IT state after emulating Thumb instruction

After emulating a misaligned load or store issued in Thumb mode, we have
to advance the IT state by hand, or it will get out of sync with the
actual instruction stream, which means we'll end up applying the wrong
condition code to subsequent instructions. This might corrupt the
program state rather catastrophically.

So borrow the it_advance() helper from the probing code, and use it on
CPSR if the emulated instruction is Thumb.

Cc: <stable@vger.kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
arch/arm/include/asm/ptrace.h
arch/arm/mm/alignment.c
arch/arm/probes/decode.h