Re: Resend: [PATCH] x86-64: use symbolics instead of raw numbers inentry_64.S

From: Alexander van Heukelum
Date: Thu Sep 02 2010 - 18:53:15 EST


On Thu, 02 Sep 2010 13:55 +0100, "Jan Beulich" <JBeulich@xxxxxxxxxx> wrote:
> ... making the code a little less fragile.
>
> Also use pushq_cfi instead of raw CFI annotations in two more places,
> and add two missing annotations after stack pointer adjustments which
> got modified here anyway.
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

Good cleanup.

Generated binary is identical...

Acked-by: Alexander van Heukelum <heukelum@xxxxxxxxxxx>

> ---
> arch/x86/kernel/entry_64.S | 32 ++++++++++++++++----------------
> 1 file changed, 16 insertions(+), 16 deletions(-)
>
> --- linux-2.6.36-rc3/arch/x86/kernel/entry_64.S
> +++ 2.6.36-rc3-x86_64-unwind-annotations/arch/x86/kernel/entry_64.S
> @@ -796,8 +796,8 @@ END(interrupt)
>
> /* 0(%rsp): ~(interrupt number) */
> .macro interrupt func
> - subq $10*8, %rsp
> - CFI_ADJUST_CFA_OFFSET 10*8
> + subq $ORIG_RAX-ARGOFFSET+8, %rsp
> + CFI_ADJUST_CFA_OFFSET ORIG_RAX-ARGOFFSET+8
> call save_args
> PARTIAL_FRAME 0
> call \func
> @@ -1036,8 +1036,8 @@ ENTRY(\sym)
> INTR_FRAME
> PARAVIRT_ADJUST_EXCEPTION_FRAME
> pushq_cfi $-1 /* ORIG_RAX: no syscall to restart */
> - subq $15*8,%rsp
> - CFI_ADJUST_CFA_OFFSET 15*8
> + subq $ORIG_RAX-R15, %rsp
> + CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
> call error_entry
> DEFAULT_FRAME 0
> movq %rsp,%rdi /* pt_regs pointer */
> @@ -1052,9 +1052,9 @@ END(\sym)
> ENTRY(\sym)
> INTR_FRAME
> PARAVIRT_ADJUST_EXCEPTION_FRAME
> - pushq $-1 /* ORIG_RAX: no syscall to restart */
> - CFI_ADJUST_CFA_OFFSET 8
> - subq $15*8, %rsp
> + pushq_cfi $-1 /* ORIG_RAX: no syscall to restart */
> + subq $ORIG_RAX-R15, %rsp
> + CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
> call save_paranoid
> TRACE_IRQS_OFF
> movq %rsp,%rdi /* pt_regs pointer */
> @@ -1070,9 +1070,9 @@ END(\sym)
> ENTRY(\sym)
> INTR_FRAME
> PARAVIRT_ADJUST_EXCEPTION_FRAME
> - pushq $-1 /* ORIG_RAX: no syscall to restart */
> - CFI_ADJUST_CFA_OFFSET 8
> - subq $15*8, %rsp
> + pushq_cfi $-1 /* ORIG_RAX: no syscall to restart */
> + subq $ORIG_RAX-R15, %rsp
> + CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
> call save_paranoid
> TRACE_IRQS_OFF
> movq %rsp,%rdi /* pt_regs pointer */
> @@ -1089,8 +1089,8 @@ END(\sym)
> ENTRY(\sym)
> XCPT_FRAME
> PARAVIRT_ADJUST_EXCEPTION_FRAME
> - subq $15*8,%rsp
> - CFI_ADJUST_CFA_OFFSET 15*8
> + subq $ORIG_RAX-R15, %rsp
> + CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
> call error_entry
> DEFAULT_FRAME 0
> movq %rsp,%rdi /* pt_regs pointer */
> @@ -1107,8 +1107,8 @@ END(\sym)
> ENTRY(\sym)
> XCPT_FRAME
> PARAVIRT_ADJUST_EXCEPTION_FRAME
> - subq $15*8,%rsp
> - CFI_ADJUST_CFA_OFFSET 15*8
> + subq $ORIG_RAX-R15, %rsp
> + CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
> call save_paranoid
> DEFAULT_FRAME 0
> TRACE_IRQS_OFF
> @@ -1498,8 +1498,8 @@ ENTRY(nmi)
> INTR_FRAME
> PARAVIRT_ADJUST_EXCEPTION_FRAME
> pushq_cfi $-1
> - subq $15*8, %rsp
> - CFI_ADJUST_CFA_OFFSET 15*8
> + subq $ORIG_RAX-R15, %rsp
> + CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
> call save_paranoid
> DEFAULT_FRAME 0
> /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel"
> in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/