Commit d57e2c0740bbdd768dcbafe58cf62174f31d7c2d

Authored by jing zhang
Committed by Avi Kivity
1 parent a87fa35514

KVM: fix assigned_device_enable_host_msix error handling

Free IRQ's and disable MSIX upon failure.

Cc: Avi Kivity <avi@redhat.com>
Signed-off-by: Jing Zhang <zj.barak@gmail.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

Showing 1 changed file with 6 additions and 2 deletions Side-by-side Diff

virt/kvm/assigned-dev.c
... ... @@ -316,12 +316,16 @@
316 316 kvm_assigned_dev_intr, 0,
317 317 "kvm_assigned_msix_device",
318 318 (void *)dev);
319   - /* FIXME: free requested_irq's on failure */
320 319 if (r)
321   - return r;
  320 + goto err;
322 321 }
323 322  
324 323 return 0;
  324 +err:
  325 + for (i -= 1; i >= 0; i--)
  326 + free_irq(dev->host_msix_entries[i].vector, (void *)dev);
  327 + pci_disable_msix(dev->dev);
  328 + return r;
325 329 }
326 330  
327 331 #endif