MCPcopy Create free account
hub / github.com/F-Stack/f-stack / dev_fini

Function dev_fini

dpdk/drivers/common/cnxk/roc_dev.c:1540–1592  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1538}
1539
1540int
1541dev_fini(struct dev *dev, struct plt_pci_device *pci_dev)
1542{
1543 struct plt_intr_handle *intr_handle = pci_dev->intr_handle;
1544 struct mbox *mbox;
1545
1546 /* Check if this dev hosts npalf and has 1+ refs */
1547 if (idev_npa_lf_active(dev) > 1)
1548 return -EAGAIN;
1549
1550 /* Exiting the mbox sync thread */
1551 if (dev->sync.start_thread) {
1552 dev->sync.start_thread = false;
1553 pthread_cond_signal(&dev->sync.pfvf_msg_cond);
1554 plt_thread_join(dev->sync.pfvf_msg_thread, NULL);
1555 pthread_mutex_destroy(&dev->sync.mutex);
1556 pthread_cond_destroy(&dev->sync.pfvf_msg_cond);
1557 }
1558
1559 /* Clear references to this pci dev */
1560 npa_lf_fini();
1561
1562 /* Releasing memory allocated for lmt region */
1563 if (dev->lmt_mz)
1564 plt_memzone_free(dev->lmt_mz);
1565
1566 dev_mbox_unregister_irq(pci_dev, dev);
1567
1568 if (!dev_is_vf(dev))
1569 dev_vf_flr_unregister_irqs(pci_dev, dev);
1570 /* Release PF - VF */
1571 mbox = &dev->mbox_vfpf;
1572 if (mbox->hwbase && mbox->dev)
1573 dev_vf_mbase_put(pci_dev, mbox->hwbase);
1574
1575 if (dev->ops)
1576 plt_free(dev->ops);
1577
1578 mbox_fini(mbox);
1579 mbox = &dev->mbox_vfpf_up;
1580 mbox_fini(mbox);
1581
1582 /* Release PF - AF */
1583 mbox = dev->mbox;
1584 mbox_fini(mbox);
1585 mbox = &dev->mbox_up;
1586 mbox_fini(mbox);
1587 dev->mbox_active = 0;
1588
1589 /* Disable MSIX vectors */
1590 dev_irqs_disable(intr_handle);
1591 return 0;
1592}

Callers 10

roc_cpt_dev_initFunction · 0.85
roc_cpt_dev_finiFunction · 0.85
roc_ree_dev_finiFunction · 0.85
roc_sso_dev_initFunction · 0.85
roc_sso_dev_finiFunction · 0.85
roc_nix_dev_initFunction · 0.85
roc_nix_dev_finiFunction · 0.85
roc_nix_inl_dev_initFunction · 0.85
roc_nix_inl_dev_finiFunction · 0.85
roc_npa_dev_finiFunction · 0.85

Calls 8

idev_npa_lf_activeFunction · 0.85
pthread_mutex_destroyFunction · 0.85
npa_lf_finiFunction · 0.85
dev_mbox_unregister_irqFunction · 0.85
dev_vf_mbase_putFunction · 0.85
mbox_finiFunction · 0.85
dev_irqs_disableFunction · 0.85

Tested by

no test coverage detected