KVM: x86: Drop __exit from kvm_x86_ops' hardware_unsetup()
authorSean Christopherson <sean.j.christopherson@intel.com>
Sat, 21 Mar 2020 20:26:01 +0000 (13:26 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 31 Mar 2020 14:48:09 +0000 (10:48 -0400)
Remove the __exit annotation from VMX hardware_unsetup(), the hook
can be reached during kvm_init() by way of kvm_arch_hardware_unsetup()
if failure occurs at various points during initialization.

Removing the annotation also lets us annotate vmx_x86_ops and svm_x86_ops
with __initdata; otherwise, objtool complains because it doesn't
understand that the vendor specific __initdata is being copied by value
to a non-__initdata instance.

Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Message-Id: <20200321202603.19355-8-sean.j.christopherson@intel.com>
Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/vmx/vmx.c

index 54f9912..42a2d0d 100644 (file)
@@ -1056,7 +1056,7 @@ static inline u16 kvm_lapic_irq_dest_mode(bool dest_mode_logical)
 struct kvm_x86_ops {
        int (*hardware_enable)(void);
        void (*hardware_disable)(void);
-       void (*hardware_unsetup)(void);            /* __exit */
+       void (*hardware_unsetup)(void);
        bool (*cpu_has_accelerated_tpr)(void);
        bool (*has_emulated_msr)(int index);
        void (*cpuid_update)(struct kvm_vcpu *vcpu);
index a4cd851..f23c2cf 100644 (file)
@@ -7646,7 +7646,7 @@ static bool vmx_apic_init_signal_blocked(struct kvm_vcpu *vcpu)
        return to_vmx(vcpu)->nested.vmxon;
 }
 
-static __exit void hardware_unsetup(void)
+static void hardware_unsetup(void)
 {
        if (nested)
                nested_vmx_hardware_unsetup();