On Wed, 7 Apr 2021 22:16:59 +0000 Sean Christopherson wrote: > On Thu, Apr 08, 2021, Kai Huang wrote: > > +int handle_encls(struct kvm_vcpu *vcpu) > > +{ > > + u32 leaf = (u32)vcpu->arch.regs[VCPU_REGS_RAX]; > > Please use kvm_rax_read(), I've been trying to discourage direct access to the > array. Which is ironic because I'm 100% certain I'm to blame for this. :-) Sure. But I think still, we should convert it to (u32) explicitly, so: u32 leaf = (u32)kvm_rax_read(vcpu); ? > > > + > > + if (!encls_leaf_enabled_in_guest(vcpu, leaf)) { > > + kvm_queue_exception(vcpu, UD_VECTOR); > > + } else if (!sgx_enabled_in_guest_bios(vcpu)) { > > + kvm_inject_gp(vcpu, 0); > > + } else { > > + WARN(1, "KVM: unexpected exit on ENCLS[%u]", leaf); > > + vcpu->run->exit_reason = KVM_EXIT_UNKNOWN; > > + vcpu->run->hw.hardware_exit_reason = EXIT_REASON_ENCLS; > > + return 0; > > + } > > + return 1; > > +}