Skip to content

Commit 6cec175

Browse files
wyr-7xiaoxiang781216
authored andcommitted
pci.c:fix ops not implement after calling panic err
Signed-off-by: wangyongrong <[email protected]>
1 parent 329d121 commit 6cec175

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

drivers/pci/pci.c

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1246,7 +1246,11 @@ static int pci_enable_msix(FAR struct pci_device_s *dev, FAR int *irq,
12461246
/* Map MSI-X table */
12471247

12481248
tblend = tbladdr + tblsize * PCI_MSIX_ENTRY_SIZE;
1249-
tbladdr = dev->bus->ctrl->ops->map(dev->bus, tbladdr, tblend);
1249+
1250+
if (dev->bus->ctrl->ops->map)
1251+
{
1252+
tbladdr = dev->bus->ctrl->ops->map(dev->bus, tbladdr, tblend);
1253+
}
12501254

12511255
/* Limit tblsize */
12521256

@@ -1772,7 +1776,12 @@ int pci_get_irq(FAR struct pci_device_s *dev)
17721776

17731777
int pci_alloc_irq(FAR struct pci_device_s *dev, FAR int *irq, int num)
17741778
{
1775-
return dev->bus->ctrl->ops->alloc_irq(dev->bus, irq, num);
1779+
if (dev->bus->ctrl->ops->alloc_irq)
1780+
{
1781+
return dev->bus->ctrl->ops->alloc_irq(dev->bus, irq, num);
1782+
}
1783+
1784+
return -ENOTSUP;
17761785
}
17771786

17781787
/****************************************************************************
@@ -1793,7 +1802,10 @@ int pci_alloc_irq(FAR struct pci_device_s *dev, FAR int *irq, int num)
17931802

17941803
void pci_release_irq(FAR struct pci_device_s *dev, FAR int *irq, int num)
17951804
{
1796-
dev->bus->ctrl->ops->release_irq(dev->bus, irq, num);
1805+
if (dev->bus->ctrl->ops->release_irq)
1806+
{
1807+
dev->bus->ctrl->ops->release_irq(dev->bus, irq, num);
1808+
}
17971809
}
17981810

17991811
/****************************************************************************
@@ -1817,6 +1829,11 @@ int pci_connect_irq(FAR struct pci_device_s *dev, FAR int *irq, int num)
18171829
uint8_t msi = 0;
18181830
uint8_t msix = 0;
18191831

1832+
if (dev->bus->ctrl->ops->connect_irq)
1833+
{
1834+
return -ENOTSUP;
1835+
}
1836+
18201837
/* Get MSI base */
18211838

18221839
pci_get_msi_base(dev, &msi, &msix);

0 commit comments

Comments
 (0)