X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fcommon%2Fcnxk%2Froc_dev.c;h=a39acc9f6ea71a0bc47c4bda0508c162b2698a27;hb=56175f74eaa565cdfde931d83be1db9faaa81667;hp=4cd597832682eb045be2f24c3ce106b0f11e2377;hpb=585bb3e538f91340debe74e4cc024e0e8404bca9;p=dpdk.git diff --git a/drivers/common/cnxk/roc_dev.c b/drivers/common/cnxk/roc_dev.c index 4cd5978326..a39acc9f6e 100644 --- a/drivers/common/cnxk/roc_dev.c +++ b/drivers/common/cnxk/roc_dev.c @@ -1125,6 +1125,10 @@ dev_init(struct dev *dev, struct plt_pci_device *pci_dev) } dev->mbox_active = 1; + rc = npa_lf_init(dev, pci_dev); + if (rc) + goto iounmap; + /* Setup LMT line base */ rc = dev_lmt_setup(pci_dev, dev); if (rc) @@ -1150,6 +1154,13 @@ dev_fini(struct dev *dev, struct plt_pci_device *pci_dev) struct plt_intr_handle *intr_handle = &pci_dev->intr_handle; struct mbox *mbox; + /* Check if this dev hosts npalf and has 1+ refs */ + if (idev_npa_lf_active(dev) > 1) + return -EAGAIN; + + /* Clear references to this pci dev */ + npa_lf_fini(); + mbox_unregister_irq(pci_dev, dev); if (!dev_is_vf(dev))