]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
x86/fpu: Drop @perm from guest pseudo FPU container
authorChao Gao <chao.gao@intel.com>
Tue, 6 May 2025 09:36:07 +0000 (17:36 +0800)
committerIngo Molnar <mingo@kernel.org>
Tue, 6 May 2025 09:52:22 +0000 (11:52 +0200)
Remove @perm from the guest pseudo FPU container. The field is
initialized during allocation and never used later.

Rename fpu_init_guest_permissions() to show that its sole purpose is to
lock down guest permissions.

Suggested-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Chao Gao <chao.gao@intel.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Chang S. Bae <chang.seok.bae@intel.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Eric Biggers <ebiggers@google.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mitchell Levy <levymitchell0@gmail.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Samuel Holland <samuel.holland@sifive.com>
Cc: Sean Christopherson <seanjc@google.com>
Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
Link: https://lore.kernel.org/kvm/af972fe5981b9e7101b64de43c7be0a8cc165323.camel@redhat.com/
Link: https://lore.kernel.org/r/20250506093740.2864458-3-chao.gao@intel.com
arch/x86/include/asm/fpu/types.h
arch/x86/kernel/fpu/core.c

index e64db0eb9d2770c25cdca6ecd48852d85026a6b5..1c94121acd3da7bf855c7740ddee0cd7f1793c71 100644 (file)
@@ -535,13 +535,6 @@ struct fpu_guest {
         */
        u64                             xfeatures;
 
-       /*
-        * @perm:                       xfeature bitmap of features which are
-        *                              permitted to be enabled for the guest
-        *                              vCPU.
-        */
-       u64                             perm;
-
        /*
         * @xfd_err:                    Save the guest value.
         */
index 105b1b80d88dc2a9354078718a50f0530bc2fb54..1cda5b78540be841ccd52a318341b76f643dce5e 100644 (file)
@@ -212,7 +212,7 @@ void fpu_reset_from_exception_fixup(void)
 #if IS_ENABLED(CONFIG_KVM)
 static void __fpstate_reset(struct fpstate *fpstate, u64 xfd);
 
-static void fpu_init_guest_permissions(struct fpu_guest *gfpu)
+static void fpu_lock_guest_permissions(void)
 {
        struct fpu_state_perm *fpuperm;
        u64 perm;
@@ -228,8 +228,6 @@ static void fpu_init_guest_permissions(struct fpu_guest *gfpu)
        WRITE_ONCE(fpuperm->__state_perm, perm | FPU_GUEST_PERM_LOCKED);
 
        spin_unlock_irq(&current->sighand->siglock);
-
-       gfpu->perm = perm & ~FPU_GUEST_PERM_LOCKED;
 }
 
 bool fpu_alloc_guest_fpstate(struct fpu_guest *gfpu)
@@ -250,7 +248,6 @@ bool fpu_alloc_guest_fpstate(struct fpu_guest *gfpu)
 
        gfpu->fpstate           = fpstate;
        gfpu->xfeatures         = fpu_kernel_cfg.default_features;
-       gfpu->perm              = fpu_kernel_cfg.default_features;
 
        /*
         * KVM sets the FP+SSE bits in the XSAVE header when copying FPU state
@@ -265,7 +262,7 @@ bool fpu_alloc_guest_fpstate(struct fpu_guest *gfpu)
        if (WARN_ON_ONCE(fpu_user_cfg.default_size > gfpu->uabi_size))
                gfpu->uabi_size = fpu_user_cfg.default_size;
 
-       fpu_init_guest_permissions(gfpu);
+       fpu_lock_guest_permissions();
 
        return true;
 }