diff options
author | Simon Horman <horms+renesas@verge.net.au> | 2018-07-24 13:14:13 +0200 |
---|---|---|
committer | Eduardo Valentin <edubezval@gmail.com> | 2018-07-27 16:45:36 -0700 |
commit | 542cdf4068049458e1411b120bd5a4bbe3ddc49a (patch) | |
tree | 7ccbed5138706f878025a39137c6273ae6f13bee /drivers/thermal/rcar_thermal.c | |
parent | c0c04707033c71d0490a412b0a941d87011949a3 (diff) | |
download | linux-542cdf4068049458e1411b120bd5a4bbe3ddc49a.tar.gz linux-542cdf4068049458e1411b120bd5a4bbe3ddc49a.tar.bz2 linux-542cdf4068049458e1411b120bd5a4bbe3ddc49a.zip |
thermal: rcar_thermal: avoid NULL dereference in absence of IRQ resources
Ensure that the base address used by a call to rcar_thermal_common_write()
may be NULL if the SOC supports interrupts for use with the thermal device
but none are defined in DT as is the case for R-Car H1 (r8a7779). Guard
against this condition to prevent a NULL dereference when the device is
probed.
Tested on:
* R-Mobile APE6 (r8a73a4) / APE6EVM
* R-Car H1 (r8a7779) / Marzen
* R-Car H2 (r8a7790) / Lager
* R-Car M2-W (r8a7791) / Koelsch
* R-Car M2-N (r8a7793) / Gose
* R-Car D3 ES1.0 (r8a77995) / Draak
Fixes: 1969d9dc2079 ("thermal: rcar_thermal: add r8a77995 support")
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
Diffstat (limited to 'drivers/thermal/rcar_thermal.c')
-rw-r--r-- | drivers/thermal/rcar_thermal.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index 45fb284d4c11..e77e63070e99 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -598,7 +598,7 @@ static int rcar_thermal_probe(struct platform_device *pdev) enr_bits |= 3 << (i * 8); } - if (enr_bits) + if (common->base && enr_bits) rcar_thermal_common_write(common, ENR, enr_bits); dev_info(dev, "%d sensor probed\n", i); |