we were just returning -1 to the calling function which was again
returning that if the module failed to load. Now we are returning the
actual error codes.

Signed-off-by: Sudip Mukherjee <su...@vectorindia.org>
---
 drivers/staging/unisys/visorchipset/file.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/unisys/visorchipset/file.c 
b/drivers/staging/unisys/visorchipset/file.c
index 074c285..552febc 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;
 }
-- 
1.8.1.2

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to