git: 38f90212c27f - stable/13 - cdefs: Make __nosanitizeaddress work for KASAN as well

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Mon, 01 Nov 2021 14:33:08 UTC
The branch stable/13 has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=38f90212c27fedab0257cd99f075b4860266046a

commit 38f90212c27fedab0257cd99f075b4860266046a
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2021-05-07 18:26:28 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2021-11-01 14:05:50 +0000

    cdefs: Make __nosanitizeaddress work for KASAN as well
    
    Add __nosanitizememory while I'm here.
    
    Reviewed by:    andrew, kib
    Sponsored by:   The FreeBSD Foundation
    
    (cherry picked from commit cfad8bd24f038e4779e937f48b05511f2dd4a5a8)
---
 sys/sys/cdefs.h | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h
index 30c462f6549b..dd11f4fb778d 100644
--- a/sys/sys/cdefs.h
+++ b/sys/sys/cdefs.h
@@ -859,12 +859,18 @@
 #define	__no_lock_analysis	__lock_annotate(no_thread_safety_analysis)
 
 /*
- * Function or variable should not be sanitized, i.e. by AddressSanitizer.
+ * Function or variable should not be sanitized, e.g., by AddressSanitizer.
  * GCC has the nosanitize attribute, but as a function attribute only, and
  * warns on use as a variable attribute.
  */
 #if __has_attribute(no_sanitize) && defined(__clang__)
+#ifdef _KERNEL
+#define __nosanitizeaddress	__attribute__((no_sanitize("kernel-address")))
+#define __nosanitizememory	__attribute__((no_sanitize("kernel-memory")))
+#else
 #define __nosanitizeaddress	__attribute__((no_sanitize("address")))
+#define __nosanitizememory	__attribute__((no_sanitize("memory")))
+#endif
 #define __nosanitizethread	__attribute__((no_sanitize("thread")))
 #else
 #define __nosanitizeaddress