summaryrefslogtreecommitdiff
path: root/drivers/virt/nitro_enclaves/ne_pci_dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/virt/nitro_enclaves/ne_pci_dev.c')
-rw-r--r--drivers/virt/nitro_enclaves/ne_pci_dev.c14
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);