aboutsummaryrefslogtreecommitdiff
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)
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);
}