Commit 98c26a72 authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman

powerpc/mm: Remove unneeded #ifdef CONFIG_PPC_MEM_KEYS

In fault.c, #ifdef CONFIG_PPC_MEM_KEYS is not needed because all
functions are always defined, and arch_vma_access_permitted()
always returns true when CONFIG_PPC_MEM_KEYS is not defined so
access_pkey_error() will return false so bad_access_pkey()
will never be called.

Include linux/pkeys.h to get a definition of vma_pkeys() for
bad_access_pkey().
Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/8038392f38d81f2ad169347efac29146f553b238.1615819955.git.christophe.leroy@csgroup.eu
parent b7787805
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include <linux/hugetlb.h> #include <linux/hugetlb.h>
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <linux/kfence.h> #include <linux/kfence.h>
#include <linux/pkeys.h>
#include <asm/firmware.h> #include <asm/firmware.h>
#include <asm/interrupt.h> #include <asm/interrupt.h>
...@@ -88,7 +89,6 @@ static noinline int bad_area(struct pt_regs *regs, unsigned long address) ...@@ -88,7 +89,6 @@ static noinline int bad_area(struct pt_regs *regs, unsigned long address)
return __bad_area(regs, address, SEGV_MAPERR); return __bad_area(regs, address, SEGV_MAPERR);
} }
#ifdef CONFIG_PPC_MEM_KEYS
static noinline int bad_access_pkey(struct pt_regs *regs, unsigned long address, static noinline int bad_access_pkey(struct pt_regs *regs, unsigned long address,
struct vm_area_struct *vma) struct vm_area_struct *vma)
{ {
...@@ -128,7 +128,6 @@ static noinline int bad_access_pkey(struct pt_regs *regs, unsigned long address, ...@@ -128,7 +128,6 @@ static noinline int bad_access_pkey(struct pt_regs *regs, unsigned long address,
return 0; return 0;
} }
#endif
static noinline int bad_access(struct pt_regs *regs, unsigned long address) static noinline int bad_access(struct pt_regs *regs, unsigned long address)
{ {
...@@ -235,7 +234,6 @@ static bool bad_kernel_fault(struct pt_regs *regs, unsigned long error_code, ...@@ -235,7 +234,6 @@ static bool bad_kernel_fault(struct pt_regs *regs, unsigned long error_code,
return false; return false;
} }
#ifdef CONFIG_PPC_MEM_KEYS
static bool access_pkey_error(bool is_write, bool is_exec, bool is_pkey, static bool access_pkey_error(bool is_write, bool is_exec, bool is_pkey,
struct vm_area_struct *vma) struct vm_area_struct *vma)
{ {
...@@ -249,7 +247,6 @@ static bool access_pkey_error(bool is_write, bool is_exec, bool is_pkey, ...@@ -249,7 +247,6 @@ static bool access_pkey_error(bool is_write, bool is_exec, bool is_pkey,
return false; return false;
} }
#endif
static bool access_error(bool is_write, bool is_exec, struct vm_area_struct *vma) static bool access_error(bool is_write, bool is_exec, struct vm_area_struct *vma)
{ {
...@@ -497,11 +494,9 @@ static int ___do_page_fault(struct pt_regs *regs, unsigned long address, ...@@ -497,11 +494,9 @@ static int ___do_page_fault(struct pt_regs *regs, unsigned long address,
return bad_area(regs, address); return bad_area(regs, address);
} }
#ifdef CONFIG_PPC_MEM_KEYS
if (unlikely(access_pkey_error(is_write, is_exec, if (unlikely(access_pkey_error(is_write, is_exec,
(error_code & DSISR_KEYFAULT), vma))) (error_code & DSISR_KEYFAULT), vma)))
return bad_access_pkey(regs, address, vma); return bad_access_pkey(regs, address, vma);
#endif /* CONFIG_PPC_MEM_KEYS */
if (unlikely(access_error(is_write, is_exec, vma))) if (unlikely(access_error(is_write, is_exec, vma)))
return bad_access(regs, address); return bad_access(regs, address);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment