linux-stable/drivers/pinctrl
Maria Yu 730ac157c0 pinctrl: avoid reload of p state in list iteration
commit 4198a9b571 upstream.

When in the list_for_each_entry iteration, reload of p->state->settings
with a local setting from old_state will turn the list iteration into an
infinite loop.

The typical symptom when the issue happens, will be a 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 occurred using Clang
version 10.0 on the arm64 architecture with linux version 4.19.

Fixes: 6e5e959dde ("pinctrl: API changes to support multiple states per device")
Signed-off-by: Maria Yu <quic_aiquny@quicinc.com>
Cc:  <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20231115102824.23727-1-quic_aiquny@quicinc.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-08 08:43:24 +01:00
..
actions
aspeed pinctrl: aspeed: Fix confusing types in return value 2023-02-22 12:47:17 +01:00
bcm
berlin
cirrus
freescale
intel pinctrl: cherryview: Return correct value if pin in push-pull mode 2023-08-11 11:45:09 +02:00
mediatek pinctrl: meditatek: Startup with the IRQs disabled 2023-01-18 11:29:59 +01:00
meson pinctrl: meson-axg: add missing GPIOA_18 gpio group 2023-06-14 10:57:14 +02:00
mvebu pinctrl: mvebu: Fix irq_of_parse_and_map() return value 2022-06-14 16:59:24 +02:00
nomadik pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map 2022-08-25 11:15:37 +02:00
pxa
qcom pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed 2022-08-25 11:15:37 +02:00
samsung pinctrl: samsung: drop pin banks references on error paths 2022-04-15 14:14:39 +02:00
sh-pfc
sirf
spear
sprd
stm32 pinctrl: stm32: consider the GPIO offset to expose all the GPIO lines 2021-12-29 12:20:47 +01:00
sunxi pinctrl: sunxi: a83t: Fix NAND function name for some pins 2022-07-12 16:29:02 +02:00
tegra
ti
uniphier
vt8500
zte
Kconfig
Makefile
core.c pinctrl: avoid reload of p state in list iteration 2023-12-08 08:43:24 +01:00
core.h
devicetree.c pinctrl: devicetree: fix null pointer dereferencing in pinctrl_dt_to_map 2022-11-25 17:40:23 +01:00
devicetree.h
pinconf-generic.c pinctrl: pinconf-generic: add missing of_node_put() 2023-01-18 11:30:13 +01:00
pinconf.c
pinconf.h
pinctrl-amd.c pinctrl: amd: Don't show `Invalid config param` errors 2023-09-23 10:47:57 +02:00
pinctrl-amd.h pinctrl: amd: Detect internal GPIO0 debounce handling 2023-08-11 11:45:19 +02:00
pinctrl-artpec6.c
pinctrl-as3722.c
pinctrl-at91-pio4.c pinctrl: at91-pio4: check return value of devm_kasprintf() 2023-08-11 11:45:09 +02:00
pinctrl-at91.c pinctrl: at91: use devm_kasprintf() to avoid potential leaks 2023-03-11 16:31:48 +01:00
pinctrl-at91.h
pinctrl-axp209.c
pinctrl-coh901.c
pinctrl-coh901.h
pinctrl-da850-pupd.c
pinctrl-digicolor.c
pinctrl-falcon.c pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe() 2020-12-30 11:26:00 +01:00
pinctrl-gemini.c
pinctrl-ingenic.c pinctrl: ingenic: Improve unreachable code generation 2021-05-22 10:59:48 +02:00
pinctrl-lantiq.c
pinctrl-lantiq.h
pinctrl-lpc18xx.c
pinctrl-max77620.c
pinctrl-mcp23s08.c pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq() 2021-07-20 16:16:06 +02:00
pinctrl-ocelot.c
pinctrl-oxnas.c
pinctrl-palmas.c
pinctrl-pic32.c
pinctrl-pic32.h
pinctrl-pistachio.c pinctrl: pistachio: fix use of irq_of_parse_and_map() 2022-05-12 12:20:21 +02:00
pinctrl-rk805.c
pinctrl-rockchip.c pinctrl: rockchip: Fix refcount leak in rockchip_pinctrl_parse_groups 2023-03-11 16:31:40 +01:00
pinctrl-rza1.c
pinctrl-single.c pinctrl: single: fix potential NULL dereference 2023-02-22 12:47:18 +01:00
pinctrl-st.c
pinctrl-sx150x.c
pinctrl-tb10x.c
pinctrl-u300.c
pinctrl-utils.c
pinctrl-utils.h
pinctrl-xway.c
pinctrl-zynq.c
pinmux.c
pinmux.h