in most_cdev.c [489:519]
static int __init most_cdev_init(void)
{
int err;
comp.class = class_create(THIS_MODULE, "most_cdev");
if (IS_ERR(comp.class))
return PTR_ERR(comp.class);
ida_init(&comp.minor_id);
err = alloc_chrdev_region(&comp.devno, 0, CHRDEV_REGION_SIZE, "cdev");
if (err < 0)
goto dest_ida;
comp.major = MAJOR(comp.devno);
err = most_register_component(&comp.cc);
if (err)
goto free_cdev;
err = most_register_configfs_subsys(&comp.cc);
if (err)
goto deregister_comp;
return 0;
deregister_comp:
most_deregister_component(&comp.cc);
free_cdev:
unregister_chrdev_region(comp.devno, CHRDEV_REGION_SIZE);
dest_ida:
ida_destroy(&comp.minor_id);
class_destroy(comp.class);
return err;
}