git: 52bf6257c2aa - main - arm64: Define shadow maps for KMSAN
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 08 Feb 2024 16:36:31 UTC
The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=52bf6257c2aac19788636e525b139ec57a38fb1c commit 52bf6257c2aac19788636e525b139ec57a38fb1c Author: Mark Johnston <markj@FreeBSD.org> AuthorDate: 2024-02-08 15:56:58 +0000 Commit: Mark Johnston <markj@FreeBSD.org> CommitDate: 2024-02-08 16:35:11 +0000 arm64: Define shadow maps for KMSAN Both are the same size as the kernel map. Reviewed by: imp MFC after: 2 weeks Sponsored by: Klara, Inc. Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D43154 --- sys/arm64/arm64/pmap.c | 6 ++++++ sys/arm64/include/vmparam.h | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c index 58c21f9d2c30..7c7a9a08fd30 100644 --- a/sys/arm64/arm64/pmap.c +++ b/sys/arm64/arm64/pmap.c @@ -8175,6 +8175,12 @@ sysctl_kmaps(SYSCTL_HANDLER_ARGS) else if (i == pmap_l0_index(KASAN_MIN_ADDRESS)) sbuf_printf(sb, "\nKASAN shadow map:\n"); #endif +#ifdef KMSAN + else if (i == pmap_l0_index(KMSAN_SHAD_MIN_ADDRESS)) + sbuf_printf(sb, "\nKMSAN shadow map:\n"); + else if (i == pmap_l0_index(KMSAN_ORIG_MIN_ADDRESS)) + sbuf_printf(sb, "\nKMSAN origin map:\n"); +#endif l0e = kernel_pmap->pm_l0[i]; if ((l0e & ATTR_DESCR_VALID) == 0) { diff --git a/sys/arm64/include/vmparam.h b/sys/arm64/include/vmparam.h index d577b9315471..0967d3c0aedf 100644 --- a/sys/arm64/include/vmparam.h +++ b/sys/arm64/include/vmparam.h @@ -131,6 +131,12 @@ * 0xfffffeffffffffff End of DMAP * 0xffffa00000000000 Start of DMAP * + * 0xffff027fffffffff End of KMSAN origin map + * 0xffff020000000000 Start of KMSAN origin map + * + * 0xffff017fffffffff End of KMSAN shadow map + * 0xffff010000000000 Start of KMSAN shadow map + * * 0xffff009fffffffff End of KASAN shadow map * 0xffff008000000000 Start of KASAN shadow map * @@ -167,6 +173,14 @@ #define KASAN_MIN_ADDRESS (0xffff008000000000UL) #define KASAN_MAX_ADDRESS (0xffff00a000000000UL) +/* 512GiB KMSAN shadow map */ +#define KMSAN_SHAD_MIN_ADDRESS (0xffff010000000000UL) +#define KMSAN_SHAD_MAX_ADDRESS (0xffff018000000000UL) + +/* 512GiB KMSAN origin map */ +#define KMSAN_ORIG_MIN_ADDRESS (0xffff020000000000UL) +#define KMSAN_ORIG_MAX_ADDRESS (0xffff028000000000UL) + /* The address bits that hold a pointer authentication code */ #define PAC_ADDR_MASK (0xff7f000000000000UL)