[PATCHv2] qemu-kvm: routing table update thinko fix

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

 



When updating irq routing entries, we should memcpy the new entry
over the old one. Current code gets it wrong, and only works because
it's uncommon for guests to change tables.

Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
---

Changes since v1:
  updated irqchip case as well

 qemu-kvm.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/qemu-kvm.c b/qemu-kvm.c
index 60e5eac..b4de9c6 100644
--- a/qemu-kvm.c
+++ b/qemu-kvm.c
@@ -1544,7 +1544,7 @@ int kvm_update_routing_entry(kvm_context_t kvm,
         case KVM_IRQ_ROUTING_IRQCHIP:
             if (e->u.irqchip.irqchip == entry->u.irqchip.irqchip &&
                 e->u.irqchip.pin == entry->u.irqchip.pin) {
-                memcpy(&e->u.irqchip, &entry->u.irqchip, sizeof e->u.irqchip);
+                memcpy(&e->u.irqchip, &newentry->u.irqchip, sizeof e->u.irqchip);
                 return 0;
             }
             break;
@@ -1552,7 +1552,7 @@ int kvm_update_routing_entry(kvm_context_t kvm,
             if (e->u.msi.address_lo == entry->u.msi.address_lo &&
                 e->u.msi.address_hi == entry->u.msi.address_hi &&
                 e->u.msi.data == entry->u.msi.data) {
-                memcpy(&e->u.msi, &entry->u.msi, sizeof e->u.msi);
+                memcpy(&e->u.msi, &newentry->u.msi, sizeof e->u.msi);
                 return 0;
             }
             break;
-- 
1.6.2.5
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux