Module Name: src Committed By: riastradh Date: Sat Feb 25 00:32:26 UTC 2023
Modified Files: src/sys/arch/xen/include: hypervisor.h xenring.h Log Message: xen: Fix sense of xen_rmb/wmb to make sense. Use membar_acquire and membar_release, not membar_consumer and membar_producer, out of paranoia -- that better matches Linux's rmb/wmb (at least for non-I/O loads and stores). Proposed on port-xen: https://mail-index.netbsd.org/port-xen/2022/07/13/msg010248.html To generate a diff of this commit: cvs rdiff -u -r1.55 -r1.56 src/sys/arch/xen/include/hypervisor.h cvs rdiff -u -r1.6 -r1.7 src/sys/arch/xen/include/xenring.h 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/include/hypervisor.h diff -u src/sys/arch/xen/include/hypervisor.h:1.55 src/sys/arch/xen/include/hypervisor.h:1.56 --- src/sys/arch/xen/include/hypervisor.h:1.55 Wed Sep 7 00:40:19 2022 +++ src/sys/arch/xen/include/hypervisor.h Sat Feb 25 00:32:26 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: hypervisor.h,v 1.55 2022/09/07 00:40:19 knakahara Exp $ */ +/* $NetBSD: hypervisor.h,v 1.56 2023/02/25 00:32:26 riastradh Exp $ */ /* * Copyright (c) 2006 Manuel Bouyer. @@ -111,8 +111,8 @@ struct xen_npx_attach_args { #undef xen_wmb #define xen_mb() membar_sync() -#define xen_rmb() membar_producer() -#define xen_wmb() membar_consumer() +#define xen_rmb() membar_acquire() +#define xen_wmb() membar_release() #endif /* __XEN_INTERFACE_VERSION */ #include <machine/xen/hypercalls.h> Index: src/sys/arch/xen/include/xenring.h diff -u src/sys/arch/xen/include/xenring.h:1.6 src/sys/arch/xen/include/xenring.h:1.7 --- src/sys/arch/xen/include/xenring.h:1.6 Sat Apr 25 15:26:17 2020 +++ src/sys/arch/xen/include/xenring.h Sat Feb 25 00:32:26 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: xenring.h,v 1.6 2020/04/25 15:26:17 bouyer Exp $ */ +/* $NetBSD: xenring.h,v 1.7 2023/02/25 00:32:26 riastradh Exp $ */ /* * Glue goop for xbd ring request/response protocol structures. @@ -25,8 +25,8 @@ #undef xen_wmb #define xen_mb() membar_sync() -#define xen_rmb() membar_producer() -#define xen_wmb() membar_consumer() +#define xen_rmb() membar_acquire() +#define xen_wmb() membar_release() /* * Define ring types. These were previously part of the public API.