Merge branch 'akpm' (patches from Andrew)
[firefly-linux-kernel-4.4.55.git] / sound / hda / hdac_sysfs.c
index 0a6ce3b84cc474acb96ef435d02d7a7dfd926b42..c71142dea98a18f5355f1395c4c34200a773c52e 100644 (file)
@@ -321,8 +321,7 @@ static void widget_tree_free(struct hdac_device *codec)
                        free_widget_node(*p, &widget_node_group);
                kfree(tree->nodes);
        }
-       if (tree->root)
-               kobject_put(tree->root);
+       kobject_put(tree->root);
        kfree(tree);
        codec->widgets = NULL;
 }
@@ -391,6 +390,9 @@ int hda_widget_sysfs_init(struct hdac_device *codec)
 {
        int err;
 
+       if (codec->widgets)
+               return 0; /* already created */
+
        err = widget_tree_create(codec);
        if (err < 0) {
                widget_tree_free(codec);