mirror of
https://github.com/dynup/kpatch
synced 2025-01-04 20:19:36 +00:00
31f6b02279
Switch to klp shadow-variable API. Signed-off-by: Artem Savkov <asavkov@redhat.com>
26 lines
887 B
Diff
26 lines
887 B
Diff
Index: src/arch/x86/kvm/vmx.c
|
|
===================================================================
|
|
--- src.orig/arch/x86/kvm/vmx.c
|
|
+++ src/arch/x86/kvm/vmx.c
|
|
@@ -11406,10 +11406,20 @@ static void vmx_leave_nested(struct kvm_
|
|
* It should only be called before L2 actually succeeded to run, and when
|
|
* vmcs01 is current (it doesn't leave_guest_mode() or switch vmcss).
|
|
*/
|
|
+#include <linux/livepatch.h>
|
|
static void nested_vmx_entry_failure(struct kvm_vcpu *vcpu,
|
|
struct vmcs12 *vmcs12,
|
|
u32 reason, unsigned long qualification)
|
|
{
|
|
+ int *kpatch;
|
|
+
|
|
+ kpatch = klp_shadow_alloc(vcpu, 0, sizeof(*kpatch),
|
|
+ GFP_KERNEL, NULL, NULL);
|
|
+ if (kpatch) {
|
|
+ klp_shadow_get(vcpu, 0);
|
|
+ klp_shadow_free(vcpu, 0, NULL);
|
|
+ }
|
|
+
|
|
load_vmcs12_host_state(vcpu, vmcs12);
|
|
vmcs12->vm_exit_reason = reason | VMX_EXIT_REASONS_FAILED_VMENTRY;
|
|
vmcs12->exit_qualification = qualification;
|