Hi Niklas, On Wed, Jun 27, 2018 at 8:01 AM Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx> wrote: > Not all SoCs describes the drive strength registers. When reading the > sysfs pinconf-pins file on such a SoC this results in a null pointer > dereference. Protect against this dereference and allow reading of the > pinconf-pins by adding a check if the drive strength registers are > described or not. > > Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx> Thanks for your patch! > This was found on the Eagle board and is based on the latest > renesas/devel branch. I think the real issue is pfc-r8a77990.c setting SH_PFC_PIN_CFG_DRIVE_STRENGTH without providing sh_pfc.drive_regs[]. Without that flag set, sh_pfc_pinconf_validate(..., PIN_CONFIG_DRIVE_STRENGTH) would cause an earlier failure. > --- a/drivers/pinctrl/sh-pfc/pinctrl.c > +++ b/drivers/pinctrl/sh-pfc/pinctrl.c > @@ -483,6 +483,9 @@ static u32 sh_pfc_pinconf_find_drive_strength_reg(struct sh_pfc *pfc, > const struct pinmux_drive_reg *reg; > unsigned int i; > > + if (!pfc->info->drive_regs) > + return 0; > + > for (reg = pfc->info->drive_regs; reg->reg; ++reg) { > for (i = 0; i < ARRAY_SIZE(reg->fields); ++i) { > field = ®->fields[i]; Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds