Messages in this thread | | | Date | Fri, 20 Jan 2012 09:39:16 -0800 | From | Tony Lindgren <> | Subject | Re: [PATCH 2/4] pinctrl: Fix pinmux_hog_maps when ctrl_dev_name is not set |
| |
* Stephen Warren <swarren@nvidia.com> [120120 08:24]: > Tony Lindgren wrote at Friday, January 20, 2012 9:17 AM: > > The ctrl_dev_name is optional for struct pinmux_map assuming > > that ctrl_dev is set. Without this patch we can get: > > > > Unable to handle kernel NULL pointer dereference at virtual address 00000000 > > > diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c > > > > @@ -992,9 +992,12 @@ int pinmux_hog_maps(struct pinctrl_dev *pctldev) > > > > for (i = 0; i < pinmux_maps_num; i++) { > > struct pinmux_map const *map = &pinmux_maps[i]; > > + int match_found = 0; > > > > - if (((map->ctrl_dev == dev) || > > - !strcmp(map->ctrl_dev_name, devname)) && > > + if (map->ctrl_dev_name && !strcmp(map->ctrl_dev_name, devname)) > > + match_found = 1; > > + > > + if (((map->ctrl_dev == dev) || match_found) && > > map->hog_on_boot) { > > /* OK time to hog! */ > > ret = pinmux_hog_map(pctldev, map); > > Wouldn't it be better if match_found was true for all matching cases, > in other words for the new code to be: > > int match_found = 0; > > if (map->ctrl_dev_name && !strcmp(map->ctrl_dev_name, devname)) > match_found = 1; > if (map->ctrl_dev == dev) > match_found = 1; > if (match_found && map->hog_on_boot) {
OK will take a look, that would make the code easier to read.
Regards,
Tony
| |