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>