Messages in this thread | | | From | Denys Vlasenko <> | Date | Sun, 11 Jan 2015 04:33:58 +0100 | Subject | Re: [PATCH 3/4] x86: open-code register save/restore in trace_hardirqs thunks |
| |
On Sat, Jan 10, 2015 at 11:41 PM, Borislav Petkov <bp@alien8.de> wrote: > On Sat, Jan 10, 2015 at 11:35:58PM +0100, Denys Vlasenko wrote: >> I don't know either... it seems to be used after push_cfi >> *sometimes*, not always: >> >> .macro op_safe_regs op >> ENTRY(\op\()_safe_regs) >> CFI_STARTPROC >> pushl_cfi %ebx >> pushl_cfi %ebp >> pushl_cfi %esi >> pushl_cfi %edi >> >> but >> >> ENTRY(csum_partial) >> CFI_STARTPROC >> pushl_cfi %esi >> CFI_REL_OFFSET esi, 0 >> pushl_cfi %ebx >> CFI_REL_OFFSET ebx, 0 >> >> We need an expert to enlighten us. > > I think Andy had it: > > https://lkml.kernel.org/r/CALCETrUuJ8T%2BLp23uYezHvxAtF-L_20dOaD4aDxciE7xZqDK3w@mail.gmail.com > > So we better hide that crap in the macro at least, like the rest of the > CFI gunk.
I understand Andy's post. My question is, what about places like this?
> .macro op_safe_regs op > ENTRY(\op\()_safe_regs) > CFI_STARTPROC > pushl_cfi %ebx > pushl_cfi %ebp > pushl_cfi %esi > pushl_cfi %edi
Do we need to convert it to use macros which also do "CFI_REL_OFFSET reg, 0" thingy, or not? In either case: why?
| |