Patch "thermal/drivers/hisi: Fix kernel panic on alarm interrupt" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
thermal/drivers/hisi: Fix kernel panic on alarm interrupt
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
thermal-drivers-hisi-fix-kernel-panic-on-alarm-interrupt.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
2cb4de785c40d4a2132cfc13e63828f5a28c3351Mon Sep 17 00:00:00 2001
From: Daniel Lezcano <[email protected]>
Date: Thu, 19 Oct 2017 19:05:45 +0200
Subject: thermal/drivers/hisi: Fix kernel panic on alarm interrupt
From: Daniel Lezcano <[email protected]>
commit 2cb4de785c40d4a2132cfc13e63828f5a28c3351 upstream.
The threaded interrupt for the alarm interrupt is requested before the temperature controller is setup. This one can fire an interrupt immediately leading to a kernel panic as the sensor data is not initialized.
In order to prevent that, move the threaded irq after the Tsensor is setup.
--- drivers/thermal/hisi_thermal.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)
drivers/thermal/hisi_thermal.c +9 -9
@@ -317,15 +317,6 @@ static int hisi_thermal_probe(struct plaif (data->irq <0 )return data->irq; - ret =devm_request_threaded_irq (&pdev->dev, data->irq, - hisi_thermal_alarm_irq, - hisi_thermal_alarm_irq_thread, -0 ,"hisi_thermal" , data); -if (ret <0 ) { -dev_err (&pdev->dev,"failed to request alarm irq: %d\n" , ret); -return ret; - } -platform_set_drvdata (pdev, data); data->clk =devm_clk_get (&pdev->dev,"thermal_clk" );
@@ -357,6 +348,15 @@ static int hisi_thermal_probe(struct plahisi_thermal_toggle_sensor (&data->sensors[i], true); } + ret =devm_request_threaded_irq (&pdev->dev, data->irq, + hisi_thermal_alarm_irq, + hisi_thermal_alarm_irq_thread, +0 ,"hisi_thermal" , data); +if (ret <0 ) { +dev_err (&pdev->dev,"failed to request alarm irq: %d\n" , ret); +return ret; + } +enable_irq (data->irq);return 0 ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/thermal-drivers-hisi-fix-kernel-panic-on-alarm-interrupt.patch queue-4.9/thermal-drivers-hisi-fix-multiple-alarm-interrupts-firing.patch queue-4.9/thermal-drivers-hisi-fix-missing-interrupt-enablement.patch