[PATCH 3.2 012/140] KVM: apic: fix LDR calculation in x2apic mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



3.2.100-rc1 review patch.  If anyone has any objections, please let me know.

------------------

From: Gleb Natapov <gleb@xxxxxxxxxx>

commit 7f46ddbd487e0d0528d89534fdfb31d885977804 upstream.

Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx>
Reviewed-by: Chegu Vinod  <chegu_vinod@xxxxxx>
Tested-by: Chegu Vinod <chegu_vinod@xxxxxx>
Signed-off-by: Avi Kivity <avi@xxxxxxxxxx>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
---
 arch/x86/kvm/lapic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -1022,7 +1022,7 @@ void kvm_lapic_set_base(struct kvm_vcpu
 	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));
 		apic_set_reg(apic, APIC_LDR, ldr);
 	}
 	apic->base_address = apic->vcpu->arch.apic_base &




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]