Module Name: src Committed By: riastradh Date: Tue Jul 19 16:38:22 UTC 2022
Modified Files: src/sys/external/bsd/common/include/asm: barrier.h Log Message: linux: Use dsb(sy/st/ld) from arm/cpufunc.h for mb/wmb/rmb. Works on more Arm CPU types this way. From skrll. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/external/bsd/common/include/asm/barrier.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/external/bsd/common/include/asm/barrier.h diff -u src/sys/external/bsd/common/include/asm/barrier.h:1.15 src/sys/external/bsd/common/include/asm/barrier.h:1.16 --- src/sys/external/bsd/common/include/asm/barrier.h:1.15 Sun Jul 17 22:02:23 2022 +++ src/sys/external/bsd/common/include/asm/barrier.h Tue Jul 19 16:38:22 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: barrier.h,v 1.15 2022/07/17 22:02:23 riastradh Exp $ */ +/* $NetBSD: barrier.h,v 1.16 2022/07/19 16:38:22 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -51,11 +51,13 @@ * doesn't pass around the bus space tag and handle needed for that. */ #if defined(__aarch64__) -#define mb() __asm __volatile ("dsb sy" ::: "memory") -#define wmb() __asm __volatile ("dsb st" ::: "memory") -#define rmb() __asm __volatile ("dsb ld" ::: "memory") +#include <arm/cpufunc.h> +#define mb() dsb(sy) +#define wmb() dsb(st) +#define rmb() dsb(ld) #elif defined(__arm__) -#define mb() __asm __volatile ("dsb" ::: "memory") +#include <arm/cpufunc.h> +#define mb() dsb() #define wmb() mb() #define rmb() mb() #elif defined(__i386__) || defined(__x86_64__)