On Wed, Nov 15, 2023 at 11:28 AM Maria Yu quic_aiquny@quicinc.com 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@quicinc.com Cc: stable@vger.kernel.org
Patch applied, I edited the commit message a bit.
Thanks a lot for finding this tricky bug!
Yours, Linus Walleij