On Sat, Nov 21, 2020 at 10:59 AM Peter Collingbourne <pcc@xxxxxxxxxx> wrote: > > On hardware supporting pointer authentication, we previously ended up > enabling TBI on instruction accesses when tag-based ASAN was enabled, > but this was costing us 8 bits of PAC entropy, which was unnecessary > since tag-based ASAN does not require TBI on instruction accesses. Get > them back by setting TCR_EL1.TBID1. > > Signed-off-by: Peter Collingbourne <pcc@xxxxxxxxxx> > Link: https://linux-review.googlesource.com/id/I3dded7824be2e70ea64df0aabab9598d5aebfcc4 > --- > arch/arm64/include/asm/pgtable-hwdef.h | 1 + > arch/arm64/mm/proc.S | 2 +- > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/include/asm/pgtable-hwdef.h b/arch/arm64/include/asm/pgtable-hwdef.h > index 01a96d07ae74..42442a0ae2ab 100644 > --- a/arch/arm64/include/asm/pgtable-hwdef.h > +++ b/arch/arm64/include/asm/pgtable-hwdef.h > @@ -260,6 +260,7 @@ > #define TCR_TBI1 (UL(1) << 38) > #define TCR_HA (UL(1) << 39) > #define TCR_HD (UL(1) << 40) > +#define TCR_TBID1 (UL(1) << 52) > #define TCR_NFD0 (UL(1) << 53) > #define TCR_NFD1 (UL(1) << 54) > #define TCR_E0PD0 (UL(1) << 55) > diff --git a/arch/arm64/mm/proc.S b/arch/arm64/mm/proc.S > index 23c326a06b2d..97a97a61a8dc 100644 > --- a/arch/arm64/mm/proc.S > +++ b/arch/arm64/mm/proc.S > @@ -40,7 +40,7 @@ > #define TCR_CACHE_FLAGS TCR_IRGN_WBWA | TCR_ORGN_WBWA > > #ifdef CONFIG_KASAN_SW_TAGS > -#define TCR_KASAN_FLAGS TCR_TBI1 > +#define TCR_KASAN_FLAGS TCR_TBI1 | TCR_TBID1 > #else > #define TCR_KASAN_FLAGS 0 > #endif > -- > 2.29.2.454.gaff20da3a2-goog > Reviewed-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx>