Commit d57e2c0740bbdd768dcbafe58cf62174f31d7c2d
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 |