diff mbox series

thermal: rcar_thermal: avoid NULL dereference in absense of IRQ resources

Message ID 20180724111413.4056-1-horms+renesas@verge.net.au (mailing list archive)
State Accepted
Delegated to: Eduardo Valentin
Headers show
Series thermal: rcar_thermal: avoid NULL dereference in absense of IRQ resources | expand

Commit Message

Simon Horman July 24, 2018, 11:14 a.m. UTC
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>
---
Based on v4.18-rc6
---
 drivers/thermal/rcar_thermal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Geert Uytterhoeven July 24, 2018, 11:32 a.m. UTC | #1
On Tue, Jul 24, 2018 at 1:15 PM Simon Horman <horms+renesas@verge.net.au> wrote:
> 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>

Gr{oetje,eeting}s,

                        Geert
diff mbox series

Patch

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);