[PATCH v2] pinctrl: mediatek: use spin lock in mtk_rmw
Linus Walleij
linus.walleij at linaro.org
Thu Apr 22 00:54:03 BST 2021
On Mon, Apr 19, 2021 at 11:35 AM Tzung-Bi Shih <tzungbi at google.com> wrote:
> Commit 42a46434e9b1 ("pinctrl: add lock in mtk_rmw function.") uses
> mutex lock in mtk_rmw. However the function is possible called from
> atomic context.
>
> For example call trace:
> mutex_lock+0x28/0x64
> mtk_rmw+0x38/0x80
> [snip]
> max98357a_daiops_trigger+0x8c/0x9c
> soc_pcm_trigger+0x5c/0x10c
>
> The max98357a_daiops_trigger() could run in either atomic or non-atomic
> context. As a result, dmesg shows some similar messages: "BUG: sleeping
> function called from invalid context at kernel/locking/mutex.c:254".
>
> Uses spin lock in mtk_rmw instead.
>
> Fixes: 42a46434e9b1 ("pinctrl: add lock in mtk_rmw function.")
> Signed-off-by: Tzung-Bi Shih <tzungbi at google.com>
Pulled out v1 and applied this v2 instead, thanks!
Yours,
Linus Walleij
More information about the Linux-mediatek
mailing list