On Fri, Jul 19, 2024 at 12:04:39PM +0900, Masahiro Yamada wrote:
On Fri, Jul 19, 2024 at 2:10 AM John Stultz jstultz@google.com wrote:
On Tue, Sep 26, 2023 at 9:09 AM Masahiro Yamada masahiroy@kernel.org wrote:
The 32-bit ARM kernel stops working if the kernel grows to the point where veneers for __get_user_* are created.
AAPCS32 [1] states, "Register r12 (IP) may be used by a linker as a scratch register between a routine and any subroutine it calls. It can also be used within a routine to hold intermediate values between subroutine calls."
However, bl instructions buried within the inline asm are unpredictable for compilers; hence, "ip" must be added to the clobber list.
This becomes critical when veneers for __get_user_* are created because veneers use the ip register since commit 02e541db0540 ("ARM: 8323/1: force linker to use PIC veneers").
Signed-off-by: Masahiro Yamada masahiroy@kernel.org Reviewed-by: Ard Biesheuvel ardb@kernel.org
- stable@vger.kernel.org
It seems like this (commit 24d3ba0a7b44c1617c27f5045eecc4f34752ab03 upstream) would be a good candidate for -stable?
Yes.
This one should be back-ported. Thanks.
Now queued up, thanks.
greg k-h