arm64: Disable PAN on uaccess_enable()
authorMarc Zyngier <marc.zyngier@arm.com>
Mon, 12 Dec 2016 13:50:26 +0000 (13:50 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 12 Dec 2016 17:52:27 +0000 (17:52 +0000)
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>
arch/arm64/include/asm/uaccess.h

index 6986f56cfa8807cab1175ba82792d96fd1c674df..d26750ca6e066b9f0f267025512b3e2bdef13744 100644 (file)
@@ -188,7 +188,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)