linux/drivers/pinctrl/renesas
Biju Das 661efa2284 pinctrl: renesas: rzg2l: Fix NULL pointer dereference in rzg2l_dt_subnode_to_map()
Fix the below random NULL pointer crash during boot by serializing
pinctrl group and function creation/remove calls in
rzg2l_dt_subnode_to_map() with mutex lock.

Crash log:
    pc : __pi_strcmp+0x20/0x140
    lr : pinmux_func_name_to_selector+0x68/0xa4
    Call trace:
    __pi_strcmp+0x20/0x140
    pinmux_generic_add_function+0x34/0xcc
    rzg2l_dt_subnode_to_map+0x314/0x44c
    rzg2l_dt_node_to_map+0x164/0x194
    pinctrl_dt_to_map+0x218/0x37c
    create_pinctrl+0x70/0x3d8

While at it, add comments for bitmap_lock and lock.

Fixes: c4c4637eb5 ("pinctrl: renesas: Add RZ/G2L pin and gpio controller driver")
Tested-by: Chris Paterson <Chris.Paterson2@renesas.com>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20230815131558.33787-2-biju.das.jz@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2023-08-18 13:01:41 +02:00
..
core.c pinctrl: renesas: core: Drop unneeded #ifdef CONFIG_OF 2023-03-30 15:41:14 +02:00
core.h pinctrl: renesas: Move R-Car bias helpers to sh_pfc.h 2021-03-24 10:38:29 +01:00
gpio.c pinctrl: renesas: gpio: Use dynamic GPIO base if no function GPIOs 2022-11-17 20:34:51 +01:00
Kconfig pinctrl: renesas: Remove R-Car H3 ES1.* handling 2023-03-10 17:12:40 +01:00
Makefile pinctrl: renesas: Remove R-Car H3 ES1.* handling 2023-03-10 17:12:40 +01:00
pfc-emev2.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a73a4.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a779a0.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a779f0.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a779g0.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a7740.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a7778.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a7779.c pinctrl: renesas: r8a7779: Add PWM pins, groups, and functions 2023-03-30 15:39:05 +02:00
pfc-r8a7790.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a7791.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a7792.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a7794.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a7796.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a77470.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a77951.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a77965.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a77970.c pinctrl: renesas: Fix spaces followed by tabs 2023-05-09 11:51:33 +02:00
pfc-r8a77980.c pinctrl: renesas: Fix spaces followed by tabs 2023-05-09 11:51:33 +02:00
pfc-r8a77990.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-r8a77995.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-sh73a0.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-sh7203.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-sh7264.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-sh7269.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-sh7720.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-sh7722.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-sh7723.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-sh7724.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-sh7734.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-sh7757.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-sh7785.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-sh7786.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pfc-shx3.c pinctrl: renesas: Annotate sentinels in tables 2023-03-30 15:39:05 +02:00
pinctrl-rza1.c Pin control bulk changes for the v6.4 kernel: 2023-05-02 15:40:41 -07:00
pinctrl-rza2.c pinctrl: renesas: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:53 -07:00
pinctrl-rzg2l.c pinctrl: renesas: rzg2l: Fix NULL pointer dereference in rzg2l_dt_subnode_to_map() 2023-08-18 13:01:41 +02:00
pinctrl-rzn1.c Pin control bulk changes for the v6.4 kernel: 2023-05-02 15:40:41 -07:00
pinctrl-rzv2m.c pinctrl: renesas: rzv2m: Handle non-unique subnode names 2023-07-10 10:00:22 +02:00
pinctrl.c pinctrl: renesas: Add support for 1.8V/2.5V I/O voltage levels 2023-03-30 15:39:04 +02:00
sh_pfc.h pinctrl: renesas: Add support for 1.8V/2.5V I/O voltage levels 2023-03-30 15:39:04 +02:00