Page MenuHomeFreeBSD

D54857.id170346.diff
No OneTemporary

D54857.id170346.diff

diff --git a/sys/riscv/include/cpufunc.h b/sys/riscv/include/cpufunc.h
--- a/sys/riscv/include/cpufunc.h
+++ b/sys/riscv/include/cpufunc.h
@@ -119,6 +119,12 @@
: "memory");
}
+static __inline void
+hfence_gvma(void)
+{
+ __asm __volatile("hfence.gvma" ::: "memory");
+}
+
#define rdcycle() csr_read64(cycle)
#define rdtime() csr_read64(time)
#define rdinstret() csr_read64(instret)
diff --git a/sys/riscv/vmm/vmm_riscv.c b/sys/riscv/vmm/vmm_riscv.c
--- a/sys/riscv/vmm/vmm_riscv.c
+++ b/sys/riscv/vmm/vmm_riscv.c
@@ -625,7 +625,7 @@
* have been modified, it may be necessary to execute an HFENCE.GVMA
* instruction (see Section 5.3.2) before or after writing hgatp.
*/
- __asm __volatile("hfence.gvma" ::: "memory");
+ hfence_gvma();
csr_write(hgatp, pmap->pm_satp);
if (has_sstc)

File Metadata

Mime Type
text/plain
Expires
Thu, Apr 30, 2:03 AM (11 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32430378
Default Alt Text
D54857.id170346.diff (815 B)

Event Timeline