Esempio n. 1
0
void kset_test_exit(void)
{
    printk("kset test exit:\n");
    kset_unregister(&kset_p);
    kset_unregister(&kset_c);

}
Esempio n. 2
0
/**
 *	bus_unregister - remove a bus from the system
 *	@bus:	bus.
 *
 *	Unregister the child subsystems and the bus itself.
 *	Finally, we call put_bus() to release the refcount
 */
void bus_unregister(struct bus_type * bus)
{
	pr_debug("bus %s: unregistering\n", bus->name);
	bus_remove_attrs(bus);
	kset_unregister(&bus->drivers);
	kset_unregister(&bus->devices);
	subsystem_unregister(&bus->subsys);
}
static void _destroy_iostash_kobjects(void)
{
	kobject_del(&gctx.ctl_kobj);
	kobject_put(&gctx.ctl_kobj);
	kset_unregister(gctx.ssd_kset);
	kset_unregister(gctx.hdd_kset);

	return;
}
Esempio n. 4
0
/**
 *	bus_unregister - remove a bus from the system
 *	@bus:	bus.
 *
 *	Unregister the child subsystems and the bus itself.
 *	Finally, we call put_bus() to release the refcount
 */
void bus_unregister(struct bus_type * bus)
{
	pr_debug("bus %s: unregistering\n", bus->name);
	free_notifier_for_bus(bus);
	bus_remove_attrs(bus);
	remove_probe_files(bus);
	kset_unregister(&bus->drivers);
	kset_unregister(&bus->devices);
	subsystem_unregister(&bus->subsys);
}
Esempio n. 5
0
/**
 * bus_unregister - remove a bus from the system
 * @bus: bus.
 *
 * Unregister the child subsystems and the bus itself.
 * Finally, we call bus_put() to release the refcount
 */
void bus_unregister(struct bus_type *bus)
{
	pr_debug("bus: '%s': unregistering\n", bus->name);
	bus_remove_attrs(bus);
	remove_probe_files(bus);
	kset_unregister(bus->p->drivers_kset);
	kset_unregister(bus->p->devices_kset);
	bus_remove_file(bus, &bus_attr_uevent);
	kset_unregister(&bus->p->subsys);
	kfree(bus->p);
}
Esempio n. 6
0
/**
 *	bus_register - register a bus with the system.
 *	@bus:	bus.
 *
 *	Once we have that, we registered the bus with the kobject
 *	infrastructure, then register the children subsystems it has:
 *	the devices and drivers that belong to the bus.
 */
int bus_register(struct bus_type * bus)
{
	int retval = -ENOMEM;
	struct blocking_notifier_head *notifier_head;

	notifier_head = alloc_save_notifier_for_bus(bus);
	if (!notifier_head)
		goto out;

	BLOCKING_INIT_NOTIFIER_HEAD(notifier_head);

	retval = kobject_set_name(&bus->subsys.kset.kobj, "%s", bus->name);
	if (retval)
		goto out;

	subsys_set_kset(bus, bus_subsys);
	retval = subsystem_register(&bus->subsys);
	if (retval)
		goto out;

	kobject_set_name(&bus->devices.kobj, "devices");
	bus->devices.subsys = &bus->subsys;
	retval = kset_register(&bus->devices);
	if (retval)
		goto bus_devices_fail;

	kobject_set_name(&bus->drivers.kobj, "drivers");
	bus->drivers.subsys = &bus->subsys;
	bus->drivers.ktype = &ktype_driver;
	retval = kset_register(&bus->drivers);
	if (retval)
		goto bus_drivers_fail;

	klist_init(&bus->klist_devices, klist_devices_get, klist_devices_put);
	klist_init(&bus->klist_drivers, klist_drivers_get, klist_drivers_put);

	retval = add_probe_files(bus);
	if (retval)
		goto bus_probe_files_fail;

	bus_add_attrs(bus);

	pr_debug("bus type '%s' registered\n", bus->name);
	return 0;

bus_probe_files_fail:
	kset_unregister(&bus->drivers);
bus_drivers_fail:
	kset_unregister(&bus->devices);
bus_devices_fail:
	subsystem_unregister(&bus->subsys);
out:
	return retval;
}
void remove_gc_sysfs_file(struct platform_device *pdev)
{
    if(!galDevice)
        return;

    if(!kset_gpu)
        return;

    if(registered_pm_test)
    {
        remove_sysfs_file_pm_test(pdev);
        registered_pm_test = 0;
    }

    if(registered_gpufreq)
    {
        __remove_sysfs_file_gpufreq();
        registered_gpufreq = 0;
    }

    if(registered_debug)
    {
        __remove_sysfs_file_debug();
        registered_debug = 0;
    }

    if(registered_common)
    {
        __remove_sysfs_file_common();
        registered_common = 0;
    }

    /* release a kset. */
    kset_unregister(kset_gpu);
}
Esempio n. 8
0
int o2cb_sys_init(void)
{
	int ret;

	o2cb_kset = kset_create_and_add("o2cb", NULL, fs_kobj);
	if (!o2cb_kset)
		return -ENOMEM;

	/*
	 * Create this symlink for backwards compatibility with old
	 * versions of ocfs2-tools which look for things in /sys/o2cb.
	 */
	ret = sysfs_create_link(NULL, &o2cb_kset->kobj, "o2cb");
	if (ret)
		goto error;

	ret = sysfs_create_group(&o2cb_kset->kobj, &o2cb_attr_group);
	if (ret)
		goto error;

	ret = mlog_sys_init(o2cb_kset);
	if (ret)
		goto error;
	return 0;
error:
	kset_unregister(o2cb_kset);
	return ret;
}
Esempio n. 9
0
int __init sysaufs_init(void)
{
	int err;

	do {
		get_random_bytes(&sysaufs_si_mask, sizeof(sysaufs_si_mask));
	} while (!sysaufs_si_mask);

	err = -EINVAL;
	sysaufs_kset = kset_create_and_add(AUFS_NAME, NULL, fs_kobj);
	if (unlikely(!sysaufs_kset))
		goto out;
	err = PTR_ERR(sysaufs_kset);
	if (IS_ERR(sysaufs_kset))
		goto out;
	err = sysfs_create_group(&sysaufs_kset->kobj, sysaufs_attr_group);
	if (unlikely(err)) {
		kset_unregister(sysaufs_kset);
		goto out;
	}

	err = dbgaufs_init();
	if (unlikely(err))
		sysaufs_fin();
out:
	return err;
}
Esempio n. 10
0
void f2fs_exit_sysfs(void)
{
	kobject_put(&f2fs_feat);
	kset_unregister(&f2fs_kset);
	remove_proc_entry("fs/f2fs", NULL);
	f2fs_proc_root = NULL;
}
Esempio n. 11
0
static void __exit
pdc_stable_exit(void)
{
	pdcs_unregister_pathentries();
	kset_unregister(paths_kset);
	kobject_put(stable_kobj);
}
static void __exit example_exit(void)
{
	destroy_foo_obj(baz_obj);
	destroy_foo_obj(bar_obj);
	destroy_foo_obj(foo_obj);
	kset_unregister(example_kset);
}
Esempio n. 13
0
/**
 *	bus_register - register a bus with the system.
 *	@bus:	bus.
 *
 *	Once we have that, we registered the bus with the kobject
 *	infrastructure, then register the children subsystems it has:
 *	the devices and drivers that belong to the bus.
 */
int bus_register(struct bus_type * bus)
{
	int retval;

	BLOCKING_INIT_NOTIFIER_HEAD(&bus->bus_notifier);

	retval = kobject_set_name(&bus->subsys.kset.kobj, "%s", bus->name);
	if (retval)
		goto out;

	subsys_set_kset(bus, bus_subsys);
	retval = subsystem_register(&bus->subsys);
	if (retval)
		goto out;

	kobject_set_name(&bus->devices.kobj, "devices");
	bus->devices.subsys = &bus->subsys;
	retval = kset_register(&bus->devices);
	if (retval)
		goto bus_devices_fail;

	kobject_set_name(&bus->drivers.kobj, "drivers");
	bus->drivers.subsys = &bus->subsys;
	bus->drivers.ktype = &ktype_driver;
	retval = kset_register(&bus->drivers);
	if (retval)
		goto bus_drivers_fail;

	klist_init(&bus->klist_devices, klist_devices_get, klist_devices_put);
	klist_init(&bus->klist_drivers, NULL, NULL);
	retval = bus_add_attrs(bus);
	if (retval)
		goto bus_attrs_fail;

	pr_debug("bus type '%s' registered\n", bus->name);
	return 0;

bus_attrs_fail:
	kset_unregister(&bus->drivers);
bus_drivers_fail:
	kset_unregister(&bus->devices);
bus_devices_fail:
	subsystem_unregister(&bus->subsys);
out:
	return retval;
}
Esempio n. 14
0
static void __exit pcrypt_exit(void)
{
	pcrypt_fini_padata(&pencrypt);
	pcrypt_fini_padata(&pdecrypt);

	kset_unregister(pcrypt_kset);
	crypto_unregister_template(&pcrypt_tmpl);
}
Esempio n. 15
0
static void __exit exit(void)
{
	    printk(KERN_INFO "exit\n");
        destroy_utility_obj(force_cache_obj);
        destroy_utility_obj(enumer_page_obj);
        destroy_utility_obj(add_range_obj);
        kset_unregister(utility_kset);
}
Esempio n. 16
0
static void kobj_demo_exit(void)
{
    sysfs_remove_file(child, &cld_att);

    kset_unregister(c_kset);
    kobject_del(child);
    kobject_del(parent);
}
Esempio n. 17
0
static int __init init_f2fs_fs(void)
{
	int err;

	f2fs_build_trace_ios();

	err = init_inodecache();
	if (err)
		goto fail;
	err = create_node_manager_caches();
	if (err)
		goto free_inodecache;
	err = create_segment_manager_caches();
	if (err)
		goto free_node_manager_caches;
	err = create_checkpoint_caches();
	if (err)
		goto free_segment_manager_caches;
	err = create_extent_cache();
	if (err)
		goto free_checkpoint_caches;
	f2fs_kset = kset_create_and_add("f2fs", NULL, fs_kobj);
	if (!f2fs_kset) {
		err = -ENOMEM;
		goto free_extent_cache;
	}
	err = register_shrinker(&f2fs_shrinker_info);
	if (err)
		goto free_kset;

	err = register_filesystem(&f2fs_fs_type);
	if (err)
		goto free_shrinker;
	err = f2fs_create_root_stats();
	if (err)
		goto free_filesystem;
	f2fs_proc_root = proc_mkdir("fs/f2fs", NULL);
	return 0;

free_filesystem:
	unregister_filesystem(&f2fs_fs_type);
free_shrinker:
	unregister_shrinker(&f2fs_shrinker_info);
free_kset:
	kset_unregister(f2fs_kset);
free_extent_cache:
	destroy_extent_cache();
free_checkpoint_caches:
	destroy_checkpoint_caches();
free_segment_manager_caches:
	destroy_segment_manager_caches();
free_node_manager_caches:
	destroy_node_manager_caches();
free_inodecache:
	destroy_inodecache();
fail:
	return err;
}
Esempio n. 18
0
/*
 * For now we register the stable subsystem with the firmware subsystem
 * and the paths subsystem with the stable subsystem
 */
static int __init
pdc_stable_init(void)
{
	int rc = 0, error = 0;
	u32 result;

	/* find the size of the stable storage */
	if (pdc_stable_get_size(&pdcs_size) != PDC_OK) 
		return -ENODEV;

	/* make sure we have enough data */
	if (pdcs_size < 96)
		return -ENODATA;

	printk(KERN_INFO PDCS_PREFIX " facility v%s\n", PDCS_VERSION);

	/* get OSID */
	if (pdc_stable_read(PDCS_ADDR_OSID, &result, sizeof(result)) != PDC_OK)
		return -EIO;

	/* the actual result is 16 bits away */
	pdcs_osid = (u16)(result >> 16);

	/* For now we'll register the directory at /sys/firmware/stable */
	stable_kobj = kobject_create_and_add("stable", firmware_kobj);
	if (!stable_kobj) {
		rc = -ENOMEM;
		goto fail_firmreg;
	}

	/* Don't forget the root entries */
	error = sysfs_create_group(stable_kobj, &pdcs_attr_group);

	/* register the paths kset as a child of the stable kset */
	paths_kset = kset_create_and_add("paths", NULL, stable_kobj);
	if (!paths_kset) {
		rc = -ENOMEM;
		goto fail_ksetreg;
	}

	/* now we create all "files" for the paths kset */
	if ((rc = pdcs_register_pathentries()))
		goto fail_pdcsreg;

	return rc;
	
fail_pdcsreg:
	pdcs_unregister_pathentries();
	kset_unregister(paths_kset);
	
fail_ksetreg:
	kobject_put(stable_kobj);
	
fail_firmreg:
	printk(KERN_INFO PDCS_PREFIX " bailing out\n");
	return rc;
}
Esempio n. 19
0
/*
 * clean up on module removal
 */
static void __exit fscache_exit(void)
{
	_enter("");

	kset_unregister(&fscache_kset);
	kmem_cache_destroy(fscache_cookie_jar);
	printk(KERN_NOTICE "FS-Cache: unloaded\n");

}
static int __init
pdc_stable_init(void)
{
	int rc = 0, error = 0;
	u32 result;

	
	if (pdc_stable_get_size(&pdcs_size) != PDC_OK) 
		return -ENODEV;

	
	if (pdcs_size < 96)
		return -ENODATA;

	printk(KERN_INFO PDCS_PREFIX " facility v%s\n", PDCS_VERSION);

	
	if (pdc_stable_read(PDCS_ADDR_OSID, &result, sizeof(result)) != PDC_OK)
		return -EIO;

	
	pdcs_osid = (u16)(result >> 16);

	
	stable_kobj = kobject_create_and_add("stable", firmware_kobj);
	if (!stable_kobj) {
		rc = -ENOMEM;
		goto fail_firmreg;
	}

	
	error = sysfs_create_group(stable_kobj, &pdcs_attr_group);

	
	paths_kset = kset_create_and_add("paths", NULL, stable_kobj);
	if (!paths_kset) {
		rc = -ENOMEM;
		goto fail_ksetreg;
	}

	
	if ((rc = pdcs_register_pathentries()))
		goto fail_pdcsreg;

	return rc;
	
fail_pdcsreg:
	pdcs_unregister_pathentries();
	kset_unregister(paths_kset);
	
fail_ksetreg:
	kobject_put(stable_kobj);
	
fail_firmreg:
	printk(KERN_INFO PDCS_PREFIX " bailing out\n");
	return rc;
}
int  hw_btn_object_exit(void)
 {
         destroy_hw_btn_obj(reset_btn_obj);
         destroy_hw_btn_obj(alarm_silent_btn_obj);
         destroy_hw_btn_obj(tamper_obj);
         destroy_hw_btn_obj(tamper_history_obj);
         destroy_hw_btn_obj(hw_id_obj);
         kset_unregister(smartly_kset);
         return 0;
 }
Esempio n. 22
0
static void __exit exit_f2fs_fs(void)
{
	remove_proc_entry("fs/f2fs", NULL);
	f2fs_destroy_root_stats();
	unregister_filesystem(&f2fs_fs_type);
	destroy_checkpoint_caches();
	destroy_gc_caches();
	destroy_node_manager_caches();
	destroy_inodecache();
	kset_unregister(f2fs_kset);
}
static int _init_iostash_kobjects(void)
{
	int err = 0;

	static struct kobj_type ctl_kobj_type = {
                .release       = ctl_kobj_release,
                .sysfs_ops     = &ctl_sysfs_ops,
                .default_attrs = ctl_attrs,
        };

	memset(&gctx.ctl_kobj, 0, sizeof(gctx.ctl_kobj));
	kobject_init(&gctx.ctl_kobj, &ctl_kobj_type);

	err = kobject_add(&gctx.ctl_kobj,
			  (&(THIS_MODULE)->mkobj.kobj),
			  "%s",
			  CTL_KOBJ_NAME);
	if (err)
	{
		kobject_put(&gctx.ctl_kobj);
		err = -ENOMEM;
		goto out;
	}

	gctx.ssd_kset = kset_create_and_add
		(SSD_KSET_NAME, NULL, (&(THIS_MODULE)->mkobj.kobj));
	if (!gctx.ssd_kset)
	{
		err = -ENOMEM;
		goto kobj_del;
	}

	gctx.hdd_kset = kset_create_and_add
		(HDD_KSET_NAME, NULL, (&(THIS_MODULE)->mkobj.kobj));
	if (!gctx.hdd_kset)
	{
		err = -ENOMEM;
		goto unreg_ssd_kset;
	}

	BUG_ON(0 != err);

	return 0;

kobj_del:
	kobject_del(&gctx.ctl_kobj);
	kobject_put(&gctx.ctl_kobj);

unreg_ssd_kset:
	kset_unregister(gctx.ssd_kset);

out:
	return err;
}
Esempio n. 24
0
static void release_hdmi_obj(void)
{
	if (cb_hdmi_notifier) {
		cb_delete_hdmi_obj(cb_hdmi_notifier);
		cb_hdmi_notifier = NULL;
	}

	if (cb_hdmi_kset) {
		kset_unregister(cb_hdmi_kset);
		cb_hdmi_kset = NULL;
	}
}
Esempio n. 25
0
static void __exit inv_pthread_exit(void)
{
    thread_control_set(0);
    /* Delay for guarantee thread exit */
    ssleep(THREAD_DELAY_MINS);

    sysfs_remove_file(status_kobj, &status_att);
    kset_unregister(status_kset);
    kobject_del(status_kobj);

    printk(KERN_INFO "[p_thread] inv_pthread cleaning Up\n");
}
Esempio n. 26
0
static void efivars_sysfs_exit(void)
{
    /* Remove all entries and destroy */
    __efivar_entry_iter(efivar_sysfs_destroy, &efivar_sysfs_list, NULL, NULL);

    if (efivars_new_var)
        sysfs_remove_bin_file(&efivars_kset->kobj, efivars_new_var);
    if (efivars_del_var)
        sysfs_remove_bin_file(&efivars_kset->kobj, efivars_del_var);
    kfree(efivars_new_var);
    kfree(efivars_del_var);
    kset_unregister(efivars_kset);
}
Esempio n. 27
0
static void __exit visdn_module_exit(void)
{
    visdn_port_modexit();

    class_unregister(&visdn_system_class);

    device_unregister(&visdn_system_device);

    unregister_chrdev_region(visdn_first_dev, 2);

    kset_unregister(visdn_kset);
    visdn_kset = NULL;
    visdn_msg(KERN_INFO, "unloaded\n");
}
Esempio n. 28
0
static void __exit exit_f2fs_fs(void)
{
	remove_proc_entry("fs/f2fs", NULL);
	f2fs_destroy_root_stats();
	unregister_shrinker(&f2fs_shrinker_info);
	unregister_filesystem(&f2fs_fs_type);
	f2fs_exit_crypto();
	destroy_extent_cache();
	destroy_checkpoint_caches();
	destroy_segment_manager_caches();
	destroy_node_manager_caches();
	destroy_inodecache();
	kset_unregister(f2fs_kset);
	f2fs_destroy_trace_ios();
}
Esempio n. 29
0
static void __exit lustre_exit(void)
{
	lustre_register_super_ops(NULL, NULL, NULL);
	lustre_register_client_process_config(NULL);

	debugfs_remove(llite_root);
	kset_unregister(llite_kset);

	ll_xattr_fini();
	cl_env_put(cl_inode_fini_env, &cl_inode_fini_refcheck);
	vvp_global_fini();

	kmem_cache_destroy(ll_inode_cachep);
	kmem_cache_destroy(ll_file_data_slab);
}
Esempio n. 30
-1
static int __init pcrypt_init(void)
{
	int err = -ENOMEM;

	pcrypt_kset = kset_create_and_add("pcrypt", NULL, kernel_kobj);
	if (!pcrypt_kset)
		goto err;

	err = pcrypt_init_padata(&pencrypt, "pencrypt");
	if (err)
		goto err_unreg_kset;

	err = pcrypt_init_padata(&pdecrypt, "pdecrypt");
	if (err)
		goto err_deinit_pencrypt;

	padata_start(pencrypt.pinst);
	padata_start(pdecrypt.pinst);

	return crypto_register_template(&pcrypt_tmpl);

err_deinit_pencrypt:
	pcrypt_fini_padata(&pencrypt);
err_unreg_kset:
	kset_unregister(pcrypt_kset);
err:
	return err;
}