diff options
Diffstat (limited to 'drivers/virt/nitro_enclaves/ne_pci_dev.c')
-rw-r--r-- | drivers/virt/nitro_enclaves/ne_pci_dev.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/virt/nitro_enclaves/ne_pci_dev.c b/drivers/virt/nitro_enclaves/ne_pci_dev.c index 6654cc8a1bc3..b9c1de41e300 100644 --- a/drivers/virt/nitro_enclaves/ne_pci_dev.c +++ b/drivers/virt/nitro_enclaves/ne_pci_dev.c @@ -523,8 +523,18 @@ static int ne_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) ne_devs.ne_pci_dev = ne_pci_dev; + rc = misc_register(ne_devs.ne_misc_dev); + if (rc < 0) { + dev_err(&pdev->dev, "Error in misc dev register [rc=%d]\n", rc); + + goto disable_ne_pci_dev; + } + return 0; +disable_ne_pci_dev: + ne_devs.ne_pci_dev = NULL; + ne_pci_dev_disable(pdev); teardown_msix: ne_teardown_msix(pdev); iounmap_pci_bar: @@ -550,6 +560,8 @@ static void ne_pci_remove(struct pci_dev *pdev) { struct ne_pci_dev *ne_pci_dev = pci_get_drvdata(pdev); + misc_deregister(ne_devs.ne_misc_dev); + ne_devs.ne_pci_dev = NULL; ne_pci_dev_disable(pdev); @@ -580,6 +592,8 @@ static void ne_pci_shutdown(struct pci_dev *pdev) if (!ne_pci_dev) return; + misc_deregister(ne_devs.ne_misc_dev); + ne_devs.ne_pci_dev = NULL; ne_pci_dev_disable(pdev); |