WSL2-Linux-Kernel/drivers/pinctrl
Maxim Korotkov d86d698925 pinctrl: single: Fix potential division by zero
[ Upstream commit 64c150339e ]

There is a possibility of dividing by zero due to the pcs->bits_per_pin
if pcs->fmask() also has a value of zero and called fls
from asm-generic/bitops/builtin-fls.h or arch/x86/include/asm/bitops.h.
The function pcs_probe() has the branch that assigned to fmask 0 before
pcs_allocate_pin_table() was called

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 4e7e8017a8 ("pinctrl: pinctrl-single: enhance to configure multiple pins of different modules")
Signed-off-by: Maxim Korotkov <korotkov.maxim.s@gmail.com>
Reviewed-by: Tony Lindgren <tony@atomide.com>
Link: https://lore.kernel.org/r/20221117123034.27383-1-korotkov.maxim.s@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-08 11:28:44 +01:00
..
actions pinctrl: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:39 +01:00
aspeed pinctrl: aspeed: Fix potential NULL dereference in aspeed_pinmux_set_mux() 2022-07-21 21:24:36 +02:00
bcm pinctrl: bcm2835: implement hook for missing gpio-ranges 2022-06-09 10:23:07 +02:00
berlin
cirrus
freescale pinctrl: imx8dxl: Constify imx_pinctrl_soc_info 2021-07-30 12:06:02 +02:00
intel pinctrl: intel: Save and restore pins in "direct IRQ" mode 2022-12-08 11:28:42 +01:00
mediatek pinctrl: mediatek: mt8195: enable driver on mtk platforms 2022-06-09 10:23:07 +02:00
meson
mvebu pinctrl: armada-37xx: use raw spinlocks for regmap to avoid invalid wait context 2022-07-29 17:25:20 +02:00
nomadik pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map 2022-08-25 11:40:07 +02:00
nuvoton pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE() 2022-04-08 14:24:11 +02:00
pxa pinctrl: Introduce MODE group in enum pin_config_param 2021-04-22 02:03:01 +02:00
qcom pinctrl: qcom: sc8180x: Fix wrong pin numbers 2022-09-23 14:15:47 +02:00
ralink pinctrl: ralink: Check for null return of devm_kcalloc 2022-07-29 17:25:10 +02:00
renesas pinctrl: renesas: core: Fix possible null-ptr-deref in sh_pfc_map_resources() 2022-06-09 10:23:09 +02:00
samsung pinctrl: samsung: fix missing GPIOLIB on ARM64 Exynos config 2022-05-09 09:14:30 +02:00
spear pinctrl: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:39 +01:00
sprd
stm32 pinctrl: stm32: fix optional IRQ support to gpios 2022-07-29 17:25:05 +02:00
sunxi pinctrl: sunxi: Fix name for A100 R_PIO 2022-09-23 14:15:47 +02:00
tegra
ti pinctrl: ti: fix error return code of ti_iodelay_dt_node_to_map() 2021-04-08 15:57:14 +02:00
uniphier
visconti
vt8500
Kconfig pinctrl: Add Intel Keem Bay pinctrl driver 2021-08-11 15:13:14 +02:00
Makefile pinctrl: Add Intel Keem Bay pinctrl driver 2021-08-11 15:13:14 +02:00
core.c pinctrl: core: fix possible memory leak in pinctrl_enable() 2021-11-18 19:16:06 +01:00
core.h
devicetree.c pinctrl: devicetree: fix null pointer dereferencing in pinctrl_dt_to_map 2022-11-26 09:24:36 +01:00
devicetree.h
pinconf-generic.c pinctrl: pinconf-generic: Print arguments for bias-pull-* 2022-04-08 14:24:11 +02:00
pinconf.c pinctrl: use to octal permissions for debugfs files 2021-03-10 14:41:58 +01:00
pinconf.h
pinctrl-amd.c pinctrl: amd: Don't save/restore interrupt status and wake status bits 2022-08-25 11:40:08 +02:00
pinctrl-amd.h pinctrl: amd: Add irq field data 2021-09-17 00:48:45 +02:00
pinctrl-artpec6.c
pinctrl-as3722.c
pinctrl-at91-pio4.c pinctrl: at91-pio4: Fix slew rate disablement 2021-04-13 09:42:18 +02:00
pinctrl-at91.c pinctrl: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:39 +01:00
pinctrl-at91.h
pinctrl-axp209.c
pinctrl-bm1880.c
pinctrl-da850-pupd.c
pinctrl-da9062.c
pinctrl-digicolor.c
pinctrl-equilibrium.c pinctrl: equilibrium: Fix function addition in multiple groups 2021-11-18 19:16:55 +01:00
pinctrl-equilibrium.h
pinctrl-falcon.c
pinctrl-gemini.c
pinctrl-ingenic.c pinctrl: Ingenic: JZ4755 bug fixes 2022-11-03 23:59:13 +09:00
pinctrl-k210.c pinctrl: k210: Fix bias-pull-up 2022-03-02 11:48:09 +01:00
pinctrl-keembay.c pinctrl: Add Intel Keem Bay pinctrl driver 2021-08-11 15:13:14 +02:00
pinctrl-lantiq.c
pinctrl-lantiq.h
pinctrl-lpc18xx.c pinctrl: Introduce MODE group in enum pin_config_param 2021-04-22 02:03:01 +02:00
pinctrl-max77620.c
pinctrl-mcp23s08.c pinctrl: mcp23s08: Add optional reset GPIO 2021-06-12 01:58:10 +02:00
pinctrl-mcp23s08.h pinctrl: mcp23s08: Add optional reset GPIO 2021-06-12 01:58:10 +02:00
pinctrl-mcp23s08_i2c.c
pinctrl-mcp23s08_spi.c
pinctrl-microchip-sgpio.c pinctrl: microchip-sgpio: lock RMW access 2022-04-08 14:23:49 +02:00
pinctrl-ocelot.c pinctrl: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:39 +01:00
pinctrl-oxnas.c pinctrl: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:39 +01:00
pinctrl-palmas.c
pinctrl-pic32.c pinctrl: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:39 +01:00
pinctrl-pic32.h
pinctrl-pistachio.c pinctrl: pistachio: fix use of irq_of_parse_and_map() 2022-05-09 09:14:36 +02:00
pinctrl-rk805.c
pinctrl-rockchip.c pinctrl: rockchip: list all pins in a possible mux route for PX30 2022-11-26 09:24:35 +01:00
pinctrl-rockchip.h pinctrl/rockchip: support deferring other gpio params 2022-06-09 10:23:07 +02:00
pinctrl-single.c pinctrl: single: Fix potential division by zero 2022-12-08 11:28:44 +01:00
pinctrl-st.c pinctrl: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:39 +01:00
pinctrl-stmfx.c pinctrl: stmfx: Fix hazardous u8[] to unsigned long cast 2021-08-10 14:47:59 +02:00
pinctrl-sx150x.c
pinctrl-tb10x.c
pinctrl-utils.c
pinctrl-utils.h
pinctrl-xway.c
pinctrl-zynq.c pinctrl: pinctrl-zynq: Add support for 'power-source' parameter 2021-07-30 14:40:42 +02:00
pinctrl-zynqmp.c pinctrl: zynqmp: Drop pinctrl_unregister for devm_ registered device 2021-08-11 15:09:22 +02:00
pinmux.c pinctrl: pinmux: Add pinmux-select debugfs file 2021-03-10 14:41:58 +01:00
pinmux.h