/kernel/linux/linux-6.6/arch/x86/include/asm/fpu/ |
H A D | api.h | 150 extern int fpu_enable_guest_xfd_features(struct fpu_guest *guest_fpu, u64 xfeatures); 153 extern void fpu_update_guest_xfd(struct fpu_guest *guest_fpu, u64 xfd); 156 static inline void fpu_update_guest_xfd(struct fpu_guest *guest_fpu, u64 xfd) { } in fpu_update_guest_xfd() argument
|
/kernel/linux/linux-6.6/arch/x86/kernel/fpu/ |
H A D | core.c | 274 * @guest_fpu: Pointer to the guest FPU container 281 int fpu_enable_guest_xfd_features(struct fpu_guest *guest_fpu, u64 xfeatures) in fpu_enable_guest_xfd_features() argument 286 xfeatures &= ~guest_fpu->xfeatures; in fpu_enable_guest_xfd_features() 290 return __xfd_enable_feature(xfeatures, guest_fpu); in fpu_enable_guest_xfd_features() 295 void fpu_update_guest_xfd(struct fpu_guest *guest_fpu, u64 xfd) in fpu_update_guest_xfd() argument 298 guest_fpu->fpstate->xfd = xfd; in fpu_update_guest_xfd() 299 if (guest_fpu->fpstate->in_use) in fpu_update_guest_xfd() 300 xfd_update_state(guest_fpu->fpstate); in fpu_update_guest_xfd() 330 int fpu_swap_kvm_fpstate(struct fpu_guest *guest_fpu, bool enter_guest) in fpu_swap_kvm_fpstate() argument 332 struct fpstate *guest_fps = guest_fpu in fpu_swap_kvm_fpstate() [all...] |
H A D | xstate.c | 1490 * @guest_fpu: Pointer to a guest FPU container. NULL for host allocations 1499 unsigned int usize, struct fpu_guest *guest_fpu) in fpstate_realloc() 1516 * When a guest FPU is supplied, use @guest_fpu->fpstate in fpstate_realloc() 1519 curfps = guest_fpu ? guest_fpu->fpstate : fpu->fpstate; in fpstate_realloc() 1524 if (guest_fpu) { in fpstate_realloc() 1528 guest_fpu->xfeatures |= xfeatures; in fpstate_realloc() 1529 guest_fpu->uabi_size = usize; in fpstate_realloc() 1548 if (guest_fpu) { in fpstate_realloc() 1549 guest_fpu in fpstate_realloc() 1498 fpstate_realloc(u64 xfeatures, unsigned int ksize, unsigned int usize, struct fpu_guest *guest_fpu) fpstate_realloc() argument 1675 __xfd_enable_feature(u64 xfd_err, struct fpu_guest *guest_fpu) __xfd_enable_feature() argument [all...] |
H A D | xstate.h | 163 extern int __xfd_enable_feature(u64 which, struct fpu_guest *guest_fpu); 167 static inline int __xfd_enable_feature(u64 which, struct fpu_guest *guest_fpu) { in __xfd_enable_feature() argument
|
/kernel/linux/linux-6.6/arch/x86/kvm/ |
H A D | x86.c | 3972 fpu_update_guest_xfd(&vcpu->arch.guest_fpu, data); in kvm_set_msr_common() 3982 vcpu->arch.guest_fpu.xfd_err = data; in kvm_set_msr_common() 4332 msr_info->data = vcpu->arch.guest_fpu.fpstate->xfd; in kvm_get_msr_common() 4339 msr_info->data = vcpu->arch.guest_fpu.xfd_err; in kvm_get_msr_common() 5410 if (fpstate_is_confidential(&vcpu->arch.guest_fpu)) in kvm_vcpu_ioctl_x86_get_xsave2() 5413 fpu_copy_guest_fpstate_to_uabi(&vcpu->arch.guest_fpu, state, size, in kvm_vcpu_ioctl_x86_get_xsave2() 5427 if (fpstate_is_confidential(&vcpu->arch.guest_fpu)) in kvm_vcpu_ioctl_x86_set_xsave() 5430 return fpu_copy_uabi_to_guest_fpstate(&vcpu->arch.guest_fpu, in kvm_vcpu_ioctl_x86_set_xsave() 5860 if (vcpu->arch.guest_fpu.uabi_size > sizeof(struct kvm_xsave)) in kvm_arch_vcpu_ioctl() 5877 int size = vcpu->arch.guest_fpu in kvm_arch_vcpu_ioctl() [all...] |
H A D | cpuid.c | 166 return fpu_enable_guest_xfd_features(&vcpu->arch.guest_fpu, xfeatures); in kvm_check_cpuid()
|
/kernel/linux/linux-5.10/arch/x86/kvm/ |
H A D | x86.c | 4562 struct xregs_state *xsave = &vcpu->arch.guest_fpu->state.xsave; in fill_xsave() 4604 struct xregs_state *xsave = &vcpu->arch.guest_fpu->state.xsave; in load_xsave() 4652 &vcpu->arch.guest_fpu->state.fxsave, in kvm_vcpu_ioctl_x86_get_xsave() 4681 memcpy(&vcpu->arch.guest_fpu->state.fxsave, in kvm_vcpu_ioctl_x86_set_xsave() 9576 __copy_kernel_to_fpregs(&vcpu->arch.guest_fpu->state, in kvm_load_guest_fpu() 9590 kvm_save_current_fpu(vcpu->arch.guest_fpu); in kvm_put_guest_fpu() 10098 fxsave = &vcpu->arch.guest_fpu->state.fxsave; in kvm_arch_vcpu_ioctl_get_fpu() 10118 fxsave = &vcpu->arch.guest_fpu->state.fxsave; in kvm_arch_vcpu_ioctl_set_fpu() 10174 fpstate_init(&vcpu->arch.guest_fpu->state); in fx_init() 10176 vcpu->arch.guest_fpu in fx_init() [all...] |
/kernel/linux/linux-5.10/arch/x86/include/asm/ |
H A D | kvm_host.h | 608 * "guest_fpu" state here contains the guest FPU context, with the 612 struct fpu *guest_fpu; member
|
/kernel/linux/linux-6.6/arch/x86/include/asm/ |
H A D | kvm_host.h | 801 struct fpu_guest guest_fpu; member
|
/kernel/linux/linux-6.6/arch/x86/kvm/vmx/ |
H A D | vmx.c | 6938 * Save xfd_err to guest_fpu before interrupt is enabled, so the in handle_nm_fault_irqoff() 6946 * Do it conditionally upon guest_fpu::xfd. xfd_err matters in handle_nm_fault_irqoff() 6951 if (vcpu->arch.guest_fpu.fpstate->xfd) in handle_nm_fault_irqoff() 6952 rdmsrl(MSR_IA32_XFD_ERR, vcpu->arch.guest_fpu.xfd_err); in handle_nm_fault_irqoff()
|
/kernel/linux/linux-6.6/arch/x86/kvm/svm/ |
H A D | svm.c | 1457 * Mark vcpu->arch.guest_fpu->fpstate as scratch so it won't in svm_vcpu_create() 1460 fpstate_set_confidential(&vcpu->arch.guest_fpu); in svm_vcpu_create()
|