• Kuninori Morimoto's avatar
    ASoC: rsnd: fixup DMAEngine API · 2ce1b21c
    Kuninori Morimoto authored
    commit d5bb69dc ("ASoC: sh: rcar: dma: : use proper DMAENGINE
    API for termination") updated DMAEngine API _all() to _sync(),
    but it should be _async().
    _all() and _async() are almost same, the difference is only return
    error code. _sync() will call dmaengine_synchronize() and will be
    kernel panic.
    This patch is needed for v5.15 or later.
    
    [   27.293264] BUG: scheduling while atomic: irq/130-ec70000/131/0x00000003
    [   27.300084] 2 locks held by irq/130-ec70000/131:
    [   27.304743]  #0: ffff0004c274d908 (&group->lock){....}-{2:2}, at: _snd_pcm_stream_lock_irqsave+0x48/0x54
    [   27.314344]  #1: ffff0004c1788c60 (&priv->lock#2){....}-{2:2}, at: rsnd_soc_dai_trigger+0x70/0x7bc
    [   27.323409] irq event stamp: 206
    [   27.326664] hardirqs last  enabled at (205): [<ffff80001082de50>] _raw_spin_unlock_irq+0x50/0xa0
    [   27.335529] hardirqs last disabled at (206): [<ffff80001082d9e4>] _raw_spin_lock_irqsave+0xc4/0xd0
    [   27.344564] softirqs last  enabled at (0): [<ffff800010037324>] copy_process+0x644/0x1b10
    [   27.352819] softirqs last disabled at (0): [<0000000000000000>] 0x0
    [   27.359142] CPU: 0 PID: 131 Comm: irq/130-ec70000 Not tainted 5.14.0-rc1+ #918
    [   27.366429] Hardware name: Renesas H3ULCB Kingfisher board based on r8a77950 (DT)
    [   27.373975] Call trace:
    [   27.376442]  dump_backtrace+0x0/0x1b4
    [   27.380141]  show_stack+0x24/0x30
    [   27.383488]  dump_stack_lvl+0x8c/0xb8
    [   27.387184]  dump_stack+0x18/0x34
    [   27.390528]  __schedule_bug+0x8c/0x9c
    [   27.394224]  __schedule+0x790/0x8dc
    [   27.397746]  schedule+0x7c/0x110
    [   27.401003]  synchronize_irq+0x94/0xd0
    [   27.404786]  rcar_dmac_device_synchronize+0x20/0x2c
    [   27.409710]  rsnd_dmaen_stop+0x50/0x64
    [   27.413495]  rsnd_soc_dai_trigger+0x554/0x7bc
    [   27.417890]  snd_soc_pcm_dai_trigger+0xe8/0x264
    
    Cc: <stable@kernel.org>
    Fixes: commit d5bb69dc ("ASoC: sh: rcar: dma: : use proper DMAENGINE API for termination")
    Link: https://lore.kernel.org/r/TY2PR01MB3692889E1A7476C4322CC296D8AE9@TY2PR01MB3692.jpnprd01.prod.outlook.comReported-by: default avatarYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Acked-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
    Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Link: https://lore.kernel.org/r/87mtmfz36o.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    2ce1b21c
dma.c 22.3 KB