]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 May 2021 10:32:32 +0000 (12:32 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 May 2021 10:32:32 +0000 (12:32 +0200)
added patches:
thermal-core-fair-share-lock-the-thermal-zone-while-looping-over-instances.patch

queue-4.14/series
queue-4.14/thermal-core-fair-share-lock-the-thermal-zone-while-looping-over-instances.patch [new file with mode: 0644]

index f9f8e6d05c7778a68ffc05ec7b22167c0c11dbd7..5515931682dd3bd3d60b8ef034097eeaaf9aa54b 100644 (file)
@@ -294,3 +294,4 @@ fddi-defxx-make-mmio-the-configuration-default-except-for-eisa.patch
 mips-reinstate-platform-__div64_32-handler.patch
 mips-avoid-divu-in-__div64_32-is-result-would-be-zero.patch
 mips-avoid-handcoded-divu-in-__div64_32-altogether.patch
+thermal-core-fair-share-lock-the-thermal-zone-while-looping-over-instances.patch
diff --git a/queue-4.14/thermal-core-fair-share-lock-the-thermal-zone-while-looping-over-instances.patch b/queue-4.14/thermal-core-fair-share-lock-the-thermal-zone-while-looping-over-instances.patch
new file mode 100644 (file)
index 0000000..09b187d
--- /dev/null
@@ -0,0 +1,42 @@
+From fef05776eb02238dcad8d5514e666a42572c3f32 Mon Sep 17 00:00:00 2001
+From: Lukasz Luba <lukasz.luba@arm.com>
+Date: Thu, 22 Apr 2021 16:36:22 +0100
+Subject: thermal/core/fair share: Lock the thermal zone while looping over instances
+
+From: Lukasz Luba <lukasz.luba@arm.com>
+
+commit fef05776eb02238dcad8d5514e666a42572c3f32 upstream.
+
+The tz->lock must be hold during the looping over the instances in that
+thermal zone. This lock was missing in the governor code since the
+beginning, so it's hard to point into a particular commit.
+
+CC: stable@vger.kernel.org # 4.4+
+Signed-off-by: Lukasz Luba <lukasz.luba@arm.com>
+Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
+Link: https://lore.kernel.org/r/20210422153624.6074-2-lukasz.luba@arm.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/thermal/fair_share.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/thermal/fair_share.c
++++ b/drivers/thermal/fair_share.c
+@@ -94,6 +94,8 @@ static int fair_share_throttle(struct th
+       int total_instance = 0;
+       int cur_trip_level = get_trip_level(tz);
++      mutex_lock(&tz->lock);
++
+       list_for_each_entry(instance, &tz->thermal_instances, tz_node) {
+               if (instance->trip != trip)
+                       continue;
+@@ -122,6 +124,8 @@ static int fair_share_throttle(struct th
+               mutex_unlock(&instance->cdev->lock);
+               thermal_cdev_update(cdev);
+       }
++
++      mutex_unlock(&tz->lock);
+       return 0;
+ }