|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [RFCv4,26/35] plat/virtio: Use better iormb/iowmb on arm64
Hi, Justin.
What is the purpose of the inline assembly part from the read barrier __iormb()?
I understand that the "memory" clobber acts as a compiler memory barrier, but I
couldn't get the role of the actual assembly code.
Also, don't we need a "memory" clobber for __iowmb() too?
+#define __iormb(v) \
+({ \
+ unsigned long tmp; \
+ dmb(oshld); \
+ \
+ asm volatile("eor %0, %1, %1\n" \
+ "cbnz %0, ." \
+ : "=r" (tmp) : "r" ((unsigned long)(v)) \
+ : "memory"); \
+})
+
+#define __iowmb() dmb(oshst)
Reviewed-by: Razvan Virtan <virtanrazvan@xxxxxxxxx>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |