diff options
author | Axel Lin <axel.lin@ingics.com> | 2012-11-15 12:56:05 +0800 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2012-11-15 16:50:15 +0100 |
commit | 953e9e93862871e005bdcde3b98db822d12185a8 (patch) | |
tree | 7000df3e63011dfd6abcb41d3bd1f1788f4020e1 /drivers/pinctrl/pinctrl-nomadik.c | |
parent | e7ed671825d7d8ee7225a9e1de997d643e6d5d69 (diff) | |
download | linux-953e9e93862871e005bdcde3b98db822d12185a8.tar.bz2 |
pinctrl: nomadik: Prevent NULL dereference if of_match_device returns NULL
of_match_device() may return NULL.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/pinctrl-nomadik.c')
-rw-r--r-- | drivers/pinctrl/pinctrl-nomadik.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/pinctrl/pinctrl-nomadik.c b/drivers/pinctrl/pinctrl-nomadik.c index 6a95d0438b6a..98c088ae7f4a 100644 --- a/drivers/pinctrl/pinctrl-nomadik.c +++ b/drivers/pinctrl/pinctrl-nomadik.c @@ -1864,9 +1864,14 @@ static int __devinit nmk_pinctrl_probe(struct platform_device *pdev) if (platid) version = platid->driver_data; - else if (np) - version = (unsigned int) - of_match_device(nmk_pinctrl_match, &pdev->dev)->data; + else if (np) { + const struct of_device_id *match; + + match = of_match_device(nmk_pinctrl_match, &pdev->dev); + if (!match) + return -ENODEV; + version = (unsigned int) match->data; + } /* Poke in other ASIC variants here */ if (version == PINCTRL_NMK_STN8815) |