diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2017-10-02 11:51:15 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2017-10-02 11:51:15 -0400 |
commit | 15af76c83ec7f16e43849e04377884659b63fa56 (patch) | |
tree | 96b876d3ef147f0dfea4cbb1e2e750b84ba944de | |
parent | 6d51273e313071587dfbf658ae090ef6029210fc (diff) | |
download | 4.12-rt-patches-15af76c83ec7f16e43849e04377884659b63fa56.tar.gz |
remove 0003-ia64-salinfo-Replace-racy-task-affinity-logic.patch now upstream
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | patches/0003-ia64-salinfo-Replace-racy-task-affinity-logic.patch | 128 | ||||
-rw-r--r-- | patches/series | 1 |
2 files changed, 0 insertions, 129 deletions
diff --git a/patches/0003-ia64-salinfo-Replace-racy-task-affinity-logic.patch b/patches/0003-ia64-salinfo-Replace-racy-task-affinity-logic.patch deleted file mode 100644 index 0af2d70b7fd60..0000000000000 --- a/patches/0003-ia64-salinfo-Replace-racy-task-affinity-logic.patch +++ /dev/null @@ -1,128 +0,0 @@ -From: Thomas Gleixner <tglx@linutronix.de> -Date: Wed, 12 Apr 2017 22:07:29 +0200 -Subject: [PATCH 03/13] ia64/salinfo: Replace racy task affinity logic - -Some of the file operations in /proc/sal require to run code on the -requested cpu. This is achieved by temporarily setting the affinity of the -calling user space thread to the requested CPU and reset it to the original -affinity afterwards. - -That's racy vs. CPU hotplug and concurrent affinity settings for that -thread resulting in code executing on the wrong CPU and overwriting the -new affinity setting. - -Replace it by using work_on_cpu_safe() which guarantees to run the code on -the requested CPU or to fail in case the CPU is offline. - -Signed-off-by: Thomas Gleixner <tglx@linutronix.de> -Cc: Fenghua Yu <fenghua.yu@intel.com> -Cc: Tony Luck <tony.luck@intel.com> -Cc: linux-ia64@vger.kernel.org -Cc: Herbert Xu <herbert@gondor.apana.org.au> -Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net> -Cc: Peter Zijlstra <peterz@infradead.org> -Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> -Cc: Sebastian Siewior <bigeasy@linutronix.de> -Cc: Lai Jiangshan <jiangshanlai@gmail.com> -Cc: Viresh Kumar <viresh.kumar@linaro.org> -Cc: Michael Ellerman <mpe@ellerman.id.au> -Cc: Tejun Heo <tj@kernel.org> -Cc: "David S. Miller" <davem@davemloft.net> -Cc: Len Brown <lenb@kernel.org> -Link: http://lkml.kernel.org/r/20170412201042.341863457@linutronix.de -Signed-off-by: Thomas Gleixner <tglx@linutronix.de> ---- - arch/ia64/kernel/salinfo.c | 31 ++++++++++++------------------- - 1 file changed, 12 insertions(+), 19 deletions(-) - ---- a/arch/ia64/kernel/salinfo.c -+++ b/arch/ia64/kernel/salinfo.c -@@ -179,14 +179,14 @@ struct salinfo_platform_oemdata_parms { - const u8 *efi_guid; - u8 **oemdata; - u64 *oemdata_size; -- int ret; - }; - --static void -+static long - salinfo_platform_oemdata_cpu(void *context) - { - struct salinfo_platform_oemdata_parms *parms = context; -- parms->ret = salinfo_platform_oemdata(parms->efi_guid, parms->oemdata, parms->oemdata_size); -+ -+ return salinfo_platform_oemdata(parms->efi_guid, parms->oemdata, parms->oemdata_size); - } - - static void -@@ -380,16 +380,7 @@ salinfo_log_release(struct inode *inode, - return 0; - } - --static void --call_on_cpu(int cpu, void (*fn)(void *), void *arg) --{ -- cpumask_t save_cpus_allowed = current->cpus_allowed; -- set_cpus_allowed_ptr(current, cpumask_of(cpu)); -- (*fn)(arg); -- set_cpus_allowed_ptr(current, &save_cpus_allowed); --} -- --static void -+static long - salinfo_log_read_cpu(void *context) - { - struct salinfo_data *data = context; -@@ -399,6 +390,7 @@ salinfo_log_read_cpu(void *context) - /* Clear corrected errors as they are read from SAL */ - if (rh->severity == sal_log_severity_corrected) - ia64_sal_clear_state_info(data->type); -+ return 0; - } - - static void -@@ -430,7 +422,7 @@ salinfo_log_new_read(int cpu, struct sal - spin_unlock_irqrestore(&data_saved_lock, flags); - - if (!data->saved_num) -- call_on_cpu(cpu, salinfo_log_read_cpu, data); -+ work_on_cpu_safe(cpu, salinfo_log_read_cpu, data); - if (!data->log_size) { - data->state = STATE_NO_DATA; - cpumask_clear_cpu(cpu, &data->cpu_event); -@@ -459,11 +451,13 @@ salinfo_log_read(struct file *file, char - return simple_read_from_buffer(buffer, count, ppos, buf, bufsize); - } - --static void -+static long - salinfo_log_clear_cpu(void *context) - { - struct salinfo_data *data = context; -+ - ia64_sal_clear_state_info(data->type); -+ return 0; - } - - static int -@@ -486,7 +480,7 @@ salinfo_log_clear(struct salinfo_data *d - rh = (sal_log_record_header_t *)(data->log_buffer); - /* Corrected errors have already been cleared from SAL */ - if (rh->severity != sal_log_severity_corrected) -- call_on_cpu(cpu, salinfo_log_clear_cpu, data); -+ work_on_cpu_safe(cpu, salinfo_log_clear_cpu, data); - /* clearing a record may make a new record visible */ - salinfo_log_new_read(cpu, data); - if (data->state == STATE_LOG_RECORD) { -@@ -531,9 +525,8 @@ salinfo_log_write(struct file *file, con - .oemdata = &data->oemdata, - .oemdata_size = &data->oemdata_size - }; -- call_on_cpu(cpu, salinfo_platform_oemdata_cpu, &parms); -- if (parms.ret) -- count = parms.ret; -+ count = work_on_cpu_safe(cpu, salinfo_platform_oemdata_cpu, -+ &parms); - } else - data->oemdata_size = 0; - } else diff --git a/patches/series b/patches/series index a336fd132a8f5..e2c4235bdd45f 100644 --- a/patches/series +++ b/patches/series @@ -52,7 +52,6 @@ smp-hotplug-Move-unparking-of-percpu-threads-to-the-.patch ### # get_online_cpus() rework. # cpus_allowed queue from sched/core -0003-ia64-salinfo-Replace-racy-task-affinity-logic.patch 0004-ia64-sn-hwperf-Replace-racy-task-affinity-logic.patch 0005-powerpc-smp-Replace-open-coded-task-affinity-logic.patch 0006-sparc-sysfs-Replace-racy-task-affinity-logic.patch |