In vmxnet3_cleanup_msix(), there is called msix_vector_unuse() with VMXNET3_MAX_INTRS. That is not correct since vector of value VMXNET3_MAX_INTRS was never used. Also all the used vectors are not un-used. So call vmxnet3_unuse_msix_vectors() instead which does the correct job.
Signed-off-by: Jiri Pirko <j...@resnulli.us> --- hw/net/vmxnet3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c index 1bb9259..f3be494 100644 --- a/hw/net/vmxnet3.c +++ b/hw/net/vmxnet3.c @@ -2050,7 +2050,7 @@ vmxnet3_cleanup_msix(VMXNET3State *s) PCIDevice *d = PCI_DEVICE(s); if (s->msix_used) { - msix_vector_unuse(d, VMXNET3_MAX_INTRS); + vmxnet3_unuse_msix_vectors(s, VMXNET3_MAX_INTRS); msix_uninit(d, &s->msix_bar, &s->msix_bar); } } -- 1.9.0