Module Name: src Committed By: riastradh Date: Wed Mar 1 08:13:44 UTC 2023
Modified Files: src/sys/arch/xen/x86: hypervisor_machdep.c Log Message: xen/x86: Need kpreempt_disable/enable around curcpu() access. This is called with `hardware' interrupts enabled (between sti and cli), so presumably preemption is possible here. XXX pullup-8 XXX pullup-9 XXX pullup-10 To generate a diff of this commit: cvs rdiff -u -r1.45 -r1.46 src/sys/arch/xen/x86/hypervisor_machdep.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/arch/xen/x86/hypervisor_machdep.c diff -u src/sys/arch/xen/x86/hypervisor_machdep.c:1.45 src/sys/arch/xen/x86/hypervisor_machdep.c:1.46 --- src/sys/arch/xen/x86/hypervisor_machdep.c:1.45 Wed Sep 7 00:40:19 2022 +++ src/sys/arch/xen/x86/hypervisor_machdep.c Wed Mar 1 08:13:44 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: hypervisor_machdep.c,v 1.45 2022/09/07 00:40:19 knakahara Exp $ */ +/* $NetBSD: hypervisor_machdep.c,v 1.46 2023/03/01 08:13:44 riastradh Exp $ */ /* * @@ -54,7 +54,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: hypervisor_machdep.c,v 1.45 2022/09/07 00:40:19 knakahara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hypervisor_machdep.c,v 1.46 2023/03/01 08:13:44 riastradh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -192,6 +192,8 @@ stipending(void) volatile struct vcpu_info *vci; int ret; + kpreempt_disable(); + ret = 0; ci = curcpu(); vci = ci->ci_vcpu; @@ -227,6 +229,8 @@ stipending(void) x86_enable_intr(); } + kpreempt_enable(); + return (ret); }