git: d69ab49ce081 - main - bhyve/riscv: fix HSM extension handling.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 05 Feb 2025 09:34:40 UTC
The branch main has been updated by br:
URL: https://cgit.FreeBSD.org/src/commit/?id=d69ab49ce0814a9c3da7ba6567ed71f8713dc192
commit d69ab49ce0814a9c3da7ba6567ed71f8713dc192
Author: Ruslan Bukin <br@FreeBSD.org>
AuthorDate: 2025-02-05 09:23:43 +0000
Commit: Ruslan Bukin <br@FreeBSD.org>
CommitDate: 2025-02-05 09:24:35 +0000
bhyve/riscv: fix HSM extension handling.
Pass private data from supervisor as the second argument on secondary
CPU startup.
This is used by Linux guest.
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D48807
---
usr.sbin/bhyve/riscv/vmexit.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/usr.sbin/bhyve/riscv/vmexit.c b/usr.sbin/bhyve/riscv/vmexit.c
index b7d1a272b87e..e2efd53bdede 100644
--- a/usr.sbin/bhyve/riscv/vmexit.c
+++ b/usr.sbin/bhyve/riscv/vmexit.c
@@ -207,6 +207,11 @@ vmexit_ecall_hsm(struct vmctx *ctx __unused, struct vcpu *vcpu __unused,
vme->u.ecall.args[1]);
assert(error == 0);
+ /* Pass private data. */
+ error = vm_set_register(newvcpu, VM_REG_GUEST_A1,
+ vme->u.ecall.args[2]);
+ assert(error == 0);
+
vm_resume_cpu(newvcpu);
CPU_SET_ATOMIC(hart_id, &running_hartmask);