summaryrefslogtreecommitdiffstats
path: root/cryptodev_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'cryptodev_main.c')
-rw-r--r--cryptodev_main.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/cryptodev_main.c b/cryptodev_main.c
index 460e3d3..58ae45b 100644
--- a/cryptodev_main.c
+++ b/cryptodev_main.c
@@ -510,7 +510,6 @@ cryptodev_open(struct inode *inode, struct file *filp)
init_MUTEX(&pcr->fcrypt.sem);
INIT_LIST_HEAD(&pcr->fcrypt.list);
-
pcr->ncr = ncr_init_lists();
if (pcr->ncr == NULL) {
kfree(pcr);
@@ -730,9 +729,17 @@ cryptodev_register(void)
ncr_limits_init();
+ rc = ncr_gnl_init();
+ if (rc < 0) {
+ ncr_limits_deinit();
+ return rc;
+ }
+
rc = misc_register (&cryptodev);
if (unlikely(rc)) {
- printk(KERN_ERR PFX "registeration of /dev/crypto failed\n");
+ ncr_gnl_deinit();
+ ncr_limits_deinit();
+ printk(KERN_ERR PFX "registration of /dev/crypto failed\n");
return rc;
}
@@ -742,8 +749,9 @@ cryptodev_register(void)
static void
cryptodev_deregister(void)
{
- ncr_limits_deinit();
misc_deregister(&cryptodev);
+ ncr_gnl_deinit();
+ ncr_limits_deinit();
}
/* ====== Module init/exit ====== */