FAILED: patch "[PATCH] arm64: armv8_deprecated: ensure extension of addr" failed to apply to 4.4-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
55de49f9aa17b0b2b144dd2af587177b9aadf429Mon Sep 17 00:00:00 2001
From: Mark Rutland <[email protected]>
Date: Wed, 3 May 2017 16:09:36 +0100
Subject: [PATCH] arm64: armv8_deprecated: ensure extension of addr
Our compat swp emulation holds the compat user address in an unsigned int, which it passes to __user_swpX_asm(). When a 32-bit value is passed in a register, the upper 32 bits of the register are unknown, and we must extend the value to 64 bits before we can use it as a base address.
This patch casts the address to unsigned long to ensure it has been suitably extended, avoiding the potential issue, and silencing a related warning from clang.
arch/arm64/kernel/armv8_deprecated.c +2 -1
@@ -306,7 +306,8 @@ do { \ _ASM_EXTABLE(0b, 4b) \_ASM_EXTABLE (1b ,4b ) \ : "=&r" (res), "+r" (data), "=&r" (temp), "=&r" (temp2) \ -: " r" (addr), " i" (-EAGAIN), " i" (-EFAULT), \ +: " r" ((unsigned long)addr), " i" (-EAGAIN), \ +" i" (-EFAULT), \ " i" (__SWP_LL_SC_LOOPS) \ : " memory"); \ uaccess_disable(); \