summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0280-revert-thermal.patch
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-08 03:22:37 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-08 03:26:40 +0000
commit08f003891b84f52e49a5bdbc8a589fb052ac9a4e (patch)
treeb7e426b4a4eb48e9e71188a2812a4c71625c35ac /debian/patches-rt/0280-revert-thermal.patch
parentMerging upstream version 4.19.260. (diff)
downloadlinux-08f003891b84f52e49a5bdbc8a589fb052ac9a4e.tar.xz
linux-08f003891b84f52e49a5bdbc8a589fb052ac9a4e.zip
Merging debian version 4.19.260-1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches-rt/0280-revert-thermal.patch')
-rw-r--r--debian/patches-rt/0280-revert-thermal.patch116
1 files changed, 116 insertions, 0 deletions
diff --git a/debian/patches-rt/0280-revert-thermal.patch b/debian/patches-rt/0280-revert-thermal.patch
new file mode 100644
index 000000000..ef4bca6e0
--- /dev/null
+++ b/debian/patches-rt/0280-revert-thermal.patch
@@ -0,0 +1,116 @@
+From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
+Date: Fri, 20 Sep 2019 17:50:53 -0400
+Subject: [PATCH 280/342] revert-thermal
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=889019b2cc23787f62b86f2a97fdb25dd13861d5
+
+Revert: thermal: Defer thermal wakups to threads
+
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ drivers/thermal/x86_pkg_temp_thermal.c | 52 ++------------------------
+ 1 file changed, 3 insertions(+), 49 deletions(-)
+
+diff --git a/drivers/thermal/x86_pkg_temp_thermal.c b/drivers/thermal/x86_pkg_temp_thermal.c
+index a5991cbb408f..1ef937d799e4 100644
+--- a/drivers/thermal/x86_pkg_temp_thermal.c
++++ b/drivers/thermal/x86_pkg_temp_thermal.c
+@@ -29,7 +29,6 @@
+ #include <linux/pm.h>
+ #include <linux/thermal.h>
+ #include <linux/debugfs.h>
+-#include <linux/swork.h>
+ #include <asm/cpu_device_id.h>
+ #include <asm/mce.h>
+
+@@ -330,7 +329,7 @@ static void pkg_thermal_schedule_work(int cpu, struct delayed_work *work)
+ schedule_delayed_work_on(cpu, work, ms);
+ }
+
+-static void pkg_thermal_notify_work(struct swork_event *event)
++static int pkg_thermal_notify(u64 msr_val)
+ {
+ int cpu = smp_processor_id();
+ struct pkg_device *pkgdev;
+@@ -349,47 +348,9 @@ static void pkg_thermal_notify_work(struct swork_event *event)
+ }
+
+ spin_unlock_irqrestore(&pkg_temp_lock, flags);
+-}
+-
+-#ifdef CONFIG_PREEMPT_RT_FULL
+-static struct swork_event notify_work;
+-
+-static int pkg_thermal_notify_work_init(void)
+-{
+- int err;
+-
+- err = swork_get();
+- if (err)
+- return err;
+-
+- INIT_SWORK(&notify_work, pkg_thermal_notify_work);
+ return 0;
+ }
+
+-static void pkg_thermal_notify_work_cleanup(void)
+-{
+- swork_put();
+-}
+-
+-static int pkg_thermal_notify(u64 msr_val)
+-{
+- swork_queue(&notify_work);
+- return 0;
+-}
+-
+-#else /* !CONFIG_PREEMPT_RT_FULL */
+-
+-static int pkg_thermal_notify_work_init(void) { return 0; }
+-
+-static void pkg_thermal_notify_work_cleanup(void) { }
+-
+-static int pkg_thermal_notify(u64 msr_val)
+-{
+- pkg_thermal_notify_work(NULL);
+- return 0;
+-}
+-#endif /* CONFIG_PREEMPT_RT_FULL */
+-
+ static int pkg_temp_thermal_device_add(unsigned int cpu)
+ {
+ int pkgid = topology_logical_package_id(cpu);
+@@ -554,16 +515,11 @@ static int __init pkg_temp_thermal_init(void)
+ if (!x86_match_cpu(pkg_temp_thermal_ids))
+ return -ENODEV;
+
+- if (!pkg_thermal_notify_work_init())
+- return -ENODEV;
+-
+ max_packages = topology_max_packages();
+ packages = kcalloc(max_packages, sizeof(struct pkg_device *),
+ GFP_KERNEL);
+- if (!packages) {
+- ret = -ENOMEM;
+- goto err;
+- }
++ if (!packages)
++ return -ENOMEM;
+
+ ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "thermal/x86_pkg:online",
+ pkg_thermal_cpu_online, pkg_thermal_cpu_offline);
+@@ -581,7 +537,6 @@ static int __init pkg_temp_thermal_init(void)
+ return 0;
+
+ err:
+- pkg_thermal_notify_work_cleanup();
+ kfree(packages);
+ return ret;
+ }
+@@ -595,7 +550,6 @@ static void __exit pkg_temp_thermal_exit(void)
+ cpuhp_remove_state(pkg_thermal_hp_state);
+ debugfs_remove_recursive(debugfs);
+ kfree(packages);
+- pkg_thermal_notify_work_cleanup();
+ }
+ module_exit(pkg_temp_thermal_exit)
+