File tree Expand file tree Collapse file tree 2 files changed +21
-21
lines changed Expand file tree Collapse file tree 2 files changed +21
-21
lines changed Original file line number Diff line number Diff line change @@ -2628,6 +2628,27 @@ void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value)
2628
2628
}
2629
2629
}
2630
2630
2631
+ int kvm_set_apic_base (struct kvm_vcpu * vcpu , struct msr_data * msr_info )
2632
+ {
2633
+ enum lapic_mode old_mode = kvm_get_apic_mode (vcpu );
2634
+ enum lapic_mode new_mode = kvm_apic_mode (msr_info -> data );
2635
+ u64 reserved_bits = kvm_vcpu_reserved_gpa_bits_raw (vcpu ) | 0x2ff |
2636
+ (guest_cpuid_has (vcpu , X86_FEATURE_X2APIC ) ? 0 : X2APIC_ENABLE );
2637
+
2638
+ if ((msr_info -> data & reserved_bits ) != 0 || new_mode == LAPIC_MODE_INVALID )
2639
+ return 1 ;
2640
+ if (!msr_info -> host_initiated ) {
2641
+ if (old_mode == LAPIC_MODE_X2APIC && new_mode == LAPIC_MODE_XAPIC )
2642
+ return 1 ;
2643
+ if (old_mode == LAPIC_MODE_DISABLED && new_mode == LAPIC_MODE_X2APIC )
2644
+ return 1 ;
2645
+ }
2646
+
2647
+ kvm_lapic_set_base (vcpu , msr_info -> data );
2648
+ kvm_recalculate_apic_map (vcpu -> kvm );
2649
+ return 0 ;
2650
+ }
2651
+
2631
2652
void kvm_apic_update_apicv (struct kvm_vcpu * vcpu )
2632
2653
{
2633
2654
struct kvm_lapic * apic = vcpu -> arch .apic ;
Original file line number Diff line number Diff line change @@ -668,27 +668,6 @@ static void drop_user_return_notifiers(void)
668
668
kvm_on_user_return (& msrs -> urn );
669
669
}
670
670
671
- int kvm_set_apic_base (struct kvm_vcpu * vcpu , struct msr_data * msr_info )
672
- {
673
- enum lapic_mode old_mode = kvm_get_apic_mode (vcpu );
674
- enum lapic_mode new_mode = kvm_apic_mode (msr_info -> data );
675
- u64 reserved_bits = kvm_vcpu_reserved_gpa_bits_raw (vcpu ) | 0x2ff |
676
- (guest_cpuid_has (vcpu , X86_FEATURE_X2APIC ) ? 0 : X2APIC_ENABLE );
677
-
678
- if ((msr_info -> data & reserved_bits ) != 0 || new_mode == LAPIC_MODE_INVALID )
679
- return 1 ;
680
- if (!msr_info -> host_initiated ) {
681
- if (old_mode == LAPIC_MODE_X2APIC && new_mode == LAPIC_MODE_XAPIC )
682
- return 1 ;
683
- if (old_mode == LAPIC_MODE_DISABLED && new_mode == LAPIC_MODE_X2APIC )
684
- return 1 ;
685
- }
686
-
687
- kvm_lapic_set_base (vcpu , msr_info -> data );
688
- kvm_recalculate_apic_map (vcpu -> kvm );
689
- return 0 ;
690
- }
691
-
692
671
/*
693
672
* Handle a fault on a hardware virtualization (VMX or SVM) instruction.
694
673
*
You can’t perform that action at this time.
0 commit comments