Skip to contentSkip to conversation

KVM: apic: fix LDR calculation in x2apic mode

PATCH Applied Gleb Natapov 3 participants 3 messages Oct 14, 2012 – Oct 18, 2012

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 KVM: apic: fix LDR calculation in x2apic mode

arch/x86/kvm/lapic.c +1 -1
index c6e6b72..43e9fad 100644
@@ -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.

Reviewed-by Tested-by on v1 1/1
#1 lore raw
Quoted 15 lines · Gleb Natapov
arch/x86/kvm/lapic.c +1 -2
index c6e6b72..43e9fad 100644
@@ -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.
.

Applied
#2 lore raw
In reply to Gleb Natapov

arch/x86/kvm/lapic.c void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value) · line 1316

Quoted 13 lines · Gleb Natapov
arch/x86/kvm/lapic.c +1 -1
index c6e6b72..43e9fad 100644
@@ -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