2017-12-12 14:28:02

by Jia-Ju Bai

[permalink] [raw]
Subject: [BUG] soc/sti: a possible sleep-in-atomic bug in uni_player_ctl_iec958_put

According to sound/soc/sti/uniperif_player.c, the driver may sleep under
a spinlock.
The function call path is:
uni_player_ctl_iec958_put (acquire the spinlock)
uni_player_set_channel_status
mutex_lock --> may sleep

I do not find a good way to fix it, so I only report.
This possible bug is found by my static analysis tool (DSAC) and checked
by my code review.


Thanks,
Jia-Ju Bai


2017-12-12 16:13:58

by Arnaud POULIQUEN

[permalink] [raw]
Subject: Re: [BUG] soc/sti: a possible sleep-in-atomic bug in uni_player_ctl_iec958_put

Hello Jia-Ju,


On 12/12/2017 03:27 PM, Jia-Ju Bai wrote:
> According to sound/soc/sti/uniperif_player.c, the driver may sleep under
> a spinlock.
> The function call path is:
> uni_player_ctl_iec958_put (acquire the spinlock)
>   uni_player_set_channel_status
>     mutex_lock --> may sleep
>
> I do not find a good way to fix it, so I only report.
> This possible bug is found by my static analysis tool (DSAC) and checked
> by my code review.
you right, mutex under spin lock is not recommended... I will have a look
Thanks!

Regards
Arnaud

>
>
> Thanks,
> Jia-Ju Bai