KVM: apic: fix LDR calculation in x2apic mode
PATCH 1/1 KVM: apic: fix LDR calculation in x2apic mode
Signed-off-by Gleb Natapov <[email protected]>
arch/x86/kvm/lapic.c +1 -1
@@ -1311,7 +1311,7 @@ void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value) vcpu->arch.apic_base = value;if (apic_x2apic_mode (apic)) {u32 id =kvm_apic_id (apic); -u32 ldr = ((id & ~0xf ) <<16 ) | (1 << (id &0xf )); +u32 ldr = ((id >>4 ) <<16 ) | (1 << (id &0xf ));kvm_apic_set_ldr (apic, ldr); } apic->base_address = apic->vcpu->arch.apic_base &
--
Gleb.
Quoted 15 lines · Gleb Natapov
Signed-off-by Gleb Natapov <[email protected]>arch/x86/kvm/lapic.c +1
-2@@ -1311,7 +1311,7 @@ void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value) vcpu->arch.apic_base = value;if (apic_x2apic_mode (apic)) {u32 id =kvm_apic_id (apic); -u32 ldr = ((id & ~0xf ) <<16 ) | (1 << (id &0xf )); +u32 ldr = ((id >>4 ) <<16 ) | (1 << (id &0xf ));kvm_apic_set_ldr (apic, ldr); } apic->base_address = apic->vcpu->arch.apic_base & --
Quoted 3 lines
Gleb.
.
Reviewed-by Chegu Vinod <[email protected]>
Tested-by Chegu Vinod <[email protected]>
Avi Kivity
Appliedarch/x86/kvm/lapic.c void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value) · line 1316
Quoted 13 lines · Gleb Natapov
Signed-off-by Gleb Natapov <[email protected]>arch/x86/kvm/lapic.c +1
-1@@ -1311,7 +1311,7 @@ void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value) vcpu->arch.apic_base = value;if (apic_x2apic_mode (apic)) {u32 id =kvm_apic_id (apic); -u32 ldr = ((id & ~0xf ) <<16 ) | (1 << (id &0xf )); +u32 ldr = ((id >>4 ) <<16 ) | (1 << (id &0xf ));kvm_apic_set_ldr (apic, ldr); }
Thanks, applied to master for 3.7.
Signature · 1 line
error compiling committee.c: too many arguments to function