• Stefan Agner's avatar
    pinctrl: imx: reset group index on probe · 9999fe5d
    Stefan Agner authored
    Group index is incremented on every new group parsed. Since the
    field is part of struct imx_pinctrl_soc_info, which is typically
    a global variable passed by the individual pinctrl-imx.c based
    driver, it does not get cleared automatically when re-probing the
    driver. This lead imx_pinctrl_parse_functions passing a group
    pointer which is outside of the allocated group space on second
    probe and onwards. Typically this ended up in a NULL pointer
    dereference when accessing the name field like this:
    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    ...
    PC is at strcmp+0x18/0x44
    LR is at imx_dt_node_to_map+0xc4/0x290
    
    Avoid this by setting group_index to 0 on probe.
    
    This has been observed when using DEBUG_TEST_DRIVER_REMOVE.
    Signed-off-by: default avatarStefan Agner <stefan@agner.ch>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    9999fe5d
pinctrl-imx.c 21.3 KB