Messages in this thread | | | Date | Mon, 24 Nov 2008 10:10:31 +0100 | From | Alexander van Heukelum <> | Subject | Re: [RFC -tip] x86: introduce ENTRY(KPROBE)_X86 assembly helpers to catch unbalanced declaration |
| |
On Sun, Nov 23, 2008 at 10:48:28PM +0300, Cyrill Gorcunov wrote: > [Ingo Molnar - Sun, Nov 23, 2008 at 08:31:34PM +0100] > ... > | > > | > Just got an error in implementation -- we have to support nested > | > ENTRY without problem. Will check. What a surprise :-) > | > | do you mean: > | > | ENTRY(system_call) > | ENTRY(system_call_after_swapgs) > | ... > | END(system_call) > | > | that's more of a bug - system_call_after_swapgs is not a real entry > | point, we just need the label of it. Perhaps something like __ENTRY() > | for that case would be enough. > | > | nor is this one real: > | > | ENTRY(interrupt) > | ENTRY(irq_entries_start) > | ... > | END(irq_entries_start) > | END(interrupt) > | > | do we really need .irq_entries_start? > | > | I think in general we should define a flat hierarchy of entries. > | > | Ingo > | > > Yeah, I meant these cases. I don't think we really need irq_entries_start > (didn't find any mention of them in tree). In case of system_call_after_swapgs > I'm not that sure, but since xen use it as a plain jmp (at least now) it > could be converted to a plain label. Ingo, I'll continue tomorrow evening -- > have some other things to be done :)
The problem is that ENTRY(interrupt) is done in init.rodata, and ENTRY(irq_entries_start) is done in .text. So inside the .S-file, they are nested, but in the .o-file they are separate. Instead of removing ENTRY(irq_entries_start), I think we should just expand to:
.section .init.rodata,"a" .p2align 5 .global interrupt interrupt:
and
size interrupt, .-interrupt
But the only importance I can think of is that this keeps both the "interrupt" array and irq_entries_start visible in debugging information.
Alternatively, we could probably do away with the interrupt array entirely. We _know_ how the irq stubs are structured and irq_entries_start is in principle enough information to reconstruct all information in interrupt.
Anyhow, I too think that supporting nested ENTRY/END in .S files is unnecessary.
Alexander
> - Cyrill -
| |