]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ARM: p2v: fix handling of LPAE translation in BE mode
authorArd Biesheuvel <ardb@kernel.org>
Sun, 20 Sep 2020 22:10:16 +0000 (00:10 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 29 Dec 2020 12:42:34 +0000 (13:42 +0100)
commit82b8dbddc881c64c7e88ed21d128de294f9271e5
treeca4f47a1f2b47966709b4d12901ddda5634dd98a
parent59086165fbefeed3d7fcfeac84fb07de66a06635
ARM: p2v: fix handling of LPAE translation in BE mode

[ Upstream commit 4e79f0211b473f8e1eab8211a9fd50cc41a3a061 ]

When running in BE mode on LPAE hardware with a PA-to-VA translation
that exceeds 4 GB, we patch bits 39:32 of the offset into the wrong
byte of the opcode. So fix that, by rotating the offset in r0 to the
right by 8 bits, which will put the 8-bit immediate in bits 31:24.

Note that this will also move bit #22 in its correct place when
applying the rotation to the constant #0x400000.

Fixes: d9a790df8e984 ("ARM: 7883/1: fix mov to mvn conversion in case of 64 bit phys_addr_t and BE")
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/arm/kernel/head.S