Date: Fri, 13 Feb 2026 15:43:25 +0000 From: Mark Johnston <markj@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: bf149f2e88cb - main - kmsan: Implement __msan_test_shadow() Message-ID: <698f469d.1f058.9562ea7@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=bf149f2e88cb3836e02ddabd9944eb58650a72ae commit bf149f2e88cb3836e02ddabd9944eb58650a72ae Author: Mark Johnston <markj@FreeBSD.org> AuthorDate: 2026-02-13 15:42:19 +0000 Commit: Mark Johnston <markj@FreeBSD.org> CommitDate: 2026-02-13 15:42:19 +0000 kmsan: Implement __msan_test_shadow() This is needed when building OpenZFS with KMSAN enabled, as the bundled zstd uses it. MFC after: 1 week --- sys/kern/subr_msan.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/sys/kern/subr_msan.c b/sys/kern/subr_msan.c index 883dbd2b7604..dd69375f4ed1 100644 --- a/sys/kern/subr_msan.c +++ b/sys/kern/subr_msan.c @@ -662,6 +662,7 @@ void __msan_poison_alloca(const void *, uint64_t, const char *); void __msan_unpoison_alloca(const void *, uint64_t); void __msan_warning(msan_orig_t); msan_tls_t *__msan_get_context_state(void); +intptr_t __msan_test_shadow(const void *, size_t); void __msan_instrument_asm_store(const void *addr, size_t size) @@ -726,6 +727,23 @@ __msan_get_context_state(void) return (&mtd->tls[mtd->ctx]); } +intptr_t +__msan_test_shadow(const void *addr, size_t len) +{ + uint8_t *shad; + + if (__predict_false(!kmsan_enabled)) + return (-1); + if (__predict_false(kmsan_md_unsupported((vm_offset_t)addr))) + return (-1); + + shad = (uint8_t *)kmsan_md_addr_to_shad((vm_offset_t)addr); + for (size_t i = 0; i < len; i++) + if (shad[i] != 0) + return (i); + return (-1); +} + /* -------------------------------------------------------------------------- */ /*home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?698f469d.1f058.9562ea7>
