summaryrefslogtreecommitdiff
path: root/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002g.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002g.patch')
-rw-r--r--recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002g.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002g.patch b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002g.patch
new file mode 100644
index 0000000..714e97f
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-rt-4.9-2.3.x/002g.patch
@@ -0,0 +1,53 @@
+--- b/kernel/cpu.c
++++ a/kernel/cpu.c
+@@ -1917,15 +1917,6 @@
+ kobject_uevent(&dev->kobj, KOBJ_OFFLINE);
+ }
+
+-static void cpuhp_online_cpu_device(unsigned int cpu)
+-{
+- struct device *dev = get_cpu_device(cpu);
+-
+- dev->offline = false;
+- /* Tell user space about the state change */
+- kobject_uevent(&dev->kobj, KOBJ_ONLINE);
+-}
+-
+ static int cpuhp_smt_disable(enum cpuhp_smt_control ctrlval)
+ {
+ int cpu, ret = 0;
+@@ -1958,24 +1949,11 @@
+ return ret;
+ }
+
++static void cpuhp_smt_enable(void)
+-static int cpuhp_smt_enable(void)
+ {
+- int cpu, ret = 0;
+-
+ cpu_maps_update_begin();
+ cpu_smt_control = CPU_SMT_ENABLED;
+- for_each_present_cpu(cpu) {
+- /* Skip online CPUs and CPUs on offline nodes */
+- if (cpu_online(cpu) || !node_online(cpu_to_node(cpu)))
+- continue;
+- ret = _cpu_up(cpu, 0, CPUHP_ONLINE);
+- if (ret)
+- break;
+- /* See comment in cpuhp_smt_disable() */
+- cpuhp_online_cpu_device(cpu);
+- }
+ cpu_maps_update_done();
+- return ret;
+ }
+
+ static ssize_t
+@@ -2006,7 +1984,7 @@
+ if (ctrlval != cpu_smt_control) {
+ switch (ctrlval) {
+ case CPU_SMT_ENABLED:
++ cpuhp_smt_enable();
+- ret = cpuhp_smt_enable();
+ break;
+ case CPU_SMT_DISABLED:
+ case CPU_SMT_FORCE_DISABLED: