]> err.no Git - linux-2.6/blobdiff - kernel/params.c
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
[linux-2.6] / kernel / params.c
index 97e092312155b406634579af4942d38ff81a2d8b..67f65ee7211de8fa79311ca4141fdd96b9426765 100644 (file)
@@ -472,7 +472,7 @@ param_sysfs_setup(struct module_kobject *mk,
                        sizeof(mp->grp.attrs[0]));
        size[1] = (valid_attrs + 1) * sizeof(mp->grp.attrs[0]);
 
-       mp = kmalloc(size[0] + size[1], GFP_KERNEL);
+       mp = kzalloc(size[0] + size[1], GFP_KERNEL);
        if (!mp)
                return ERR_PTR(-ENOMEM);
 
@@ -561,11 +561,9 @@ static void __init kernel_param_sysfs_setup(const char *name,
 
        mk->mod = THIS_MODULE;
        mk->kobj.kset = module_kset;
-       mk->kobj.ktype = &module_ktype;
-       kobject_set_name(&mk->kobj, name);
-       kobject_init(&mk->kobj);
-       ret = kobject_add(&mk->kobj);
+       ret = kobject_init_and_add(&mk->kobj, &module_ktype, NULL, "%s", name);
        if (ret) {
+               kobject_put(&mk->kobj);
                printk(KERN_ERR "Module '%s' failed to be added to sysfs, "
                      "error number %d\n", name, ret);
                printk(KERN_ERR "The system will be unstable now.\n");
@@ -696,18 +694,8 @@ static struct kset_uevent_ops module_uevent_ops = {
 struct kset *module_kset;
 int module_sysfs_initialized;
 
-static void module_release(struct kobject *kobj)
-{
-       /*
-        * Stupid empty release function to allow the memory for the kobject to
-        * be properly cleaned up.  This will not need to be present for 2.6.25
-        * with the upcoming kobject core rework.
-        */
-}
-
 struct kobj_type module_ktype = {
        .sysfs_ops =    &module_sysfs_ops,
-       .release =      module_release,
 };
 
 /*