diff --git a/sound/core/info.c b/sound/core/info.c index c8a413d6cc9b..566279374683 100644 --- a/sound/core/info.c +++ b/sound/core/info.c @@ -738,13 +738,12 @@ EXPORT_SYMBOL(snd_info_create_card_entry); static void snd_info_disconnect(struct snd_info_entry *entry) { - struct snd_info_entry *p, *n; + struct snd_info_entry *p; if (!entry->p) return; - list_for_each_entry_safe(p, n, &entry->children, list) + list_for_each_entry(p, &entry->children, list) snd_info_disconnect(p); - list_del_init(&entry->list); proc_remove(entry->p); entry->p = NULL; } @@ -771,6 +770,7 @@ void snd_info_free_entry(struct snd_info_entry * entry) list_for_each_entry_safe(p, n, &entry->children, list) snd_info_free_entry(p); + list_del(&entry->list); kfree(entry->name); if (entry->private_free) entry->private_free(entry);