lkml.org 
[lkml]   [2012]   [Jan]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRE: [PATCH 2/4] pinctrl: Fix pinmux_hog_maps when ctrl_dev_name is not set
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) {

--
nvpublic

\
 
 \ /
  Last update: 2012-01-20 17:59    [W:0.096 / U:0.040 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site