On 13.02.2026 12:42, Alejandro Vallejo wrote:
> @@ -501,6 +492,9 @@ static void svm_save_cpu_state(struct vcpu *v, struct
> hvm_hw_cpu *data)
> {
> struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
>
> + data->sysenter_cs = vmcb->sysenter_cs;
> + data->sysenter_esp = vmcb->sysenter_esp;
> + data->sysenter_eip = vmcb->sysenter_eip;
> data->shadow_gs = vmcb->kerngsbase;
> data->msr_lstar = vmcb->lstar;
> data->msr_star = vmcb->star;
May I suggest to do writes by increasing address order? I.e. while this
already looks fine, ...
> @@ -512,11 +506,14 @@ static void svm_load_cpu_state(struct vcpu *v, struct
> hvm_hw_cpu *data)
> {
> struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
>
> - vmcb->kerngsbase = data->shadow_gs;
> - vmcb->lstar = data->msr_lstar;
> - vmcb->star = data->msr_star;
> - vmcb->cstar = data->msr_cstar;
> - vmcb->sfmask = data->msr_syscall_mask;
> + vmcb->sysenter_cs = data->sysenter_cs;
> + vmcb->sysenter_esp = data->sysenter_esp;
> + vmcb->sysenter_eip = data->sysenter_eip;
> + vmcb->kerngsbase = data->shadow_gs;
> + vmcb->lstar = data->msr_lstar;
> + vmcb->star = data->msr_star;
> + vmcb->cstar = data->msr_cstar;
> + vmcb->sfmask = data->msr_syscall_mask;
> v->arch.hvm.guest_efer = data->msr_efer;
> svm_update_guest_efer(v);
> }
... your additions would want to move down here (and the other writes may
then want re-ordering as well). Preferably with that:
Acked-by: Jan Beulich <[email protected]>
Jan