Re: [PATCH] x86-64: add unwind annotations to early_idt_handler

From: Ingo Molnar
Date: Thu Mar 12 2009 - 06:54:12 EST



* Jan Beulich <jbeulich@xxxxxxxxxx> wrote:

> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
> Cc: Andi Kleen <andi@xxxxxxxxxxxxxx>
>
> ---
> arch/x86/kernel/head_64.S | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> --- linux-2.6.29-rc7/arch/x86/kernel/head_64.S 2009-03-11 17:52:10.000000000 +0100
> +++ 2.6.29-rc7-x86_64-unwind-early_idt_handler/arch/x86/kernel/head_64.S 2009-02-18 13:38:09.000000000 +0100
> @@ -280,6 +280,8 @@ early_idt_handlers:
>
> ENTRY(early_idt_handler)
> #ifdef CONFIG_EARLY_PRINTK
> +#include <asm/calling.h>
> +#include <asm/dwarf2.h>
> cmpl $2,early_recursion_flag(%rip)
> jz 1f
> incl early_recursion_flag(%rip)
> @@ -295,6 +297,16 @@ ENTRY(early_idt_handler)
> testl $0x27d00,%eax
> je 0f
> popq %r8 # get error code
> +
> + CFI_STARTPROC simple
> + CFI_SIGNAL_FRAME
> + CFI_DEF_CFA rsp, SS+8-RIP
> +# CFI_REL_OFFSET ss, SS-RIP
> + CFI_REL_OFFSET rsp, RSP-RIP
> +# CFI_REL_OFFSET rflags, EFLAGS-RIP
> +# CFI_REL_OFFSET cs, CS-RIP
> + CFI_REL_OFFSET rip, RIP-RIP
> +

This too is too ugly - there should be a structured macro that
expresses this - instead of open-coded CFI details. This is a
regular x86 entry layout with a lot of commonalities with other
entry points.

Ingo
--
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/