summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2013-12-05 16:46:35 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-12-08 18:23:42 -0800
commitd0f80f9aadf60adc4caafed0d2b01e79a315ff80 (patch)
treeae7e21c5105ca8f4454055400aa68ae9678d8029
parenta61aca2854eaecf2d1bffbaf1fc368fb1a20c850 (diff)
firmware: dmi-sysfs: Remove "dmi" directory on module exit
With CONFIG_DEBUG_KOBJECT_RELEASE=y, removing and immediately reloading the dmi-sysfs module causes the following warning: sysfs: cannot create duplicate filename '/firmware/dmi' kobject_add_internal failed for dmi with -EEXIST, don't try to register things with the same name in the same directory. The "dmi" directory stays in sysfs until the dmi_kobj is released, and DEBUG_KOBJECT_RELEASE delays that. I don't think we can hit this problem in normal usage because dmi_kobj is static and nothing outside dmi-sysfs can get a reference to it, so the only way to delay the "dmi" release is with DEBUG_KOBJECT_RELEASE. Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/firmware/dmi-sysfs.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/firmware/dmi-sysfs.c b/drivers/firmware/dmi-sysfs.c
index 66200ed5e6a1..e0f1cb3d3598 100644
--- a/drivers/firmware/dmi-sysfs.c
+++ b/drivers/firmware/dmi-sysfs.c
@@ -685,6 +685,7 @@ 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);
}