All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Philipp Rudo <prudo@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Sasha Levin <sashal@kernel.org>,
	linux-s390@vger.kernel.org
Subject: [PATCH AUTOSEL 5.4 42/57] s390/ftrace: fix potential crashes when switching tracers
Date: Thu, 30 Apr 2020 09:52:03 -0400	[thread overview]
Message-ID: <20200430135218.20372-42-sashal@kernel.org> (raw)
In-Reply-To: <20200430135218.20372-1-sashal@kernel.org>

From: Philipp Rudo <prudo@linux.ibm.com>

[ Upstream commit 8ebf6da9db1b2a20bb86cc1bee2552e894d03308 ]

Switching tracers include instruction patching. To prevent that a
instruction is patched while it's read the instruction patching is done
in stop_machine 'context'. This also means that any function called
during stop_machine must not be traced. Thus add 'notrace' to all
functions called within stop_machine.

Fixes: 1ec2772e0c3c ("s390/diag: add a statistic for diagnose calls")
Fixes: 38f2c691a4b3 ("s390: improve wait logic of stop_machine")
Fixes: 4ecf0a43e729 ("processor: get rid of cpu_relax_yield")
Signed-off-by: Philipp Rudo <prudo@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/s390/kernel/diag.c  | 2 +-
 arch/s390/kernel/smp.c   | 4 ++--
 arch/s390/kernel/trace.c | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/s390/kernel/diag.c b/arch/s390/kernel/diag.c
index 61f2b0412345a..ccba63aaeb470 100644
--- a/arch/s390/kernel/diag.c
+++ b/arch/s390/kernel/diag.c
@@ -133,7 +133,7 @@ void diag_stat_inc(enum diag_stat_enum nr)
 }
 EXPORT_SYMBOL(diag_stat_inc);
 
-void diag_stat_inc_norecursion(enum diag_stat_enum nr)
+void notrace diag_stat_inc_norecursion(enum diag_stat_enum nr)
 {
 	this_cpu_inc(diag_stat.counter[nr]);
 	trace_s390_diagnose_norecursion(diag_map[nr].code);
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index f468a10e52062..66bf050d785cf 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -403,7 +403,7 @@ int smp_find_processor_id(u16 address)
 	return -1;
 }
 
-bool arch_vcpu_is_preempted(int cpu)
+bool notrace arch_vcpu_is_preempted(int cpu)
 {
 	if (test_cpu_flag_of(CIF_ENABLED_WAIT, cpu))
 		return false;
@@ -413,7 +413,7 @@ bool arch_vcpu_is_preempted(int cpu)
 }
 EXPORT_SYMBOL(arch_vcpu_is_preempted);
 
-void smp_yield_cpu(int cpu)
+void notrace smp_yield_cpu(int cpu)
 {
 	if (MACHINE_HAS_DIAG9C) {
 		diag_stat_inc_norecursion(DIAG_STAT_X09C);
diff --git a/arch/s390/kernel/trace.c b/arch/s390/kernel/trace.c
index 490b52e850145..11a669f3cc93c 100644
--- a/arch/s390/kernel/trace.c
+++ b/arch/s390/kernel/trace.c
@@ -14,7 +14,7 @@ EXPORT_TRACEPOINT_SYMBOL(s390_diagnose);
 
 static DEFINE_PER_CPU(unsigned int, diagnose_trace_depth);
 
-void trace_s390_diagnose_norecursion(int diag_nr)
+void notrace trace_s390_diagnose_norecursion(int diag_nr)
 {
 	unsigned long flags;
 	unsigned int *depth;
-- 
2.20.1

  parent reply	other threads:[~2020-04-30 13:52 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-30 13:51 [PATCH AUTOSEL 5.4 01/57] drm/bridge: analogix_dp: Split bind() into probe() and real bind() Sasha Levin
2020-04-30 13:51 ` Sasha Levin
2020-04-30 13:51 ` Sasha Levin
2020-04-30 13:51 ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 02/57] iio:ad7797: Use correct attribute_group Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 03/57] ASoC: topology: Check return value of soc_tplg_create_tlv Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 04/57] ASoC: topology: Check return value of soc_tplg_*_create Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 05/57] ASoC: topology: Check soc_tplg_add_route return value Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 06/57] ASoC: topology: Check return value of pcm_new_ver Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 07/57] ASoC: topology: Check return value of soc_tplg_dai_config Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 08/57] nfsd: memory corruption in nfsd4_lock() Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 09/57] selftests/ipc: Fix test failure seen after initial test run Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 10/57] drivers: soc: xilinx: fix firmware driver Kconfig dependency Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 11/57] ASoC: sgtl5000: Fix VAG power-on handling Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 12/57] ASoC: q6dsp6: q6afe-dai: add missing channels to MI2S DAIs Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 13/57] ASoC: topology: Fix endianness issue Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 14/57] usb: dwc3: gadget: Properly set maxpacket limit Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 15/57] usb: dwc3: gadget: Do link recovery for SS and SSP Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 16/57] ASoC: rsnd: Fix parent SSI start/stop in multi-SSI mode Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 17/57] ASoC: rsnd: Fix HDMI channel mapping for " Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 18/57] ASoC: codecs: hdac_hdmi: Fix incorrect use of list_for_each_entry Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 19/57] ARM: dts: bcm283x: Disable dsi0 node Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 20/57] remoteproc: qcom_q6v5_mss: fix a bug in q6v5_probe() Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 21/57] usb: gadget: udc: atmel: Fix vbus disconnect handling Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 22/57] svcrdma: Fix trace point use-after-free race Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 23/57] ASoC: stm32: sai: fix sai probe Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 24/57] ASoC: SOF: Intel: add min/max channels for SSP on Baytrail/Broadwell Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 25/57] drm/amdgpu: Correctly initialize thermal controller for GPUs with Powerplay table v0 (e.g Hawaii) Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 26/57] wimax/i2400m: Fix potential urb refcnt leak Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 27/57] net: stmmac: fix enabling socfpga's ptp_ref_clock Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 28/57] net: stmmac: Fix sub-second increment Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 29/57] netfilter: nat: fix error handling upon registering inet hook Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 30/57] counter: 104-quad-8: Add lock guards - generic interface Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 31/57] ASoC: meson: axg-card: fix codec-to-codec link setup Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 32/57] ASoC: rsnd: Don't treat master SSI in multi SSI setup as parent Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 33/57] ASoC: rsnd: Fix "status check failed" spam for multi-SSI Sasha Levin
2020-04-30 13:51   ` Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 34/57] net/mlx5: Fix failing fw tracer allocation on s390 Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 35/57] net/mlx5e: Don't trigger IRQ multiple times on XSK wakeup to avoid WQ overruns Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 36/57] net/mlx5e: Get the latest values from counters in switchdev mode Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 37/57] cpumap: Avoid warning when CONFIG_DEBUG_PER_CPU_MAPS is enabled Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 38/57] bpf: Forbid XADD on spilled pointers for unprivileged users Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 39/57] ASoC: wm8960: Fix wrong clock after suspend & resume Sasha Levin
2020-04-30 13:52   ` Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 40/57] cifs: protect updating server->dstaddr with a spinlock Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 41/57] blk-iocost: Fix error on iocost_ioc_vrate_adj Sasha Levin
2020-04-30 13:52 ` Sasha Levin [this message]
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 43/57] scripts/config: allow colons in option strings for sed Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 44/57] sched/core: Fix reset-on-fork from RT with uclamp Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 45/57] perf/core: fix parent pid/tid in task exit events Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 46/57] cifs: do not share tcons with DFS Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 47/57] tracing: Fix memory leaks in trace_events_hist.c Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 48/57] um: ensure `make ARCH=um mrproper` removes arch/$(SUBARCH)/include/generated/ Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 49/57] lib/mpi: Fix building for powerpc with clang Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 50/57] mac80211: sta_info: Add lockdep condition for RCU list usage Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 51/57] afs: Fix to actually set AFS_SERVER_FL_HAVE_EPOCH Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 52/57] afs: Make record checking use TASK_UNINTERRUPTIBLE when appropriate Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 53/57] net: bcmgenet: suppress warnings on failed Rx SKB allocations Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 54/57] net: systemport: " Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 55/57] bpf, x86_32: Fix incorrect encoding in BPF_LDX zero-extension Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 56/57] bpf, x86_32: Fix clobbering of dst for BPF_JSET Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 57/57] bpf, x86_32: Fix logic error in BPF_LDX zero-extension Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200430135218.20372-42-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=gor@linux.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=prudo@linux.ibm.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.