Skip to content

Commit e41b2c1

Browse files
committed
firewire: ohci: use pci_irq_vector() to retrieve allocated interrupt line
The pci_irq_vector() is available to retrieve the allocated interrupt line instead of the direct access to the member of device structure. Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Takashi Sakamoto <[email protected]>
1 parent b9d9a02 commit e41b2c1

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

drivers/firewire/ohci.c

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3631,7 +3631,7 @@ static int pci_probe(struct pci_dev *dev,
36313631
struct fw_ohci *ohci;
36323632
u32 bus_options, max_receive, link_speed, version;
36333633
u64 guid;
3634-
int i, flags, err;
3634+
int i, flags, irq, err;
36353635
size_t size;
36363636

36373637
if (dev->vendor == PCI_VENDOR_ID_PINNACLE_SYSTEMS) {
@@ -3762,12 +3762,17 @@ static int pci_probe(struct pci_dev *dev,
37623762
err = pci_alloc_irq_vectors(dev, 1, 1, flags);
37633763
if (err < 0)
37643764
return err;
3765+
irq = pci_irq_vector(dev, 0);
3766+
if (irq < 0) {
3767+
err = irq;
3768+
goto fail_msi;
3769+
}
37653770

3766-
err = request_threaded_irq(dev->irq, irq_handler, NULL,
3771+
err = request_threaded_irq(irq, irq_handler, NULL,
37673772
pci_dev_msi_enabled(dev) ? 0 : IRQF_SHARED, ohci_driver_name,
37683773
ohci);
37693774
if (err < 0) {
3770-
ohci_err(ohci, "failed to allocate interrupt %d\n", dev->irq);
3775+
ohci_err(ohci, "failed to allocate interrupt %d\n", irq);
37713776
goto fail_msi;
37723777
}
37733778

@@ -3787,7 +3792,7 @@ static int pci_probe(struct pci_dev *dev,
37873792
return 0;
37883793

37893794
fail_irq:
3790-
free_irq(dev->irq, ohci);
3795+
free_irq(irq, ohci);
37913796
fail_msi:
37923797
pci_free_irq_vectors(dev);
37933798

@@ -3797,6 +3802,7 @@ static int pci_probe(struct pci_dev *dev,
37973802
static void pci_remove(struct pci_dev *dev)
37983803
{
37993804
struct fw_ohci *ohci = pci_get_drvdata(dev);
3805+
int irq;
38003806

38013807
/*
38023808
* If the removal is happening from the suspend state, LPS won't be
@@ -3816,7 +3822,9 @@ static void pci_remove(struct pci_dev *dev)
38163822

38173823
software_reset(ohci);
38183824

3819-
free_irq(dev->irq, ohci);
3825+
irq = pci_irq_vector(dev, 0);
3826+
if (irq >= 0)
3827+
free_irq(irq, ohci);
38203828
pci_free_irq_vectors(dev);
38213829

38223830
dev_notice(&dev->dev, "removing fw-ohci device\n");

0 commit comments

Comments
 (0)