Re: [BUG] ALSA: soc: sti: a possible sleep-in-atomic-context bug in uni_player_ctl_iec958_put()

From: Arnaud POULIQUEN
Date: Wed Dec 18 2019 - 08:25:03 EST


Hi Jia-Ju

On 12/18/19 1:51 PM, Jia-Ju Bai wrote:
> The driver may sleep while holding a spinlock.
> The function call path (from bottom to top) in Linux 4.19 is:
>
> sound/soc/sti/uniperif_player.c, 229:
> ÂÂÂ mutex_lock in uni_player_set_channel_status
> sound/soc/sti/uniperif_player.c, 608:
> ÂÂÂ uni_player_set_channel_status in uni_player_ctl_iec958_put
> sound/soc/sti/uniperif_player.c, 603:
> ÂÂÂ _raw_spin_lock_irqsave in uni_player_ctl_iec958_put
>
> mutex_lock() can sleep at runtime.
>
> I am not sure how to properly fix this possible bug, so I only report it.
>
> This bug is found by a static analysis tool STCheck written by myself.
Thank you for pointing out the bug, I will test and send a fix.

Regards
Arnaud
>
>
> Best wishes,
> Jia-Ju Bai
>