Home Home > GIT Browse > stable
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiri Slaby <jslaby@suse.cz>2019-07-14 11:33:41 +0200
committerJiri Slaby <jslaby@suse.cz>2019-07-14 11:33:53 +0200
commitbca7ba64fb9f2fc6c979b414bea88e3ab2fe071c (patch)
tree6221258602d8eaff2b3573959c1059c410346ba2
parent5fa94454aa6c7d468978b78605b447b6a0896a95 (diff)
coresight: etb10: Do not call smp_processor_id from preemptible
-rw-r--r--patches.kernel.org/5.2.1-045-coresight-etb10-Do-not-call-smp_processor_id-fr.patch54
-rw-r--r--series.conf1
2 files changed, 55 insertions, 0 deletions
diff --git a/patches.kernel.org/5.2.1-045-coresight-etb10-Do-not-call-smp_processor_id-fr.patch b/patches.kernel.org/5.2.1-045-coresight-etb10-Do-not-call-smp_processor_id-fr.patch
new file mode 100644
index 0000000000..a11f85447e
--- /dev/null
+++ b/patches.kernel.org/5.2.1-045-coresight-etb10-Do-not-call-smp_processor_id-fr.patch
@@ -0,0 +1,54 @@
+From: Suzuki K Poulose <suzuki.poulose@arm.com>
+Date: Thu, 20 Jun 2019 16:12:36 -0600
+Subject: [PATCH] coresight: etb10: Do not call smp_processor_id from
+ preemptible
+References: bnc#1012628
+Patch-mainline: 5.2.1
+Git-commit: 730766bae3280a25d40ea76a53dc6342e84e6513
+
+commit 730766bae3280a25d40ea76a53dc6342e84e6513 upstream.
+
+During a perf session we try to allocate buffers on the "node" associated
+with the CPU the event is bound to. If it is not bound to a CPU, we
+use the current CPU node, using smp_processor_id(). However this is unsafe
+in a pre-emptible context and could generate the splats as below :
+
+ BUG: using smp_processor_id() in preemptible [00000000] code: perf/2544
+
+Use NUMA_NO_NODE hint instead of using the current node for events
+not bound to CPUs.
+
+Fixes: 2997aa4063d97fdb39 ("coresight: etb10: implementing AUX API")
+Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
+Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
+Cc: stable <stable@vger.kernel.org> # 4.6+
+Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
+Link: https://lore.kernel.org/r/20190620221237.3536-5-mathieu.poirier@linaro.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Jiri Slaby <jslaby@suse.cz>
+---
+ drivers/hwtracing/coresight/coresight-etb10.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/hwtracing/coresight/coresight-etb10.c b/drivers/hwtracing/coresight/coresight-etb10.c
+index 4ee4c80a4354..543cc3d36e1d 100644
+--- a/drivers/hwtracing/coresight/coresight-etb10.c
++++ b/drivers/hwtracing/coresight/coresight-etb10.c
+@@ -373,12 +373,10 @@ static void *etb_alloc_buffer(struct coresight_device *csdev,
+ struct perf_event *event, void **pages,
+ int nr_pages, bool overwrite)
+ {
+- int node, cpu = event->cpu;
++ int node;
+ struct cs_buffers *buf;
+
+- if (cpu == -1)
+- cpu = smp_processor_id();
+- node = cpu_to_node(cpu);
++ node = (event->cpu == -1) ? NUMA_NO_NODE : cpu_to_node(event->cpu);
+
+ buf = kzalloc_node(sizeof(struct cs_buffers), GFP_KERNEL, node);
+ if (!buf)
+--
+2.22.0
+
diff --git a/series.conf b/series.conf
index 7ab4f9c801..69e31320ae 100644
--- a/series.conf
+++ b/series.conf
@@ -71,6 +71,7 @@
patches.kernel.org/5.2.1-042-binder-return-errors-from-buffer-copy-functions.patch
patches.kernel.org/5.2.1-043-iio-adc-stm32-adc-add-missing-vdda-supply.patch
patches.kernel.org/5.2.1-044-coresight-Potential-uninitialized-variable-in-p.patch
+ patches.kernel.org/5.2.1-045-coresight-etb10-Do-not-call-smp_processor_id-fr.patch
########################################################
# Build fixes that apply to the vanilla kernel too.