[PATCH v4 1/2] arm64: Support execute-only permissions with Enhanced PAN

Catalin Marinas catalin.marinas at arm.com
Tue Mar 30 10:30:11 BST 2021


On Tue, Mar 30, 2021 at 10:47:31AM +0200, Geert Uytterhoeven wrote:
> On Fri, Mar 12, 2021 at 6:47 PM Vladimir Murzin <vladimir.murzin at arm.com> wrote:
> > Enhanced Privileged Access Never (EPAN) allows Privileged Access Never
> > to be used with Execute-only mappings.
> >
> > Absence of such support was a reason for 24cecc377463 ("arm64: Revert
> > support for execute-only user mappings"). Thus now it can be revisited
> > and re-enabled.
> >
> > Cc: Kees Cook <keescook at chromium.org>
> > Cc: Catalin Marinas <catalin.marinas at arm.com>
> > Signed-off-by: Vladimir Murzin <vladimir.murzin at arm.com>
> 
> Thanks for your patch, which is now commit 18107f8a2df6bf1c ("arm64:
> Support execute-only permissions with Enhanced PAN") in arm64/for-next.
> 
> > --- a/arch/arm64/Kconfig
> > +++ b/arch/arm64/Kconfig
> > @@ -1060,6 +1060,9 @@ config ARCH_WANT_HUGE_PMD_SHARE
> >  config ARCH_HAS_CACHE_LINE_SIZE
> >         def_bool y
> >
> > +config ARCH_HAS_FILTER_PGPROT
> > +       def_bool y
> > +
> >  config ARCH_ENABLE_SPLIT_PMD_PTLOCK
> >         def_bool y if PGTABLE_LEVELS > 2
> >
> > @@ -1683,6 +1686,20 @@ config ARM64_MTE
> >
> >  endmenu
> >
> > +menu "ARMv8.7 architectural features"
> > +
> > +config ARM64_EPAN
> > +       bool "Enable support for Enhanced Privileged Access Never (EPAN)"
> > +       default y
> > +       depends on ARM64_PAN
> > +       help
> > +        Enhanced Privileged Access Never (EPAN) allows Privileged
> > +        Access Never to be used with Execute-only mappings.
> 
> Does EPAN require more hardware support than PAN, which is part of the
> ARMv8.1 Extensions according to the help text for ARM64_PAN?
> If yes, it is a good idea to document that here, so people know if it
> makes sense to enable this option for their hardware.

The ARM64_EPAN option is under the "ARMv8.7 architectural features" as
it's a new CPU feature (same as PAN but also works on exec-only user
mappings). We could expand this text a bit to include ARMv8.7 as we do
for ARM64_PAN, if that's what you meant.

-- 
Catalin



More information about the linux-arm-kernel mailing list