void init_configfs_setup(void) { int ret; int i; struct configfs_subsystem *subsys; for (i = 0; configfs_subsys[i]; i++) { subsys = configfs_subsys[i]; config_group_init(&subsys->su_group); mutex_init(&subsys->su_mutex); ret = configfs_register_subsystem(subsys); if (ret) { PRINTK_ERROR("Error %d while registering subsystem %s\n", ret, subsys->su_group.cg_item.ci_namebuf); goto out_unregister; } } return; out_unregister: for (i--; i >= 0; i--) configfs_unregister_subsystem(configfs_subsys[i]); }
/** * dtbocfg_module_init() */ static int __init dtbocfg_module_init(void) { int retval = 0; pr_info("%s\n", __func__); config_group_init(&dtbocfg_root_subsys.su_group); config_group_init_type_name(&dtbocfg_overlay_group, "overlays", &dtbocfg_overlays_type); retval = configfs_register_subsystem(&dtbocfg_root_subsys); if (retval != 0) { pr_err( "%s: couldn't register subsys\n", __func__); goto register_subsystem_failed; } retval = configfs_register_group(&dtbocfg_root_subsys.su_group, &dtbocfg_overlay_group); if (retval != 0) { pr_err( "%s: couldn't register group\n", __func__); goto register_group_failed; } pr_info("%s: OK\n", __func__); return 0; register_group_failed: configfs_unregister_subsystem(&dtbocfg_root_subsys); register_subsystem_failed: return retval; }
//---------------------------------------------------------- static int __init iio_configfs_init(void) { config_group_init(&iio_triggers_group); config_group_init(&iio_devices_group); config_group_init(&iio_configfs_subsys.su_group); return configfs_register_subsystem(&iio_configfs_subsys); }
static int __init gpiommc_modinit(void) { int err; err = platform_driver_register(&gpiommc_plat_driver); if (err) return err; #ifdef CONFIG_GPIOMMC_CONFIGFS config_group_init(&gpiommc_subsys.su_group); err = configfs_register_subsystem(&gpiommc_subsys); if (err) { platform_driver_unregister(&gpiommc_plat_driver); return err; } #endif /* CONFIG_GPIOMMC_CONFIGFS */ return 0; }
static int __init dynamic_netconsole_init(void) { config_group_init(&netconsole_subsys.su_group); mutex_init(&netconsole_subsys.su_mutex); return configfs_register_subsystem(&netconsole_subsys); }