- int r;
- r = register_chrdev_region(MKDEV(major, 0), 256, "hello");
+ int r = 0;
+ r = alloc_chrdev_region(&devnum, 0, 256, "hello");
+ if (r)
+ goto out;
+ dev = cdev_alloc();
+ if (!dev) {
+ r = -ENOMEM;
+ goto cdev_out;
+ }
+ dev->ops = &hello_fops;
+ r = cdev_add(dev, devnum, 256);