From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759392AbcBYFsX (ORCPT ); Thu, 25 Feb 2016 00:48:23 -0500 Received: from torg.zytor.com ([198.137.202.12]:53608 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1759282AbcBYFsT (ORCPT ); Thu, 25 Feb 2016 00:48:19 -0500 Date: Wed, 24 Feb 2016 21:45:54 -0800 From: tip-bot for Josh Poimboeuf Message-ID: Cc: hpa@zytor.com, jpoimboe@redhat.com, torvalds@linux-foundation.org, david.vrabel@citrix.com, mmarek@suse.cz, boris.ostrovsky@oracle.com, linux-kernel@vger.kernel.org, luto@kernel.org, jslaby@suse.cz, peterz@infradead.org, brgerst@gmail.com, bernd@petrovitsch.priv.at, dvlasenk@redhat.com, bp@alien8.de, acme@kernel.org, namhyung@gmail.com, palves@redhat.com, chris.j.arges@canonical.com, akpm@linux-foundation.org, konrad.wilk@oracle.com, mingo@kernel.org, tglx@linutronix.de, luto@amacapital.net Reply-To: hpa@zytor.com, torvalds@linux-foundation.org, jpoimboe@redhat.com, david.vrabel@citrix.com, mmarek@suse.cz, boris.ostrovsky@oracle.com, linux-kernel@vger.kernel.org, luto@kernel.org, jslaby@suse.cz, peterz@infradead.org, brgerst@gmail.com, dvlasenk@redhat.com, bernd@petrovitsch.priv.at, acme@kernel.org, bp@alien8.de, namhyung@gmail.com, palves@redhat.com, chris.j.arges@canonical.com, akpm@linux-foundation.org, konrad.wilk@oracle.com, tglx@linutronix.de, mingo@kernel.org, luto@amacapital.net In-Reply-To: References: To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/debug] x86/asm/xen: Create stack frames in xen-asm.S Git-Commit-ID: 8be0eb7e0d53bc2dbe6e9ad6e96a2d5b89d148a8 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: 8be0eb7e0d53bc2dbe6e9ad6e96a2d5b89d148a8 Gitweb: http://git.kernel.org/tip/8be0eb7e0d53bc2dbe6e9ad6e96a2d5b89d148a8 Author: Josh Poimboeuf AuthorDate: Thu, 21 Jan 2016 16:49:11 -0600 Committer: Ingo Molnar CommitDate: Wed, 24 Feb 2016 08:35:42 +0100 x86/asm/xen: Create stack frames in xen-asm.S xen_irq_enable_direct(), xen_restore_fl_direct(), and check_events() are callable non-leaf functions which don't honor CONFIG_FRAME_POINTER, which can result in bad stack traces. Create stack frames for them when CONFIG_FRAME_POINTER is enabled. Signed-off-by: Josh Poimboeuf Cc: Andrew Morton Cc: Andy Lutomirski Cc: Andy Lutomirski Cc: Arnaldo Carvalho de Melo Cc: Bernd Petrovitsch Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Brian Gerst Cc: Chris J Arges Cc: David Vrabel Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Jiri Slaby Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Michal Marek Cc: Namhyung Kim Cc: Pedro Alves Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: live-patching@vger.kernel.org Link: http://lkml.kernel.org/r/a8340ad3fc72ba9ed34da9b3af9cdd6f1a896e17.1453405861.git.jpoimboe@redhat.com Signed-off-by: Ingo Molnar --- arch/x86/xen/xen-asm.S | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S index 3e45aa0..eff224d 100644 --- a/arch/x86/xen/xen-asm.S +++ b/arch/x86/xen/xen-asm.S @@ -14,6 +14,7 @@ #include #include #include +#include #include "xen-asm.h" @@ -23,6 +24,7 @@ * then enter the hypervisor to get them handled. */ ENTRY(xen_irq_enable_direct) + FRAME_BEGIN /* Unmask events */ movb $0, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask @@ -39,6 +41,7 @@ ENTRY(xen_irq_enable_direct) 2: call check_events 1: ENDPATCH(xen_irq_enable_direct) + FRAME_END ret ENDPROC(xen_irq_enable_direct) RELOC(xen_irq_enable_direct, 2b+1) @@ -82,6 +85,7 @@ ENDPATCH(xen_save_fl_direct) * enters the hypervisor to get them delivered if so. */ ENTRY(xen_restore_fl_direct) + FRAME_BEGIN #ifdef CONFIG_X86_64 testw $X86_EFLAGS_IF, %di #else @@ -100,6 +104,7 @@ ENTRY(xen_restore_fl_direct) 2: call check_events 1: ENDPATCH(xen_restore_fl_direct) + FRAME_END ret ENDPROC(xen_restore_fl_direct) RELOC(xen_restore_fl_direct, 2b+1) @@ -109,7 +114,8 @@ ENDPATCH(xen_restore_fl_direct) * Force an event check by making a hypercall, but preserve regs * before making the call. */ -check_events: +ENTRY(check_events) + FRAME_BEGIN #ifdef CONFIG_X86_32 push %eax push %ecx @@ -139,4 +145,6 @@ check_events: pop %rcx pop %rax #endif + FRAME_END ret +ENDPROC(check_events)