Module Name:    src
Committed By:   ad
Date:           Wed May 20 18:39:25 UTC 2020

Modified Files:
        src/sys/arch/amd64/amd64: cpufunc.S

Log Message:
Deal with KMSAN fussiness.  Pointed out by msaitoh@.


To generate a diff of this commit:
cvs rdiff -u -r1.54 -r1.55 src/sys/arch/amd64/amd64/cpufunc.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/amd64/amd64/cpufunc.S
diff -u src/sys/arch/amd64/amd64/cpufunc.S:1.54 src/sys/arch/amd64/amd64/cpufunc.S:1.55
--- src/sys/arch/amd64/amd64/cpufunc.S:1.54	Tue May 19 21:54:10 2020
+++ src/sys/arch/amd64/amd64/cpufunc.S	Wed May 20 18:39:25 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpufunc.S,v 1.54 2020/05/19 21:54:10 ad Exp $	*/
+/*	$NetBSD: cpufunc.S,v 1.55 2020/05/20 18:39:25 ad Exp $	*/
 
 /*
  * Copyright (c) 1998, 2007, 2008, 2020 The NetBSD Foundation, Inc.
@@ -206,7 +206,23 @@ ENTRY(x86_hotpatch)
 END(x86_hotpatch)
 #endif /* !XENPV */
 
-ENTRY(tsc_get_timecount)
+/* Could be exact same as cpu_counter but for KASAN fussiness. */
+ENTRY(cpu_counter32)
+	movq	CPUVAR(CURLWP), %rcx
+1:
+	movq	L_NCSW(%rcx), %rdi
+	rdtsc
+	addl	CPUVAR(CC_SKEW), %eax
+	cmpq	%rdi, L_NCSW(%rcx)
+	jne	2f
+	KMSAN_INIT_RET(4)
+	ret
+2:
+	jmp	1b
+END(cpu_counter32)
+STRONG_ALIAS(tsc_get_timecount, cpu_counter32)
+
+ENTRY(cpu_counter)
 	movq	CPUVAR(CURLWP), %rcx
 1:
 	movq	L_NCSW(%rcx), %rdi
@@ -216,14 +232,11 @@ ENTRY(tsc_get_timecount)
 	addq	CPUVAR(CC_SKEW), %rax
 	cmpq	%rdi, L_NCSW(%rcx)
 	jne	2f
-	KMSAN_INIT_RET(4)
+	KMSAN_INIT_RET(8)
 	ret
 2:
 	jmp	1b
-END(tsc_get_timecount)
-
-STRONG_ALIAS(cpu_counter, tsc_get_timecount)
-STRONG_ALIAS(cpu_counter32, tsc_get_timecount)
+END(cpu_counter)
 
 ENTRY(rdmsr_safe)
 	movq	CPUVAR(CURLWP), %r8

Reply via email to