Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tools/virtio: add barrier for aarch64

Add barrier for aarch64 for cross compiling, and most are from Linux Kernel.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Link: https://lore.kernel.org/r/20201209084205.24062-4-peng.fan@oss.nxp.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

authored by

Peng Fan and committed by
Michael S. Tsirkin
1a5514cb b9ca93bc

+10
+10
tools/virtio/asm/barrier.h
··· 16 16 # define mb() abort() 17 17 # define dma_rmb() abort() 18 18 # define dma_wmb() abort() 19 + #elif defined(__aarch64__) 20 + #define dmb(opt) asm volatile("dmb " #opt : : : "memory") 21 + #define virt_mb() __sync_synchronize() 22 + #define virt_rmb() dmb(ishld) 23 + #define virt_wmb() dmb(ishst) 24 + #define virt_store_mb(var, value) do { WRITE_ONCE(var, value); dmb(ish); } while (0) 25 + /* Weak barriers should be used. If not - it's a bug */ 26 + # define mb() abort() 27 + # define dma_rmb() abort() 28 + # define dma_wmb() abort() 19 29 #else 20 30 #error Please fill in barrier macros 21 31 #endif