Module Name: src Committed By: martin Date: Fri Sep 6 19:37:51 UTC 2019
Modified Files: src/sys/kern [netbsd-9]: subr_ipi.c Log Message: Pull up following revision(s) (requested by ryo in ticket #181): sys/kern/subr_ipi.c: revision 1.5 Requires memory barrier before IPI ack. Problem was seen on the aarch64 cpus. Fixes PR/54009 To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.4.4.1 src/sys/kern/subr_ipi.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_ipi.c diff -u src/sys/kern/subr_ipi.c:1.4 src/sys/kern/subr_ipi.c:1.4.4.1 --- src/sys/kern/subr_ipi.c:1.4 Sat Apr 6 02:59:05 2019 +++ src/sys/kern/subr_ipi.c Fri Sep 6 19:37:51 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_ipi.c,v 1.4 2019/04/06 02:59:05 thorpej Exp $ */ +/* $NetBSD: subr_ipi.c,v 1.4.4.1 2019/09/06 19:37:51 martin Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: subr_ipi.c,v 1.4 2019/04/06 02:59:05 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_ipi.c,v 1.4.4.1 2019/09/06 19:37:51 martin Exp $"); #include <sys/param.h> #include <sys/types.h> @@ -331,6 +331,9 @@ ipi_msg_cpu_handler(void *arg __unused) msg->func(msg->arg); /* Ack the request. */ +#ifndef __HAVE_ATOMIC_AS_MEMBAR + membar_producer(); +#endif atomic_dec_uint(&msg->_pending); } }