mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

The value of POR_EL0_INIT is not architectural, it is a software decision. Since we have a dedicated header for POR_ELx, we might as well define POR_EL0_INIT there. While at it also define POR_EL0_INIT using POR_ELx_PERM_PREP(), making it clearer that we are setting permissions for POIndex/pkey 0. Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com> Link: https://lore.kernel.org/r/20250219164029.2309119-4-kevin.brodsky@arm.com Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
34 lines
612 B
C
34 lines
612 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (C) 2023 Arm Ltd.
|
|
*/
|
|
|
|
#ifndef _ASM_ARM64_POR_H
|
|
#define _ASM_ARM64_POR_H
|
|
|
|
#include <asm/sysreg.h>
|
|
|
|
#define POR_EL0_INIT POR_ELx_PERM_PREP(0, POE_RWX)
|
|
|
|
static inline bool por_elx_allows_read(u64 por, u8 pkey)
|
|
{
|
|
u8 perm = POR_ELx_PERM_GET(pkey, por);
|
|
|
|
return perm & POE_R;
|
|
}
|
|
|
|
static inline bool por_elx_allows_write(u64 por, u8 pkey)
|
|
{
|
|
u8 perm = POR_ELx_PERM_GET(pkey, por);
|
|
|
|
return perm & POE_W;
|
|
}
|
|
|
|
static inline bool por_elx_allows_exec(u64 por, u8 pkey)
|
|
{
|
|
u8 perm = POR_ELx_PERM_GET(pkey, por);
|
|
|
|
return perm & POE_X;
|
|
}
|
|
|
|
#endif /* _ASM_ARM64_POR_H */
|