Skip to content

Commit

Permalink
firewire: ohci: use devres for requested IRQ
Browse files Browse the repository at this point in the history
The 1394 OHCI controller register handler to single interrupt number.

This commit uses managed device resource to maintain the lifetime of
requested IRQ.

Link: https://lore.kernel.org/r/20230604054451.161076-6-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
  • Loading branch information
takaswie committed Jun 5, 2023
1 parent 8320442 commit 5a95f1d
Showing 1 changed file with 4 additions and 8 deletions.
12 changes: 4 additions & 8 deletions drivers/firewire/ohci.c
Original file line number Diff line number Diff line change
Expand Up @@ -3697,17 +3697,16 @@ static int pci_probe(struct pci_dev *dev,

if (!(ohci->quirks & QUIRK_NO_MSI))
pci_enable_msi(dev);
if (request_irq(dev->irq, irq_handler,
pci_dev_msi_enabled(dev) ? 0 : IRQF_SHARED,
ohci_driver_name, ohci)) {
err = devm_request_irq(&dev->dev, dev->irq, irq_handler,
pci_dev_msi_enabled(dev) ? 0 : IRQF_SHARED, ohci_driver_name, ohci);
if (err < 0) {
ohci_err(ohci, "failed to allocate interrupt %d\n", dev->irq);
err = -EIO;
goto fail_msi;
}

err = fw_card_add(&ohci->card, max_receive, link_speed, guid);
if (err)
goto fail_irq;
goto fail_msi;

version = reg_read(ohci, OHCI1394_Version) & 0x00ff00ff;
ohci_notice(ohci,
Expand All @@ -3720,8 +3719,6 @@ static int pci_probe(struct pci_dev *dev,

return 0;

fail_irq:
free_irq(dev->irq, ohci);
fail_msi:
pci_disable_msi(dev);
fail_contexts:
Expand Down Expand Up @@ -3759,7 +3756,6 @@ static void pci_remove(struct pci_dev *dev)
*/

software_reset(ohci);
free_irq(dev->irq, ohci);

if (ohci->next_config_rom && ohci->next_config_rom != ohci->config_rom)
dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE,
Expand Down

0 comments on commit 5a95f1d

Please sign in to comment.