Re: [PATCH v8 02/14] kasan: arm64: x86: Make special tags arch specific
From: Maciej Wieczor-Retman <hidden>
Date: 2026-01-13 17:32:37
Also in:
linux-mm, lkml
On 2026-01-13 at 02:21:07 +0100, Andrey Konovalov wrote:
On Mon, Jan 12, 2026 at 6:27 PM Maciej Wieczor-Retman [off-list ref] wrote:quoted
From: Samuel Holland <samuel.holland@sifive.com>diff --git a/arch/x86/include/asm/kasan-tags.h b/arch/x86/include/asm/kasan-tags.h new file mode 100644 index 000000000000..68ba385bc75c --- /dev/null +++ b/arch/x86/include/asm/kasan-tags.h@@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __ASM_KASAN_TAGS_H +#define __ASM_KASAN_TAGS_H + +#define KASAN_TAG_KERNEL 0xF /* native kernel pointers tag */One thing that stood out to me here was that for x86, KASAN_TAG_KERNEL is defined as a 4-bit value (0xF). Which makes sense, as KASAN_TAG_WIDTH == 4. But for arm64, KASAN_TAG_KERNEL and others are defined as 8-bit values (0xFF, etc.), even though for HW_TAGS, KASAN_TAG_WIDTH is also == 4 and only the lower 4 bits of these values define the tags. This happens to work out: for HW_TAGS, __tag_set resets the top byte but then uses the given value as is, so the higher 4 bits gets set to 0xF and the lower set to the tag. And for saving/restoring the tag in page->flags, everything also works, as we only store the meaningful lower 4 bits in flags, and restore the higher 0xF when doing ^ 0xFF. But this is not related to this series: I think the way x86 defines KASAN_TAG_KERNEL to be 0xF makes sense; we might just need to clean up the arm64 implementation at some point.
I suppose while there is only one such mode that stands out from the other two there is little hint as to what should be generalized. As you said so far this scheme we have works - altough it is somewhat convoluted. One thing I was thinking of was cleaning up all the #ifdefs for different modes into a more ordered structure. I think there are ~24 ifdefs in mm/kasan.h and include/linux/kasan.h and many of them could potentially be merged. ...
Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com>
Thanks :) -- Kind regards Maciej Wieczór-Retman