I\'m creating a character device. I found two way to initialize char device
cdev_alloc
and
cdev_init
Acc
you can use either:
struct cdev my_cdev;
in this case you don't need to call cdev_alloc because memory is already allocated. Instead you must call cdev_init(&my_cdev, &fops).
and then my_cdev.owner = THIS_MODULE;
OR
you can use:
struct cdev *my_cdev_p;
in this case you must call cdev_alloc() to allocate memory.
Then, you have to initialize my_cdev_p->ops=&fops; and my_cdev_p->owner = THIS_MODULE;. Never use cdev_init() in this case!
Note that the 2 above methods don't belong to the old mechanism.