Re: [PATCH v3] pinctrl: avoid reload of p state in list iteration

From: Linus Walleij
Date: Wed Nov 15 2023 - 05:46:51 EST


On Wed, Nov 15, 2023 at 11:28 AM Maria Yu <quic_aiquny@xxxxxxxxxxx> wrote:

> When in the list_for_each_entry iteration, reload of p->state->settings
> with a local setting from old_state will makes the list iteration in a
> infinite loop.
> The typical issue happened, it will frequently have printk message like:
> "not freeing pin xx (xxx) as part of deactivating group xxx - it is
> already used for some other setting".
> This is a compiler-dependent problem, one instance was got using Clang
> version 10.0 plus arm64 architecture with linux version 4.19.
>
> Fixes: 6e5e959dde0d ("pinctrl: API changes to support multiple states per device")
> Signed-off-by: Maria Yu <quic_aiquny@xxxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx

Patch applied, I edited the commit message a bit.

Thanks a lot for finding this tricky bug!

Yours,
Linus Walleij