summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2017-03-09 12:58:30 +0100
committerJason Wang <jasowang@redhat.com>2017-03-14 15:39:55 +0800
commit7ec7ae4b973d1471f6f39fc2b6481f69c2b39593 (patch)
tree5d4a6d243040c6d8720c6012bce5ea3df72f5a26
parent5bac3c39c82e149515c10643acafd1d292433775 (diff)
downloadfocaccia-qemu-7ec7ae4b973d1471f6f39fc2b6481f69c2b39593.tar.gz
focaccia-qemu-7ec7ae4b973d1471f6f39fc2b6481f69c2b39593.zip
e1000e: correctly tear down MSI-X memory regions
MSI-X has been disabled by the time the e1000e device is unrealized, hence
msix_uninit is never called.  This causes the object to be leaked, which
shows up as a RAMBlock with empty name when attempting migration.

Reported-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Cc: Jason Wang <jasowang@redhat.com>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Tested-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
-rw-r--r--hw/net/e1000e.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/net/e1000e.c b/hw/net/e1000e.c
index b0f429b8e5..6e234938db 100644
--- a/hw/net/e1000e.c
+++ b/hw/net/e1000e.c
@@ -306,7 +306,7 @@ e1000e_init_msix(E1000EState *s)
 static void
 e1000e_cleanup_msix(E1000EState *s)
 {
-    if (msix_enabled(PCI_DEVICE(s))) {
+    if (msix_present(PCI_DEVICE(s))) {
         e1000e_unuse_msix_vectors(s, E1000E_MSIX_VEC_NUM);
         msix_uninit(PCI_DEVICE(s), &s->msix, &s->msix);
     }