arm64: Re-enable PAN on uaccess_enable

Started by Marc Zyngier on Dec 12, 2016 · 4 messages from 3 authors · Last reply Dec 12, 2016

Subsystems (2)

Maintainers (3)

STALE3611d

open the first message on its own page

  1. [PATCH] arm64: Re-enable PAN on uaccess_enable
    Related patches
  2. [PATCH] arm64: Re-enable PAN on uaccess_enable
    Related patches
  3. [PATCH] arm64: Re-enable PAN on uaccess_enable
    Related patches
  4. [PATCH] arm64: Re-enable PAN on uaccess_enable
    Related patches
Commit 4b65a5db3627 ("arm64: Introduce uaccess_{disable,enable}
functionality based on TTBR0_EL1") added conditional PAN
enable/disable. Unfortunately, a typo prevents PAN from being
re-enabled once it has been disabled.

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

Fixes: b65a5db3627 ("arm64: Introduce uaccess_{disable,enable} functionality based on TTBR0_EL1")
Reported-by: Christoffer Dall <redacted>
Signed-off-by: Marc Zyngier <redacted>
---
Christoffer, any chance you could give this a go and let me know
if that fixes your issues?

 arch/arm64/include/asm/uaccess.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h
index 6986f56..d26750c 100644
--- a/arch/arm64/include/asm/uaccess.h
+++ b/arch/arm64/include/asm/uaccess.h
@@ -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)
-- 
2.1.4
On Mon, Dec 12, 2016 at 01:50:26PM +0000, Marc Zyngier wrote:
Commit 4b65a5db3627 ("arm64: Introduce uaccess_{disable,enable}
functionality based on TTBR0_EL1") added conditional PAN
enable/disable. Unfortunately, a typo prevents PAN from being
re-enabled once it has been disabled.

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

Fixes: b65a5db3627 ("arm64: Introduce uaccess_{disable,enable} functionality based on TTBR0_EL1")
Reported-by: Christoffer Dall <redacted>
Signed-off-by: Marc Zyngier <redacted>
---
Christoffer, any chance you could give this a go and let me know
if that fixes your issues?
Yep, fixes the issue.  Thanks!

-Christoffer
quoted hunk
 arch/arm64/include/asm/uaccess.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h
index 6986f56..d26750c 100644
--- a/arch/arm64/include/asm/uaccess.h
+++ b/arch/arm64/include/asm/uaccess.h
@@ -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)
-- 
2.1.4
On Mon, Dec 12, 2016 at 04:06:36PM +0100, Christoffer Dall wrote:
On Mon, Dec 12, 2016 at 01:50:26PM +0000, Marc Zyngier wrote:
quoted
Commit 4b65a5db3627 ("arm64: Introduce uaccess_{disable,enable}
functionality based on TTBR0_EL1") added conditional PAN
enable/disable. Unfortunately, a typo prevents PAN from being
re-enabled once it has been disabled.

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

Fixes: b65a5db3627 ("arm64: Introduce uaccess_{disable,enable} functionality based on TTBR0_EL1")
Reported-by: Christoffer Dall <redacted>
Signed-off-by: Marc Zyngier <redacted>
---
Christoffer, any chance you could give this a go and let me know
if that fixes your issues?
Yep, fixes the issue.  Thanks!
Thanks for confirming. I merged this with a slightly updated commit log:

------8<-----------------
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.

-- 
Catalin
On 12/12/16 15:14, Catalin Marinas wrote:
On Mon, Dec 12, 2016 at 04:06:36PM +0100, Christoffer Dall wrote:
quoted
On Mon, Dec 12, 2016 at 01:50:26PM +0000, Marc Zyngier wrote:
quoted
Commit 4b65a5db3627 ("arm64: Introduce uaccess_{disable,enable}
functionality based on TTBR0_EL1") added conditional PAN
enable/disable. Unfortunately, a typo prevents PAN from being
re-enabled once it has been disabled.

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

Fixes: b65a5db3627 ("arm64: Introduce uaccess_{disable,enable} functionality based on TTBR0_EL1")
Reported-by: Christoffer Dall <redacted>
Signed-off-by: Marc Zyngier <redacted>
---
Christoffer, any chance you could give this a go and let me know
if that fixes your issues?
Yep, fixes the issue.  Thanks!
Thanks for confirming. I merged this with a slightly updated commit log:

------8<-----------------
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.
That looks indeed much better. Thanks!

	M.
-- 
Jazz is not dead. It just smells funny...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help