Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull KVM fix from Paolo Bonzini:
"Fix a bug which allows KVM guests to bring down the entire system on
some 64K enabled ARM64 hosts"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
kvm: arm64: vgic: fix hyp panic with 64k pages on juno platform

+20 -4
+20 -4
virt/kvm/arm/vgic.c
··· 1526 1526 goto out_unmap; 1527 1527 } 1528 1528 1529 - kvm_info("%s@%llx IRQ%d\n", vgic_node->name, 1530 - vctrl_res.start, vgic_maint_irq); 1531 - on_each_cpu(vgic_init_maintenance_interrupt, NULL, 1); 1532 - 1533 1529 if (of_address_to_resource(vgic_node, 3, &vcpu_res)) { 1534 1530 kvm_err("Cannot obtain VCPU resource\n"); 1535 1531 ret = -ENXIO; 1536 1532 goto out_unmap; 1537 1533 } 1534 + 1535 + if (!PAGE_ALIGNED(vcpu_res.start)) { 1536 + kvm_err("GICV physical address 0x%llx not page aligned\n", 1537 + (unsigned long long)vcpu_res.start); 1538 + ret = -ENXIO; 1539 + goto out_unmap; 1540 + } 1541 + 1542 + if (!PAGE_ALIGNED(resource_size(&vcpu_res))) { 1543 + kvm_err("GICV size 0x%llx not a multiple of page size 0x%lx\n", 1544 + (unsigned long long)resource_size(&vcpu_res), 1545 + PAGE_SIZE); 1546 + ret = -ENXIO; 1547 + goto out_unmap; 1548 + } 1549 + 1538 1550 vgic_vcpu_base = vcpu_res.start; 1551 + 1552 + kvm_info("%s@%llx IRQ%d\n", vgic_node->name, 1553 + vctrl_res.start, vgic_maint_irq); 1554 + on_each_cpu(vgic_init_maintenance_interrupt, NULL, 1); 1539 1555 1540 1556 goto out; 1541 1557