Received: by 2002:ac0:aa62:0:0:0:0:0 with SMTP id w31-v6csp1954132ima; Thu, 25 Oct 2018 07:31:13 -0700 (PDT) X-Google-Smtp-Source: AJdET5d4OZtydRaQugqDoBKdKsvLzcZDcaZgro8OXNbfX/QFlofdSjZinuw1PcK/4yw0U2nHdohI X-Received: by 2002:a63:64c:: with SMTP id 73mr1668291pgg.373.1540477873714; Thu, 25 Oct 2018 07:31:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1540477873; cv=none; d=google.com; s=arc-20160816; b=HScdrZKnUuRtUn61LahSN7bNbCro46KB3F1iNkaRSZlCL0u0Ys2f5P/sFkD/SpH1TC vEvr4aKBLvRF+9+LWaUqIc+XuKeD1JbSwPPFL022JdZnHrxJgr3QZ9yW/uB6O8Dt8RJR 7/w8N7fLu/QR2kTNq5nT+EG/Og0dEcLCQ5Q3LCE7dhuNsNQp5ZndZE+98CGL6nfvES/6 toI52CKEIH3DvXV5lfAeqK3FTD4H/5gpKqDaiYgByVLLDP2FpRceYQaZQ+QxatZ7nEAM Kgkkiq0j6KiXX8humwVaE9fEmDgL7DFOuiYaEIYgDk2taWo4GUxA4AtXHtzMd9cd3s8m rYgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=JxYQ2f3tzsEDZB/Jhx25z8F/a4uHazymTO9VqHuFuBM=; b=jXjKq4sHi+Z0Tc14ylGxmIcPkwS+VCLhw9zJyx7qMIY5It4eRJXfEtsQXGtz/acoUB 31/QMZDDt2xOnEiwOibUkEXAwwsTsFjigulP3iod7657NIt2CAqeS6DIBcGW134BA64O rn7iZy7MMCsU4Pu9UMJiZT+zpZH7nDL1mftYr1YsiBem6JZjnB4TLLoShqGqQvxb4Sni AfTr8uRD6SCP88YP2eeQdF7ucXoLtONofhspULJpA9UlDW43HAQR/WaX1z98uX5Uehoc RRDCW/Tmn1panK1+5HgrPcQY1iYPV2NMK56jLr5AJtAYWdsExTxo+nLFjj8CZVlSzWgQ 2jvw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="tw/jb0iq"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id gn15si7669860plb.321.2018.10.25.07.30.47; Thu, 25 Oct 2018 07:31:13 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="tw/jb0iq"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730346AbeJYWwF (ORCPT + 99 others); Thu, 25 Oct 2018 18:52:05 -0400 Received: from mail.kernel.org ([198.145.29.99]:33948 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730290AbeJYWwE (ORCPT ); Thu, 25 Oct 2018 18:52:04 -0400 Received: from sasha-vm.mshome.net (unknown [167.98.65.38]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5A46720868; Thu, 25 Oct 2018 14:19:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1540477147; bh=tByDmkvUt5YA1pwmKrgoEmDvSdrFHzU5oxj+vejuYhA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tw/jb0iqMBZMDWFmKEF+cCHs8Vlv+SeG1YfbRoqCT1jt8wNCyAEiGfsbIv8uvcCxV OBC+6K2rP4vtJG0Hhn3JTc2KijW9Vpqpwyy4w4Cga26dbQoc9ixJ/MANi4tdP21KY4 Zn1mceKEaOtnhjOc3scxRqCMtUKch4INKY8veD3E= From: Sasha Levin To: stable@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Jiri Olsa , Martin Schwidefsky , Sasha Levin Subject: [PATCH AUTOSEL 3.18 06/98] s390/ftrace/jprobes: Fix conflict between jprobes and function graph tracing Date: Thu, 25 Oct 2018 10:17:21 -0400 Message-Id: <20181025141853.214051-6-sashal@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181025141853.214051-1-sashal@kernel.org> References: <20181025141853.214051-1-sashal@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jiri Olsa [ Upstream commit e64a5470dcd2900ab8f8f83638c00098b10e6300 ] This fixes the same issue Steven already fixed for x86 in following commit: 237d28db036e ftrace/jprobes/x86: Fix conflict between jprobes and function graph tracing It fixes the crash, that happens when function graph tracing and jprobes are used simultaneously. Please refer to above commit for details. Signed-off-by: Jiri Olsa Signed-off-by: Martin Schwidefsky Acked-by: Steven Rostedt Signed-off-by: Sasha Levin --- arch/s390/kernel/kprobes.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c index 014d4729b134..ee03d8f0ee60 100644 --- a/arch/s390/kernel/kprobes.c +++ b/arch/s390/kernel/kprobes.c @@ -633,6 +633,15 @@ int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs) stack = (unsigned long) regs->gprs[15]; memcpy(kcb->jprobes_stack, (void *) stack, MIN_STACK_SIZE(stack)); + + /* + * jprobes use jprobe_return() which skips the normal return + * path of the function, and this messes up the accounting of the + * function graph tracer to get messed up. + * + * Pause function graph tracing while performing the jprobe function. + */ + pause_graph_tracing(); return 1; } @@ -646,6 +655,9 @@ int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); unsigned long stack; + /* It's OK to start function graph tracing again */ + unpause_graph_tracing(); + stack = (unsigned long) kcb->jprobe_saved_regs.gprs[15]; /* Put the regs back */ -- 2.17.1