diff options
author | Corentin LABBE <clabbe.montjoie@gmail.com> | 2016-08-16 04:51:38 -0400 |
---|---|---|
committer | Zhang Rui <rui.zhang@intel.com> | 2016-08-19 09:34:08 -0400 |
commit | 829bc78aa7628e81a9de717316b85cbee3c5eb86 (patch) | |
tree | b6244357a24210b67181e3c76a1594967d7eec1a | |
parent | 55f2ac33adc78d429c470c9ca05e18c36dc24922 (diff) |
thermal: imx: fix a possible NULL dereference
of_match_device could return NULL, and so cause a NULL pointer
dereference later at line 472:
data->socdata = of_id->data;
For fixing this problem, we use of_device_get_match_data(), this will
simplify the code a little by using a standard function for
getting the match data.
Reported-by: coverity (CID 1324128)
Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
-rw-r--r-- | drivers/thermal/imx_thermal.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c index c5547bd711db..e473548b5d28 100644 --- a/drivers/thermal/imx_thermal.c +++ b/drivers/thermal/imx_thermal.c | |||
@@ -471,8 +471,6 @@ MODULE_DEVICE_TABLE(of, of_imx_thermal_match); | |||
471 | 471 | ||
472 | static int imx_thermal_probe(struct platform_device *pdev) | 472 | static int imx_thermal_probe(struct platform_device *pdev) |
473 | { | 473 | { |
474 | const struct of_device_id *of_id = | ||
475 | of_match_device(of_imx_thermal_match, &pdev->dev); | ||
476 | struct imx_thermal_data *data; | 474 | struct imx_thermal_data *data; |
477 | struct regmap *map; | 475 | struct regmap *map; |
478 | int measure_freq; | 476 | int measure_freq; |
@@ -490,7 +488,7 @@ static int imx_thermal_probe(struct platform_device *pdev) | |||
490 | } | 488 | } |
491 | data->tempmon = map; | 489 | data->tempmon = map; |
492 | 490 | ||
493 | data->socdata = of_id->data; | 491 | data->socdata = of_device_get_match_data(&pdev->dev); |
494 | 492 | ||
495 | /* make sure the IRQ flag is clear before enabling irq on i.MX6SX */ | 493 | /* make sure the IRQ flag is clear before enabling irq on i.MX6SX */ |
496 | if (data->socdata->version == TEMPMON_IMX6SX) { | 494 | if (data->socdata->version == TEMPMON_IMX6SX) { |