Module Name: src Committed By: maxv Date: Fri Jan 31 08:26:11 UTC 2020
Modified Files: src/sys/kern: subr_msan.c Log Message: Be more informative. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/kern/subr_msan.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/subr_msan.c diff -u src/sys/kern/subr_msan.c:1.6 src/sys/kern/subr_msan.c:1.7 --- src/sys/kern/subr_msan.c:1.6 Sat Jan 25 15:55:33 2020 +++ src/sys/kern/subr_msan.c Fri Jan 31 08:26:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_msan.c,v 1.6 2020/01/25 15:55:33 maxv Exp $ */ +/* $NetBSD: subr_msan.c,v 1.7 2020/01/31 08:26:10 maxv Exp $ */ /* * Copyright (c) 2019-2020 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: subr_msan.c,v 1.6 2020/01/25 15:55:33 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_msan.c,v 1.7 2020/01/31 08:26:10 maxv Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -163,7 +163,7 @@ kmsan_report_hook(const void *addr, size orig = (msan_orig_t *)((uintptr_t)orig & ~0x3); if (*orig == 0) { - REPORT("MSan: Uninitialized Memory In %s() At Offset " + REPORT("MSan: Uninitialized Memory In %s At Offset " "%zu\n", hook, off); goto out; } @@ -173,13 +173,13 @@ kmsan_report_hook(const void *addr, size if (kmsan_md_is_pc(ptr)) { if (ksyms_getname(&mod, &sym, (vaddr_t)ptr, KSYMS_PROC)) { - REPORT("MSan: Uninitialized %s Memory In %s() " - "At Offset %zu, IP %p\n", typename, hook, off, - (void *)ptr); + REPORT("MSan: Uninitialized %s Memory In %s " + "At Offset %zu/%zu, IP %p\n", typename, hook, off, + size, (void *)ptr); } else { - REPORT("MSan: Uninitialized %s Memory In %s() " - "At Offset %zu, From %s()\n", typename, hook, off, - sym); + REPORT("MSan: Uninitialized %s Memory In %s " + "At Offset %zu/%zu, From %s()\n", typename, hook, + off, size, sym); } } else { var = (char *)ptr + 4; @@ -187,7 +187,7 @@ kmsan_report_hook(const void *addr, size var = buf; fn = __builtin_strchr(buf, '@'); *fn++ = '\0'; - REPORT("MSan: Uninitialized %s Memory In %s() At Offset " + REPORT("MSan: Uninitialized %s Memory In %s At Offset " "%zu, Variable '%s' From %s()\n", typename, hook, off, var, fn); } @@ -513,7 +513,7 @@ kmsan_check_mbuf(void *buf) struct mbuf *m = buf; do { - kmsan_shadow_check(mtod(m, void *), m->m_len, "if_transmit"); + kmsan_shadow_check(mtod(m, void *), m->m_len, "if_transmit()"); } while ((m = m->m_next) != NULL); } @@ -522,7 +522,7 @@ kmsan_check_buf(void *buf) { buf_t *bp = buf; - kmsan_shadow_check(bp->b_data, bp->b_bcount, "bwrite"); + kmsan_shadow_check(bp->b_data, bp->b_bcount, "bwrite()"); } void @@ -646,13 +646,14 @@ kmsan_memcmp(const void *b1, const void const uint8_t *_b1 = b1, *_b2 = b2; size_t i; - kmsan_check_arg(sizeof(b1) + sizeof(b2) + sizeof(len), "memcmp"); + kmsan_check_arg(sizeof(b1) + sizeof(b2) + sizeof(len), + "memcmp():args"); kmsan_init_ret(sizeof(int)); for (i = 0; i < len; i++) { if (*_b1 != *_b2) { - kmsan_shadow_check(b1, i + 1, "memcmp"); - kmsan_shadow_check(b2, i + 1, "memcmp"); + kmsan_shadow_check(b1, i + 1, "memcmp():arg1"); + kmsan_shadow_check(b2, i + 1, "memcmp():arg2"); return *_b1 - *_b2; } _b1++, _b2++; @@ -690,7 +691,7 @@ kmsan_strcpy(char *dst, const char *src) char *_dst = dst; size_t len = 0; - kmsan_check_arg(sizeof(dst) + sizeof(src), "strcpy"); + kmsan_check_arg(sizeof(dst) + sizeof(src), "strcpy():args"); while (1) { len++; @@ -700,7 +701,7 @@ kmsan_strcpy(char *dst, const char *src) src++, dst++; } - kmsan_shadow_check(_src, len, "strcpy"); + kmsan_shadow_check(_src, len, "strcpy():arg2"); kmsan_shadow_fill(_dst, KMSAN_STATE_INITED, len); kmsan_init_ret(sizeof(char *)); return _dst; @@ -712,7 +713,7 @@ kmsan_strcmp(const char *s1, const char const char *_s1 = s1, *_s2 = s2; size_t len = 0; - kmsan_check_arg(sizeof(s1) + sizeof(s2), "strcmp"); + kmsan_check_arg(sizeof(s1) + sizeof(s2), "strcmp():args"); kmsan_init_ret(sizeof(int)); while (1) { @@ -720,15 +721,15 @@ kmsan_strcmp(const char *s1, const char if (*s1 != *s2) break; if (*s1 == '\0') { - kmsan_shadow_check(_s1, len, "strcmp"); - kmsan_shadow_check(_s2, len, "strcmp"); + kmsan_shadow_check(_s1, len, "strcmp():arg1"); + kmsan_shadow_check(_s2, len, "strcmp():arg2"); return 0; } s1++, s2++; } - kmsan_shadow_check(_s1, len, "strcmp"); - kmsan_shadow_check(_s2, len, "strcmp"); + kmsan_shadow_check(_s1, len, "strcmp():arg1"); + kmsan_shadow_check(_s2, len, "strcmp():arg2"); return (*(const unsigned char *)s1 - *(const unsigned char *)s2); } @@ -738,7 +739,7 @@ kmsan_strlen(const char *str) { const char *s; - kmsan_check_arg(sizeof(str), "strlen"); + kmsan_check_arg(sizeof(str), "strlen():args"); s = str; while (1) { @@ -747,7 +748,7 @@ kmsan_strlen(const char *str) s++; } - kmsan_shadow_check(str, (size_t)(s - str) + 1, "strlen"); + kmsan_shadow_check(str, (size_t)(s - str) + 1, "strlen():arg1"); kmsan_init_ret(sizeof(size_t)); return (s - str); } @@ -758,12 +759,12 @@ kmsan_strcat(char *dst, const char *src) size_t ldst, lsrc; char *ret; - kmsan_check_arg(sizeof(dst) + sizeof(src), "strcat"); + kmsan_check_arg(sizeof(dst) + sizeof(src), "strcat():args"); ldst = __builtin_strlen(dst); lsrc = __builtin_strlen(src); - kmsan_shadow_check(dst, ldst + 1, "strcat"); - kmsan_shadow_check(src, lsrc + 1, "strcat"); + kmsan_shadow_check(dst, ldst + 1, "strcat():arg1"); + kmsan_shadow_check(src, lsrc + 1, "strcat():arg2"); ret = __builtin_strcat(dst, src); kmsan_shadow_fill(dst, KMSAN_STATE_INITED, ldst + lsrc + 1); @@ -776,8 +777,8 @@ kmsan_strchr(const char *s, int c) { char *ret; - kmsan_check_arg(sizeof(s) + sizeof(c), "strchr"); - kmsan_shadow_check(s, __builtin_strlen(s), "strchr"); + kmsan_check_arg(sizeof(s) + sizeof(c), "strchr():args"); + kmsan_shadow_check(s, __builtin_strlen(s), "strchr():arg1"); ret = __builtin_strchr(s, c); kmsan_init_ret(sizeof(char *)); @@ -789,8 +790,8 @@ kmsan_strrchr(const char *s, int c) { char *ret; - kmsan_check_arg(sizeof(s) + sizeof(c), "strrchr"); - kmsan_shadow_check(s, __builtin_strlen(s), "strrchr"); + kmsan_check_arg(sizeof(s) + sizeof(c), "strrchr():args"); + kmsan_shadow_check(s, __builtin_strlen(s), "strrchr():arg1"); ret = __builtin_strrchr(s, c); kmsan_init_ret(sizeof(char *)); @@ -821,7 +822,8 @@ int copyoutstr(const void *, void *, siz int kmsan_kcopy(const void *src, void *dst, size_t len) { - kmsan_check_arg(sizeof(src) + sizeof(dst) + sizeof(len), "kcopy"); + kmsan_check_arg(sizeof(src) + sizeof(dst) + sizeof(len), + "kcopy():args"); if (__predict_true(len != 0)) { kmsan_meta_copy(dst, src, len); } @@ -836,7 +838,7 @@ kmsan_copystr(const void *kfaddr, void * int ret; kmsan_check_arg(sizeof(kfaddr) + sizeof(kdaddr) + - sizeof(len) + sizeof(done), "copystr"); + sizeof(len) + sizeof(done), "copystr():args"); ret = copystr(kfaddr, kdaddr, len, &_done); if (ret == 0) kmsan_meta_copy(kdaddr, kfaddr, _done); @@ -854,7 +856,8 @@ kmsan_copyin(const void *uaddr, void *ka { int ret; - kmsan_check_arg(sizeof(uaddr) + sizeof(kaddr) + sizeof(len), "copyin"); + kmsan_check_arg(sizeof(uaddr) + sizeof(kaddr) + sizeof(len), + "copyin():args"); ret = copyin(uaddr, kaddr, len); if (ret == 0) kmsan_shadow_fill(kaddr, KMSAN_STATE_INITED, len); @@ -866,8 +869,9 @@ kmsan_copyin(const void *uaddr, void *ka int kmsan_copyout(const void *kaddr, void *uaddr, size_t len) { - kmsan_check_arg(sizeof(kaddr) + sizeof(uaddr) + sizeof(len), "copyout"); - kmsan_shadow_check(kaddr, len, "copyout"); + kmsan_check_arg(sizeof(kaddr) + sizeof(uaddr) + sizeof(len), + "copyout():args"); + kmsan_shadow_check(kaddr, len, "copyout():arg1"); kmsan_init_ret(sizeof(int)); return copyout(kaddr, uaddr, len); } @@ -879,7 +883,7 @@ kmsan_copyinstr(const void *uaddr, void int ret; kmsan_check_arg(sizeof(uaddr) + sizeof(kaddr) + - sizeof(len) + sizeof(done), "copyinstr"); + sizeof(len) + sizeof(done), "copyinstr():args"); ret = copyinstr(uaddr, kaddr, len, &_done); if (ret == 0) kmsan_shadow_fill(kaddr, KMSAN_STATE_INITED, _done); @@ -899,9 +903,9 @@ kmsan_copyoutstr(const void *kaddr, void int ret; kmsan_check_arg(sizeof(kaddr) + sizeof(uaddr) + - sizeof(len) + sizeof(done), "copyoutstr"); + sizeof(len) + sizeof(done), "copyoutstr():args"); ret = copyoutstr(kaddr, uaddr, len, &_done); - kmsan_shadow_check(kaddr, _done, "copyoutstr"); + kmsan_shadow_check(kaddr, _done, "copyoutstr():arg1"); if (done != NULL) { *done = _done; kmsan_shadow_fill(done, KMSAN_STATE_INITED, sizeof(size_t)); @@ -934,7 +938,7 @@ kmsan__ucas_32(volatile uint32_t *uaddr, { int _ret; kmsan_check_arg(sizeof(uaddr) + sizeof(old) + - sizeof(new) + sizeof(ret), "ucas_32"); + sizeof(new) + sizeof(ret), "ucas_32():args"); _ret = _ucas_32(uaddr, old, new, ret); if (_ret == 0) kmsan_shadow_fill(ret, KMSAN_STATE_INITED, sizeof(*ret)); @@ -951,7 +955,7 @@ kmsan__ucas_32_mp(volatile uint32_t *uad { int _ret; kmsan_check_arg(sizeof(uaddr) + sizeof(old) + - sizeof(new) + sizeof(ret), "ucas_32_mp"); + sizeof(new) + sizeof(ret), "ucas_32_mp():args"); _ret = _ucas_32_mp(uaddr, old, new, ret); if (_ret == 0) kmsan_shadow_fill(ret, KMSAN_STATE_INITED, sizeof(*ret)); @@ -969,7 +973,7 @@ kmsan__ucas_64(volatile uint64_t *uaddr, { int _ret; kmsan_check_arg(sizeof(uaddr) + sizeof(old) + - sizeof(new) + sizeof(ret), "ucas_64"); + sizeof(new) + sizeof(ret), "ucas_64():args"); _ret = _ucas_64(uaddr, old, new, ret); if (_ret == 0) kmsan_shadow_fill(ret, KMSAN_STATE_INITED, sizeof(*ret)); @@ -986,7 +990,7 @@ kmsan__ucas_64_mp(volatile uint64_t *uad { int _ret; kmsan_check_arg(sizeof(uaddr) + sizeof(old) + - sizeof(new) + sizeof(ret), "ucas_64_mp"); + sizeof(new) + sizeof(ret), "ucas_64_mp():args"); _ret = _ucas_64_mp(uaddr, old, new, ret); if (_ret == 0) kmsan_shadow_fill(ret, KMSAN_STATE_INITED, sizeof(*ret)); @@ -1002,7 +1006,7 @@ int kmsan__ufetch_8(const uint8_t *uaddr, uint8_t *valp) { int _ret; - kmsan_check_arg(sizeof(uaddr) + sizeof(valp), "ufetch_8"); + kmsan_check_arg(sizeof(uaddr) + sizeof(valp), "ufetch_8():args"); _ret = _ufetch_8(uaddr, valp); if (_ret == 0) kmsan_shadow_fill(valp, KMSAN_STATE_INITED, sizeof(*valp)); @@ -1016,7 +1020,7 @@ int kmsan__ufetch_16(const uint16_t *uaddr, uint16_t *valp) { int _ret; - kmsan_check_arg(sizeof(uaddr) + sizeof(valp), "ufetch_16"); + kmsan_check_arg(sizeof(uaddr) + sizeof(valp), "ufetch_16():args"); _ret = _ufetch_16(uaddr, valp); if (_ret == 0) kmsan_shadow_fill(valp, KMSAN_STATE_INITED, sizeof(*valp)); @@ -1030,7 +1034,7 @@ int kmsan__ufetch_32(const uint32_t *uaddr, uint32_t *valp) { int _ret; - kmsan_check_arg(sizeof(uaddr) + sizeof(valp), "ufetch_32"); + kmsan_check_arg(sizeof(uaddr) + sizeof(valp), "ufetch_32():args"); _ret = _ufetch_32(uaddr, valp); if (_ret == 0) kmsan_shadow_fill(valp, KMSAN_STATE_INITED, sizeof(*valp)); @@ -1045,7 +1049,7 @@ int kmsan__ufetch_64(const uint64_t *uaddr, uint64_t *valp) { int _ret; - kmsan_check_arg(sizeof(uaddr) + sizeof(valp), "ufetch_64"); + kmsan_check_arg(sizeof(uaddr) + sizeof(valp), "ufetch_64():args"); _ret = _ufetch_64(uaddr, valp); if (_ret == 0) kmsan_shadow_fill(valp, KMSAN_STATE_INITED, sizeof(*valp)); @@ -1059,7 +1063,7 @@ int kmsan__ustore_8(uint8_t *, uint8_t); int kmsan__ustore_8(uint8_t *uaddr, uint8_t val) { - kmsan_check_arg(sizeof(uaddr) + sizeof(val), "ustore_8"); + kmsan_check_arg(sizeof(uaddr) + sizeof(val), "ustore_8():args"); kmsan_init_ret(sizeof(int)); return _ustore_8(uaddr, val); } @@ -1069,7 +1073,7 @@ int kmsan__ustore_16(uint16_t *, uint16_ int kmsan__ustore_16(uint16_t *uaddr, uint16_t val) { - kmsan_check_arg(sizeof(uaddr) + sizeof(val), "ustore_16"); + kmsan_check_arg(sizeof(uaddr) + sizeof(val), "ustore_16():args"); kmsan_init_ret(sizeof(int)); return _ustore_16(uaddr, val); } @@ -1079,7 +1083,7 @@ int kmsan__ustore_32(uint32_t *, uint32_ int kmsan__ustore_32(uint32_t *uaddr, uint32_t val) { - kmsan_check_arg(sizeof(uaddr) + sizeof(val), "ustore_32"); + kmsan_check_arg(sizeof(uaddr) + sizeof(val), "ustore_32():args"); kmsan_init_ret(sizeof(int)); return _ustore_32(uaddr, val); } @@ -1090,7 +1094,7 @@ int kmsan__ustore_64(uint64_t *, uint64_ int kmsan__ustore_64(uint64_t *uaddr, uint64_t val) { - kmsan_check_arg(sizeof(uaddr) + sizeof(val), "ustore_64"); + kmsan_check_arg(sizeof(uaddr) + sizeof(val), "ustore_64():args"); kmsan_init_ret(sizeof(int)); return _ustore_64(uaddr, val); } @@ -1165,38 +1169,43 @@ kmsan__ustore_64(uint64_t *uaddr, uint64 void kmsan_atomic_add_##name(volatile targ1 *, targ2); \ void kmsan_atomic_add_##name(volatile targ1 *ptr, targ2 val) \ { \ - kmsan_check_arg(sizeof(ptr) + sizeof(val), __func__); \ + kmsan_check_arg(sizeof(ptr) + sizeof(val), \ + "atomic_add_" #name "():args"); \ kmsan_shadow_check((const void *)(uintptr_t)ptr, sizeof(tret), \ - __func__); \ + "atomic_add_" #name "():arg1"); \ atomic_add_##name(ptr, val); \ } \ tret atomic_add_##name##_nv(volatile targ1 *, targ2); \ tret kmsan_atomic_add_##name##_nv(volatile targ1 *, targ2); \ tret kmsan_atomic_add_##name##_nv(volatile targ1 *ptr, targ2 val) \ { \ - kmsan_check_arg(sizeof(ptr) + sizeof(val), __func__); \ + kmsan_check_arg(sizeof(ptr) + sizeof(val), \ + "atomic_add_" #name "_nv():args"); \ kmsan_shadow_check((const void *)(uintptr_t)ptr, sizeof(tret), \ - __func__); \ + "atomic_add_" #name "_nv():arg1"); \ kmsan_init_ret(sizeof(tret)); \ return atomic_add_##name##_nv(ptr, val); \ } + #define MSAN_ATOMIC_FUNC_AND(name, tret, targ1, targ2) \ void atomic_and_##name(volatile targ1 *, targ2); \ void kmsan_atomic_and_##name(volatile targ1 *, targ2); \ void kmsan_atomic_and_##name(volatile targ1 *ptr, targ2 val) \ { \ - kmsan_check_arg(sizeof(ptr) + sizeof(val), __func__); \ + kmsan_check_arg(sizeof(ptr) + sizeof(val), \ + "atomic_and_" #name "():args"); \ kmsan_shadow_check((const void *)(uintptr_t)ptr, sizeof(tret), \ - __func__); \ + "atomic_and_" #name "():arg1"); \ atomic_and_##name(ptr, val); \ } \ tret atomic_and_##name##_nv(volatile targ1 *, targ2); \ tret kmsan_atomic_and_##name##_nv(volatile targ1 *, targ2); \ tret kmsan_atomic_and_##name##_nv(volatile targ1 *ptr, targ2 val) \ { \ - kmsan_check_arg(sizeof(ptr) + sizeof(val), __func__); \ + kmsan_check_arg(sizeof(ptr) + sizeof(val), \ + "atomic_and_" #name "_nv():args"); \ kmsan_shadow_check((const void *)(uintptr_t)ptr, sizeof(tret), \ - __func__); \ + "atomic_and_" #name "_nv():arg1"); \ kmsan_init_ret(sizeof(tret)); \ return atomic_and_##name##_nv(ptr, val); \ } @@ -1206,18 +1215,20 @@ kmsan__ustore_64(uint64_t *uaddr, uint64 void kmsan_atomic_or_##name(volatile targ1 *, targ2); \ void kmsan_atomic_or_##name(volatile targ1 *ptr, targ2 val) \ { \ - kmsan_check_arg(sizeof(ptr) + sizeof(val), __func__); \ + kmsan_check_arg(sizeof(ptr) + sizeof(val), \ + "atomic_or_" #name "():args"); \ kmsan_shadow_check((const void *)(uintptr_t)ptr, sizeof(tret), \ - __func__); \ + "atomic_or_" #name "():arg1"); \ atomic_or_##name(ptr, val); \ } \ tret atomic_or_##name##_nv(volatile targ1 *, targ2); \ tret kmsan_atomic_or_##name##_nv(volatile targ1 *, targ2); \ tret kmsan_atomic_or_##name##_nv(volatile targ1 *ptr, targ2 val) \ { \ - kmsan_check_arg(sizeof(ptr) + sizeof(val), __func__); \ + kmsan_check_arg(sizeof(ptr) + sizeof(val), \ + "atomic_or_" #name "_nv():args"); \ kmsan_shadow_check((const void *)(uintptr_t)ptr, sizeof(tret), \ - __func__); \ + "atomic_or_" #name "_nv():arg1"); \ kmsan_init_ret(sizeof(tret)); \ return atomic_or_##name##_nv(ptr, val); \ } @@ -1228,9 +1239,9 @@ kmsan__ustore_64(uint64_t *uaddr, uint64 tret kmsan_atomic_cas_##name(volatile targ1 *ptr, targ2 exp, targ2 new) \ { \ kmsan_check_arg(sizeof(ptr) + sizeof(exp) + sizeof(new), \ - __func__); \ + "atomic_cas_" #name "():args"); \ kmsan_shadow_check((const void *)(uintptr_t)ptr, sizeof(tret), \ - __func__); \ + "atomic_cas_" #name "():arg1"); \ kmsan_init_ret(sizeof(tret)); \ return atomic_cas_##name(ptr, exp, new); \ } \ @@ -1239,9 +1250,9 @@ kmsan__ustore_64(uint64_t *uaddr, uint64 tret kmsan_atomic_cas_##name##_ni(volatile targ1 *ptr, targ2 exp, targ2 new) \ { \ kmsan_check_arg(sizeof(ptr) + sizeof(exp) + sizeof(new), \ - __func__); \ + "atomic_cas_" #name "_ni():args"); \ kmsan_shadow_check((const void *)(uintptr_t)ptr, sizeof(tret), \ - __func__); \ + "atomic_cas_" #name "_ni():arg1"); \ kmsan_init_ret(sizeof(tret)); \ return atomic_cas_##name##_ni(ptr, exp, new); \ } @@ -1251,9 +1262,10 @@ kmsan__ustore_64(uint64_t *uaddr, uint64 tret kmsan_atomic_swap_##name(volatile targ1 *, targ2); \ tret kmsan_atomic_swap_##name(volatile targ1 *ptr, targ2 val) \ { \ - kmsan_check_arg(sizeof(ptr) + sizeof(val), __func__); \ + kmsan_check_arg(sizeof(ptr) + sizeof(val), \ + "atomic_swap_" #name "():args"); \ kmsan_shadow_check((const void *)(uintptr_t)ptr, sizeof(tret), \ - __func__); \ + "atomic_swap_" #name "():arg1"); \ kmsan_init_ret(sizeof(tret)); \ return atomic_swap_##name(ptr, val); \ } @@ -1263,18 +1275,20 @@ kmsan__ustore_64(uint64_t *uaddr, uint64 void kmsan_atomic_dec_##name(volatile targ1 *); \ void kmsan_atomic_dec_##name(volatile targ1 *ptr) \ { \ - kmsan_check_arg(sizeof(ptr), __func__); \ + kmsan_check_arg(sizeof(ptr), \ + "atomic_dec_" #name "():args"); \ kmsan_shadow_check((const void *)(uintptr_t)ptr, sizeof(tret), \ - __func__); \ + "atomic_dec_" #name "():arg1"); \ atomic_dec_##name(ptr); \ } \ tret atomic_dec_##name##_nv(volatile targ1 *); \ tret kmsan_atomic_dec_##name##_nv(volatile targ1 *); \ tret kmsan_atomic_dec_##name##_nv(volatile targ1 *ptr) \ { \ - kmsan_check_arg(sizeof(ptr), __func__); \ + kmsan_check_arg(sizeof(ptr), \ + "atomic_dec_" #name "_nv():args"); \ kmsan_shadow_check((const void *)(uintptr_t)ptr, sizeof(tret), \ - __func__); \ + "atomic_dec_" #name "_nv():arg1"); \ kmsan_init_ret(sizeof(tret)); \ return atomic_dec_##name##_nv(ptr); \ } @@ -1284,18 +1298,20 @@ kmsan__ustore_64(uint64_t *uaddr, uint64 void kmsan_atomic_inc_##name(volatile targ1 *); \ void kmsan_atomic_inc_##name(volatile targ1 *ptr) \ { \ - kmsan_check_arg(sizeof(ptr), __func__); \ + kmsan_check_arg(sizeof(ptr), \ + "atomic_inc_" #name "():args"); \ kmsan_shadow_check((const void *)(uintptr_t)ptr, sizeof(tret), \ - __func__); \ + "atomic_inc_" #name "():arg1"); \ atomic_inc_##name(ptr); \ } \ tret atomic_inc_##name##_nv(volatile targ1 *); \ tret kmsan_atomic_inc_##name##_nv(volatile targ1 *); \ tret kmsan_atomic_inc_##name##_nv(volatile targ1 *ptr) \ { \ - kmsan_check_arg(sizeof(ptr), __func__); \ + kmsan_check_arg(sizeof(ptr), \ + "atomic_inc_" #name "_nv():args"); \ kmsan_shadow_check((const void *)(uintptr_t)ptr, sizeof(tret), \ - __func__); \ + "atomic_inc_" #name "_nv():arg1"); \ kmsan_init_ret(sizeof(tret)); \ return atomic_inc_##name##_nv(ptr); \ } @@ -1443,7 +1459,7 @@ MSAN_BUS_READ_FUNC(8, 64) bus_size_t count) \ { \ kmsan_shadow_check(buf, sizeof(uint##bits##_t) * count, \ - "bus_space_write"); \ + "bus_space_write()"); \ bus_space_write_multi_##bytes(tag, hnd, size, buf, count); \ } \ void bus_space_write_multi_stream_##bytes(bus_space_tag_t, \ @@ -1455,7 +1471,7 @@ MSAN_BUS_READ_FUNC(8, 64) bus_size_t count) \ { \ kmsan_shadow_check(buf, sizeof(uint##bits##_t) * count, \ - "bus_space_write"); \ + "bus_space_write()"); \ bus_space_write_multi_stream_##bytes(tag, hnd, size, buf, count);\ } \ void bus_space_write_region_##bytes(bus_space_tag_t, bus_space_handle_t,\ @@ -1467,7 +1483,7 @@ MSAN_BUS_READ_FUNC(8, 64) bus_size_t count) \ { \ kmsan_shadow_check(buf, sizeof(uint##bits##_t) * count, \ - "bus_space_write"); \ + "bus_space_write()"); \ bus_space_write_region_##bytes(tag, hnd, size, buf, count); \ } \ void bus_space_write_region_stream_##bytes(bus_space_tag_t, \ @@ -1479,7 +1495,7 @@ MSAN_BUS_READ_FUNC(8, 64) bus_size_t count) \ { \ kmsan_shadow_check(buf, sizeof(uint##bits##_t) * count, \ - "bus_space_write"); \ + "bus_space_write()"); \ bus_space_write_region_stream_##bytes(tag, hnd, size, buf, count);\ } @@ -1499,7 +1515,7 @@ kmsan_dma_sync_linear(uint8_t *buf, bus_ if (init) { kmsan_shadow_fill(buf + offset, KMSAN_STATE_INITED, len); } else { - kmsan_shadow_check(buf + offset, len, "dma_sync_linear"); + kmsan_shadow_check(buf + offset, len, "LinearDmaSyncOp"); } } @@ -1522,7 +1538,7 @@ kmsan_dma_sync_mbuf(struct mbuf *m, bus_ KMSAN_STATE_INITED, minlen); } else { kmsan_shadow_check(mtod(m, char *) + offset, - minlen, "dma_sync_mbuf"); + minlen, "MbufDmaSyncOp"); } offset = 0; @@ -1552,7 +1568,7 @@ kmsan_dma_sync_uio(struct uio *uio, bus_ KMSAN_STATE_INITED, minlen); } else { kmsan_shadow_check(iov[i].iov_base, minlen, - "dma_sync_uio"); + "UioDmaSyncOp"); } resid -= minlen;