Message ID | 7492f65cd21a898e2f2608fb51642b7b0c05ef21.1739866028.git.maciej.wieczor-retman@intel.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v2,01/14] kasan: sw_tags: Use arithmetic shift for shadow computation | expand |
On Tue, Feb 18, 2025 at 9:20 AM Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com> wrote: > > Adjust x86 minimal SLAB alignment to match KASAN granularity size. In > tag-based mode the size changes to 16 bytes so the value needs to be 4. This 4 should be 16. > > Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com> > --- > arch/x86/include/asm/kasan.h | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/x86/include/asm/kasan.h b/arch/x86/include/asm/kasan.h > index 8829337a75fa..a75f0748a4b6 100644 > --- a/arch/x86/include/asm/kasan.h > +++ b/arch/x86/include/asm/kasan.h > @@ -36,6 +36,8 @@ > > #ifdef CONFIG_KASAN_SW_TAGS > > +#define ARCH_SLAB_MINALIGN (1ULL << KASAN_SHADOW_SCALE_SHIFT) I believe ARCH_SLAB_MINALIGN needs to be defined in include/asm/cache.h: at least other architectures have it there. > + > #define __tag_shifted(tag) FIELD_PREP(GENMASK_ULL(60, 57), tag) > #define __tag_reset(addr) (sign_extend64((u64)(addr), 56)) > #define __tag_get(addr) ((u8)FIELD_GET(GENMASK_ULL(60, 57), (u64)addr)) > -- > 2.47.1 >
On 2025-02-20 at 00:30:48 +0100, Andrey Konovalov wrote: >On Tue, Feb 18, 2025 at 9:20 AM Maciej Wieczor-Retman ><maciej.wieczor-retman@intel.com> wrote: >> >> Adjust x86 minimal SLAB alignment to match KASAN granularity size. In >> tag-based mode the size changes to 16 bytes so the value needs to be 4. > >This 4 should be 16. Thanks! > >> >> Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com> >> --- >> arch/x86/include/asm/kasan.h | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/arch/x86/include/asm/kasan.h b/arch/x86/include/asm/kasan.h >> index 8829337a75fa..a75f0748a4b6 100644 >> --- a/arch/x86/include/asm/kasan.h >> +++ b/arch/x86/include/asm/kasan.h >> @@ -36,6 +36,8 @@ >> >> #ifdef CONFIG_KASAN_SW_TAGS >> >> +#define ARCH_SLAB_MINALIGN (1ULL << KASAN_SHADOW_SCALE_SHIFT) > >I believe ARCH_SLAB_MINALIGN needs to be defined in >include/asm/cache.h: at least other architectures have it there. Okay, I'll correct it. > > >> + >> #define __tag_shifted(tag) FIELD_PREP(GENMASK_ULL(60, 57), tag) >> #define __tag_reset(addr) (sign_extend64((u64)(addr), 56)) >> #define __tag_get(addr) ((u8)FIELD_GET(GENMASK_ULL(60, 57), (u64)addr)) >> -- >> 2.47.1 >>
diff --git a/arch/x86/include/asm/kasan.h b/arch/x86/include/asm/kasan.h index 8829337a75fa..a75f0748a4b6 100644 --- a/arch/x86/include/asm/kasan.h +++ b/arch/x86/include/asm/kasan.h @@ -36,6 +36,8 @@ #ifdef CONFIG_KASAN_SW_TAGS +#define ARCH_SLAB_MINALIGN (1ULL << KASAN_SHADOW_SCALE_SHIFT) + #define __tag_shifted(tag) FIELD_PREP(GENMASK_ULL(60, 57), tag) #define __tag_reset(addr) (sign_extend64((u64)(addr), 56)) #define __tag_get(addr) ((u8)FIELD_GET(GENMASK_ULL(60, 57), (u64)addr))
Adjust x86 minimal SLAB alignment to match KASAN granularity size. In tag-based mode the size changes to 16 bytes so the value needs to be 4. Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com> --- arch/x86/include/asm/kasan.h | 2 ++ 1 file changed, 2 insertions(+)