| From 010f23c070332db10c67d3f4758bdcdd38858b24 Mon Sep 17 00:00:00 2001 |
| From: Simon Horman <horms+renesas@verge.net.au> |
| Date: Tue, 24 Jul 2018 13:14:13 +0200 |
| Subject: [PATCH 1621/1795] 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> |
| (cherry picked from commit 542cdf4068049458e1411b120bd5a4bbe3ddc49a) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> |
| --- |
| drivers/thermal/rcar_thermal.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| 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); |
| -- |
| 2.19.0 |
| |