summaryrefslogtreecommitdiff
path: root/kernel-devel/module-basics/vain_pci/vain_pci_4.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel-devel/module-basics/vain_pci/vain_pci_4.c')
-rw-r--r--kernel-devel/module-basics/vain_pci/vain_pci_4.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/kernel-devel/module-basics/vain_pci/vain_pci_4.c b/kernel-devel/module-basics/vain_pci/vain_pci_4.c
new file mode 100644
index 0000000..f238f22
--- /dev/null
+++ b/kernel-devel/module-basics/vain_pci/vain_pci_4.c
@@ -0,0 +1,21 @@
+err_rel_regs:
+ pci_release_regions(pdev);
+err_disable_device:
+ pci_disable_device(pdev);
+err_free:
+ kfree(info);
+
+ return ret;
+}
+
+static void __devexit vain_pci_remove(struct pci_dev *pdev)
+{
+ struct vain_pci_info *info = pci_get_drvdata(pdev);
+
+ iounmap(info->base);
+ pci_release_regions(pdev);
+ pci_disable_device(pdev);
+ pci_set_drvdata(pdev, NULL);
+
+ kfree (info);
+}