x86/fpu: Add guest support to xfd_enable_feature()
authorThomas Gleixner <tglx@linutronix.de>
Wed, 5 Jan 2022 12:35:17 +0000 (04:35 -0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 14 Jan 2022 18:43:11 +0000 (13:43 -0500)
commitc270ce393dfd700e7510a4579568deeefba954fd
treef7a95048f51a0a8f2e2aee7541e37d2eced7ecd0
parentb0237dad2d7f8820b5b415291431d8259e787470
x86/fpu: Add guest support to xfd_enable_feature()

Guest support for dynamically enabled FPU features requires a few
modifications to the enablement function which is currently invoked from
the #NM handler:

  1) Use guest permissions and sizes for the update

  2) Update fpu_guest state accordingly

  3) Take into account that the enabling can be triggered either from a
     running guest via XSETBV and MSR_IA32_XFD write emulation or from
     a guest restore. In the latter case the guests fpstate is not the
     current tasks active fpstate.

Split the function and implement the guest mechanics throughout the
callchain.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Jing Liu <jing2.liu@intel.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Message-Id: <20220105123532.12586-7-yang.zhong@intel.com>
[Add 32-bit stub for __xfd_enable_feature. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kernel/fpu/xstate.c
arch/x86/kernel/fpu/xstate.h