diff options
Diffstat (limited to 'drivers/virtio')
-rw-r--r-- | drivers/virtio/virtio_pci.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c index a7ce73029f59..1aba255b5879 100644 --- a/drivers/virtio/virtio_pci.c +++ b/drivers/virtio/virtio_pci.c | |||
@@ -289,9 +289,9 @@ static void vp_free_vectors(struct virtio_device *vdev) | |||
289 | 289 | ||
290 | pci_disable_msix(vp_dev->pci_dev); | 290 | pci_disable_msix(vp_dev->pci_dev); |
291 | vp_dev->msix_enabled = 0; | 291 | vp_dev->msix_enabled = 0; |
292 | vp_dev->msix_vectors = 0; | ||
293 | } | 292 | } |
294 | 293 | ||
294 | vp_dev->msix_vectors = 0; | ||
295 | vp_dev->msix_used_vectors = 0; | 295 | vp_dev->msix_used_vectors = 0; |
296 | kfree(vp_dev->msix_names); | 296 | kfree(vp_dev->msix_names); |
297 | vp_dev->msix_names = NULL; | 297 | vp_dev->msix_names = NULL; |
@@ -309,6 +309,8 @@ static int vp_request_msix_vectors(struct virtio_device *vdev, int nvectors, | |||
309 | unsigned i, v; | 309 | unsigned i, v; |
310 | int err = -ENOMEM; | 310 | int err = -ENOMEM; |
311 | 311 | ||
312 | vp_dev->msix_vectors = nvectors; | ||
313 | |||
312 | vp_dev->msix_entries = kmalloc(nvectors * sizeof *vp_dev->msix_entries, | 314 | vp_dev->msix_entries = kmalloc(nvectors * sizeof *vp_dev->msix_entries, |
313 | GFP_KERNEL); | 315 | GFP_KERNEL); |
314 | if (!vp_dev->msix_entries) | 316 | if (!vp_dev->msix_entries) |
@@ -336,7 +338,6 @@ static int vp_request_msix_vectors(struct virtio_device *vdev, int nvectors, | |||
336 | err = -ENOSPC; | 338 | err = -ENOSPC; |
337 | if (err) | 339 | if (err) |
338 | goto error; | 340 | goto error; |
339 | vp_dev->msix_vectors = nvectors; | ||
340 | vp_dev->msix_enabled = 1; | 341 | vp_dev->msix_enabled = 1; |
341 | 342 | ||
342 | /* Set the vector used for configuration */ | 343 | /* Set the vector used for configuration */ |