Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Feb 2025 11:51:55 GMT
From:      Ruslan Bukin <br@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 1fdb01ec5fdd - main - riscv vmm: fix remote fence.
Message-ID:  <202502031151.513Bptfk040491@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by br:

URL: https://cgit.FreeBSD.org/src/commit/?id=1fdb01ec5fdd23d3f6d7d743d1f438915ded40d4

commit 1fdb01ec5fdd23d3f6d7d743d1f438915ded40d4
Author:     Ruslan Bukin <br@FreeBSD.org>
AuthorDate: 2025-02-03 11:45:29 +0000
Commit:     Ruslan Bukin <br@FreeBSD.org>
CommitDate: 2025-02-03 11:45:32 +0000

    riscv vmm: fix remote fence.
    
    From the spec:
    
    The remote fence function acts as a full TLB flush if
    • start_addr and size are both 0
    • size is equal to 2^XLEN-1
    
    Differential Revision:  https://reviews.freebsd.org/D48716
---
 sys/riscv/vmm/vmm_fence.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/sys/riscv/vmm/vmm_fence.c b/sys/riscv/vmm/vmm_fence.c
index 6bba3f4b5dfe..f8b69aac77a9 100644
--- a/sys/riscv/vmm/vmm_fence.c
+++ b/sys/riscv/vmm/vmm_fence.c
@@ -103,7 +103,8 @@ vmm_fence_process_one(struct vmm_fence *fence)
 			sfence_vma_page(va);
 		break;
 	case VMM_RISCV_FENCE_VMA_ASID:
-		if (fence->start == 0 && fence->size == 0)
+		if ((fence->start == 0 && fence->size == 0) ||
+		    fence->size == -1)
 			sfence_vma_asid(fence->asid);
 		else
 			for (va = fence->start; va < fence->start + fence->size;
@@ -165,7 +166,8 @@ vmm_fence_add(struct vm *vm, cpuset_t *cpus, struct vmm_fence *fence)
 			atomic_set_32(&hypctx->fence_req, FENCE_REQ_I);
 			break;
 		case VMM_RISCV_FENCE_VMA:
-			if (fence->start == 0 && fence->size == 0)
+			if ((fence->start == 0 && fence->size == 0) ||
+			    fence->size == -1)
 				atomic_set_32(&hypctx->fence_req,
 				    FENCE_REQ_VMA);
 			else



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202502031151.513Bptfk040491>