Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 09 Feb 2026 19:41:38 +0000
From:      Mitchell Horne <mhorne@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Cc:        Doongar Singh <doonbsd@gmail.com>
Subject:   git: 4a7d42f35107 - stable/15 - riscv: Add macro for hfence.gvma instruction
Message-ID:  <698a3872.3b3a9.469e6181@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/15 has been updated by mhorne:

URL: https://cgit.FreeBSD.org/src/commit/?id=4a7d42f35107a27c293e0a2b350d15e6829856c7

commit 4a7d42f35107a27c293e0a2b350d15e6829856c7
Author:     Doongar Singh <doonbsd@gmail.com>
AuthorDate: 2026-01-26 16:18:22 +0000
Commit:     Mitchell Horne <mhorne@FreeBSD.org>
CommitDate: 2026-02-09 19:38:23 +0000

    riscv: Add macro for hfence.gvma instruction
    
    Add an inline function hfence_gvma() for hfence.gvma instruction.
    
    Signed-off-by:  Doongar Singh <doonbsd@gmail.com>
    Reviewed by:    mhorne, markj
    Differential Revision:  https://reviews.freebsd.org/D54857
    
    (cherry picked from commit 972c488bf4117d9eb29e5753c6c5a2250154df3d)
---
 sys/riscv/include/cpufunc.h | 7 +++++++
 sys/riscv/vmm/vmm_riscv.c   | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/sys/riscv/include/cpufunc.h b/sys/riscv/include/cpufunc.h
index 75b22632c546..c39f17131eb7 100644
--- a/sys/riscv/include/cpufunc.h
+++ b/sys/riscv/include/cpufunc.h
@@ -119,6 +119,13 @@ sfence_vma_asid_page(uint64_t asid, uintptr_t addr)
 	    : "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
index 0e46aca60fdf..5d39c96c682a 100644
--- a/sys/riscv/vmm/vmm_riscv.c
+++ b/sys/riscv/vmm/vmm_riscv.c
@@ -625,7 +625,7 @@ vmmops_run(void *vcpui, register_t pc, pmap_t pmap, struct vm_eventinfo *evinfo)
 	 * 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)


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?698a3872.3b3a9.469e6181>