• Daniel Baluta's avatar
    ASoC: simple-card: Fix refcount underflow · 461d854c
    Daniel Baluta authored
    of_get_child_by_name() takes a reference we'll need to drop
    later so when we substitute in top we need to take a reference
    as well as just assigning.
    
    Without this patch we hit the following error:
    
    [    1.246852] OF: ERROR: Bad of_node_put() on /sound-wm8524
    [    1.262261] Hardware name: NXP i.MX8MQ EVK (DT)
    [    1.266807] Workqueue: events deferred_probe_work_func
    [    1.271950] Call trace:
    [    1.274406]  dump_backtrace+0x0/0x158
    [    1.278074]  show_stack+0x14/0x20
    [    1.281396]  dump_stack+0xa8/0xcc
    [    1.284717]  of_node_release+0xb0/0xc8
    [    1.288474]  kobject_put+0x74/0xf0
    [    1.291879]  of_node_put+0x14/0x28
    [    1.295286]  __of_get_next_child+0x44/0x70
    [    1.299387]  of_get_next_child+0x3c/0x60
    [    1.303315]  simple_for_each_link+0x1dc/0x230
    [    1.307676]  simple_probe+0x80/0x540
    [    1.311256]  platform_drv_probe+0x50/0xa0
    
    This patch is based on an earlier version posted by Kuninori Morimoto
    and commit message includes explanations from Mark Brown.
    
    https://patchwork.kernel.org/patch/10814255/Reported-by: default avatarVicente Bergas <vicencb@gmail.com>
    Signed-off-by: default avatarDaniel Baluta <daniel.baluta@nxp.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    461d854c
simple-card.c 20.7 KB