]> git.baikalelectronics.ru Git - kernel.git/commitdiff
ASoC: simple-card: fixup refcount_t underflow
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Fri, 15 Feb 2019 06:31:29 +0000 (15:31 +0900)
committerMark Brown <broonie@kernel.org>
Mon, 18 Feb 2019 18:36:52 +0000 (18:36 +0000)
commit 8ed00e5e8316e ("ASoC: simple-card: merge simple-scu-card")
merged simple-card and simple-scu-card. Then it had refcount
underflow bug. This patch fixup it.
We will get below error without this patch.

OF: ERROR: Bad of_node_put() on /sound
CPU: 3 PID: 237 Comm: kworker/3:1 Not tainted 5.0.0-rc6+ #1514
Hardware name: Renesas H3ULCB Kingfisher board based on r8a7795 ES2.0+ (DT)
Workqueue: events deferred_probe_work_func
Call trace:
 dump_backtrace+0x0/0x150
 show_stack+0x24/0x30
 dump_stack+0xb0/0xec
 of_node_release+0xd0/0xd8
 kobject_put+0x74/0xe8
 of_node_put+0x24/0x30
 __of_get_next_child+0x50/0x70
 of_get_next_child+0x40/0x68
 asoc_simple_card_probe+0x604/0x730
 platform_drv_probe+0x58/0xa8
 ...
Reported-by: Vicente Bergas <vicencb@gmail.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/generic/simple-card.c

index 37e001cf9cd1dc5f09c019b63e1719d061a36cd1..3fe34417ec897df5fd4d6d5f177ee01655e39776 100644 (file)
@@ -462,7 +462,7 @@ static int asoc_simple_card_parse_of(struct simple_card_data *priv)
        conf_idx        = 0;
        node = of_get_child_by_name(top, PREFIX "dai-link");
        if (!node) {
-               node = dev->of_node;
+               node = of_node_get(top);
                loop = 0;
        }