mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
vpci/msi: fix unbind loop
The current unbind loop on failure in vpci_msi_enable is wrong and will only work correctly if the initial pirq is 0. Fix this by adding a proper bound. Reported-by: Jan Beulich <jbeulich@suse.com> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> Release-acked-by: Juergen Gross <jgross@suse.com>
This commit is contained in:
1 parent
3352afc26c
commit
a65179dedd
1 file changed
+1
-1
@@ -710,7 +710,7 @@ static int vpci_msi_enable(const struct pci_dev *pdev, uint32_t data,
|
||||
"%04x:%02x:%02x.%u: failed to bind PIRQ %u: %d\n",
|
||||
pdev->seg, pdev->bus, PCI_SLOT(pdev->devfn),
|
||||
PCI_FUNC(pdev->devfn), pirq + i, rc);
|
||||
while ( bind.machine_irq-- )
|
||||
while ( bind.machine_irq-- > pirq )
|
||||
pt_irq_destroy_bind(pdev->domain, &bind);
|
||||
spin_lock(&pdev->domain->event_lock);
|
||||
unmap_domain_pirq(pdev->domain, pirq);
|
||||
|
||||