Re: [PATCH v6 03/18] kasan: sw_tags: Use arithmetic shift for shadow computation
From: Maciej Wieczór-Retman
Date: Mon Nov 17 2025 - 13:28:04 EST
On 2025-11-11 at 10:39:12 +0100, Alexander Potapenko wrote:
>> diff --git a/include/linux/kasan.h b/include/linux/kasan.h
>> index b00849ea8ffd..952ade776e51 100644
>> --- a/include/linux/kasan.h
>> +++ b/include/linux/kasan.h
>> @@ -61,8 +61,14 @@ int kasan_populate_early_shadow(const void *shadow_start,
>> #ifndef kasan_mem_to_shadow
>> static inline void *kasan_mem_to_shadow(const void *addr)
>> {
>> - return (void *)((unsigned long)addr >> KASAN_SHADOW_SCALE_SHIFT)
>> - + KASAN_SHADOW_OFFSET;
>> + void *scaled;
>> +
>> + if (IS_ENABLED(CONFIG_KASAN_GENERIC))
>> + scaled = (void *)((unsigned long)addr >> KASAN_SHADOW_SCALE_SHIFT);
>> + else
>> + scaled = (void *)((long)addr >> KASAN_SHADOW_SCALE_SHIFT);
>> +
>> + return KASAN_SHADOW_OFFSET + scaled;
>> }
>> #endif
>
>As Marco pointed out, this part is reverted in Patch 17. Any reason to do that?
I hope I was able to answer that in my reply to Marco