diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2017-03-09 12:58:30 +0100 |
---|---|---|
committer | Jason Wang <jasowang@redhat.com> | 2017-03-14 15:39:55 +0800 |
commit | 7ec7ae4b973d1471f6f39fc2b6481f69c2b39593 (patch) | |
tree | 5d4a6d243040c6d8720c6012bce5ea3df72f5a26 /hw/net/e1000e.c | |
parent | 5bac3c39c82e149515c10643acafd1d292433775 (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>
Diffstat (limited to 'hw/net/e1000e.c')
-rw-r--r-- | hw/net/e1000e.c | 2 |
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); } |