Hi Sagi,
On 10/28/25 2:20 PM, Sagi Shahar wrote:
Since the rip register is inaccessible for TDX VMs, we need a different way to set the guest entry point for TDX VMs. This is done by writing the guest code address to a predefined location in the guest memory and loading it into rip as part of the TDX boot code.
Check the changelog for code impersonation, imperative tone, and matching the KVM requirements.
Signed-off-by: Sagi Shahar sagis@google.com
tools/testing/selftests/kvm/lib/x86/processor.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/tools/testing/selftests/kvm/lib/x86/processor.c b/tools/testing/selftests/kvm/lib/x86/processor.c index 036875fe140f..17f5a381fe43 100644 --- a/tools/testing/selftests/kvm/lib/x86/processor.c +++ b/tools/testing/selftests/kvm/lib/x86/processor.c @@ -691,9 +691,13 @@ void vcpu_arch_set_entry_point(struct kvm_vcpu *vcpu, void *guest_code) { struct kvm_regs regs;
- vcpu_regs_get(vcpu, ®s);
- regs.rip = (unsigned long) guest_code;
- vcpu_regs_set(vcpu, ®s);
- if (is_tdx_vm(vcpu->vm))
vm_tdx_set_vcpu_entry_point(vcpu, guest_code);
Please use braces around both branches. (for reference "Placing Braces and Spaces" in Documentation/process/coding-style.rst)
- else {
vcpu_regs_get(vcpu, ®s);regs.rip = (unsigned long) guest_code;
You can drop the space after the cast above.
vcpu_regs_set(vcpu, ®s);- }
} vm_vaddr_t kvm_allocate_vcpu_stack(struct kvm_vm *vm)
Reinette