OSDN Git Service

UPSTREAM: arm64: Disable PAN on uaccess_enable()
authorMarc Zyngier <marc.zyngier@arm.com>
Mon, 12 Dec 2016 13:50:26 +0000 (13:50 +0000)
committerSami Tolvanen <samitolvanen@google.com>
Wed, 4 Jan 2017 18:56:23 +0000 (10:56 -0800)
Commit 4b65a5db3627 ("arm64: Introduce uaccess_{disable,enable}
functionality based on TTBR0_EL1") added conditional user access
enable/disable. Unfortunately, a typo prevents the PAN bit from being
cleared for user access functions.

Restore the PAN functionality by adding the missing '!'.

Fixes: b65a5db3627 ("arm64: Introduce uaccess_{disable,enable} functionality based on TTBR0_EL1")
Reported-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Bug: 31432001
Change-Id: If61cb6cc756affc7df7fa06213723a8b96eb1e80
(cherry picked from commit 75037120e62b58c536999eb23d70cfcb6d6c0bcc)
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
arch/arm64/include/asm/uaccess.h

index 955c6e5..efafdf3 100644 (file)
@@ -192,7 +192,7 @@ do {                                                                        \
 
 #define __uaccess_enable(alt)                                          \
 do {                                                                   \
-       if (uaccess_ttbr0_enable())                                     \
+       if (!uaccess_ttbr0_enable())                                    \
                asm(ALTERNATIVE("nop", SET_PSTATE_PAN(0), alt,          \
                                CONFIG_ARM64_PAN));                     \
 } while (0)