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;
}