These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / firmware / dmi-sysfs.c
index e0f1cb3..ef76e5e 100644 (file)
@@ -566,7 +566,6 @@ static struct kobj_type dmi_sysfs_entry_ktype = {
        .default_attrs = dmi_sysfs_entry_attrs,
 };
 
-static struct kobject *dmi_kobj;
 static struct kset *dmi_kset;
 
 /* Global count of all instances seen.  Only for setup */
@@ -648,17 +647,20 @@ static void cleanup_entry_list(void)
 
 static int __init dmi_sysfs_init(void)
 {
-       int error = -ENOMEM;
+       int error;
        int val;
 
-       /* Set up our directory */
-       dmi_kobj = kobject_create_and_add("dmi", firmware_kobj);
-       if (!dmi_kobj)
+       if (!dmi_kobj) {
+               pr_err("dmi-sysfs: dmi entry is absent.\n");
+               error = -ENODATA;
                goto err;
+       }
 
        dmi_kset = kset_create_and_add("entries", NULL, dmi_kobj);
-       if (!dmi_kset)
+       if (!dmi_kset) {
+               error = -ENOMEM;
                goto err;
+       }
 
        val = 0;
        error = dmi_walk(dmi_sysfs_register_handle, &val);
@@ -675,7 +677,6 @@ static int __init dmi_sysfs_init(void)
 err:
        cleanup_entry_list();
        kset_unregister(dmi_kset);
-       kobject_put(dmi_kobj);
        return error;
 }
 
@@ -685,8 +686,6 @@ static void __exit dmi_sysfs_exit(void)
        pr_debug("dmi-sysfs: unloading.\n");
        cleanup_entry_list();
        kset_unregister(dmi_kset);
-       kobject_del(dmi_kobj);
-       kobject_put(dmi_kobj);
 }
 
 module_init(dmi_sysfs_init);