All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jan Beulich" <JBeulich@suse.com>
To: "Mark Wielaard" <mjw@redhat.com>
Cc: "Frederic Weisbecker (commit_signer:4/25=16%)"
	<fweisbec@gmail.com>,
	"maintainer:X86 ARCHITECTURE..." <x86@kernel.org>,
	"Thomas Gleixner (maintainer:X86 ARCHITECTURE...)" 
	<tglx@linutronix.de>,
	"Andi Kleen (commit_signer:5/25=20%)" <ak@linux.intel.com>,
	"commit_signer:11/25=44%) Ingo Molnar (maintainer:X86
	ARCHITECTURE..."  <mingo@redhat.com>,
	<linux-kernel@vger.kernel.org>,
	"commit_signer:4/25=16%) H. Peter Anvin (maintainer:X86
	ARCHITECTURE..."  <hpa@zytor.com>
Subject: Re: [PATCH] x86-64: Fix CFI data for common_interrupt
Date: Tue, 21 Feb 2012 14:26:05 +0000	[thread overview]
Message-ID: <4F43B78D020000780007435B@nat28.tlf.novell.com> (raw)
In-Reply-To: <1329833177-13030-1-git-send-email-mjw@redhat.com>

>>> On 21.02.12 at 15:06, Mark Wielaard <mjw@redhat.com> wrote:
> Commit eab9e6 "x86-64: Fix CFI data for interrupt frames" introduced
> a DW_CFA_def_cfa_expression in the SAVE_ARGS_IRQ macro. To later define
> the CFA using a simple register+offset rule both register and offset
> need to be supplied. Just using CFI_DEF_CFA_REGISTER leaves the offset
> undefined. So use CFI_DEF_CFA with reg+off explicitly at the end of
> common_interrupt.

NAK, unless you can prove a path via which the offset will remain
unset until hitting a CFI_DEF_CFA_REGISTER. And if you indeed
found such a path, the entry point of the path is where the problem
ought to be fixed.

Are you perhaps thinking that .cfi_def_cfa_register invalidates
the offset in any way? That, to my knowledge, isn't the case, it
just replaces the CFA register with the one specified, leaving the
offset unchanged.

Jan

> Signed-off-by: Mark Wielaard <mjw@redhat.com>
> ---
>  arch/x86/kernel/entry_64.S |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
> index 3fe8239..e00ef55 100644
> --- a/arch/x86/kernel/entry_64.S
> +++ b/arch/x86/kernel/entry_64.S
> @@ -813,7 +813,7 @@ ret_from_intr:
>  
>  	/* Restore saved previous stack */
>  	popq %rsi
> -	CFI_DEF_CFA_REGISTER	rsi
> +	CFI_DEF_CFA rsi,0	/* needed after def_cfa_expression */
>  	leaq ARGOFFSET-RBP(%rsi), %rsp
>  	CFI_DEF_CFA_REGISTER	rsp
>  	CFI_ADJUST_CFA_OFFSET	RBP-ARGOFFSET
> -- 
> 1.7.7.6




  reply	other threads:[~2012-02-21 14:26 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-21 14:06 [PATCH] x86-64: Fix CFI data for common_interrupt Mark Wielaard
2012-02-21 14:26 ` Jan Beulich [this message]
2012-02-21 14:43   ` Mark Wielaard
2012-02-21 15:26     ` Jan Beulich
2012-02-21 22:08       ` Mark Wielaard
2012-02-22  8:05         ` Jan Beulich
2012-02-24  9:49         ` Jan Beulich
2012-02-24 10:32           ` Mark J. Wielaard
2012-02-27 12:08             ` [tip:x86/debug] x86-64: Fix CFI data for common_interrupt() tip-bot for Mark Wielaard

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=4F43B78D020000780007435B@nat28.tlf.novell.com \
    --to=jbeulich@suse.com \
    --cc=ak@linux.intel.com \
    --cc=fweisbec@gmail.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=mjw@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@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.