summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/unisys/visorchipset/file.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/staging/unisys/visorchipset/file.c b/drivers/staging/unisys/visorchipset/file.c
index 5c5d35f..8bea8a9 100644
--- a/drivers/staging/unisys/visorchipset/file.c
+++ b/drivers/staging/unisys/visorchipset/file.c
@@ -56,18 +56,20 @@ visorchipset_file_init(dev_t major_dev, struct visorchannel **controlvm_channel)
cdev_init(&file_cdev, &visorchipset_fops);
file_cdev.owner = THIS_MODULE;
if (MAJOR(major_dev) == 0) {
+ rc = alloc_chrdev_region(&major_dev, 0, 1, MYDRVNAME);
/* dynamic major device number registration required */
- if (alloc_chrdev_region(&major_dev, 0, 1, MYDRVNAME) < 0)
- return -1;
+ if (rc < 0)
+ return rc;
} else {
/* static major device number registration required */
- if (register_chrdev_region(major_dev, 1, MYDRVNAME) < 0)
- return -1;
+ rc = register_chrdev_region(major_dev, 1, MYDRVNAME);
+ if (rc < 0)
+ return rc;
}
rc = cdev_add(&file_cdev, MKDEV(MAJOR(major_dev), 0), 1);
if (rc < 0) {
unregister_chrdev_region(major_dev, 1);
- return -1;
+ return rc;
}
return 0;
}