Re: [PATCH v3 04/29] x86: assembly, use ENDPROC for functions

From: Jiri Slaby
Date: Fri May 19 2017 - 05:17:45 EST


On 05/17/2017, 03:23 PM, Jiri Slaby wrote:
>> So the initial CFI state is different between the two types of
>> "functions". And there are a lot of other differences. C-type
>> functions have to follow frame pointer conventions, for example. So
>> your FUNC_START macro (and objtool) would have to somehow figure out a
>> way to make a distinction between the two. So it would probably work
>> out better if we kept the distinction between C-type functions and other
>> code.
>
> Ok, that makes a lot of sense.

A quick question:
Do you consider these to be C-type functions?

ENTRY(function_hook)
ret
END(function_hook)

or this?

ENTRY(native_load_gs_index)
pushfq
DISABLE_INTERRUPTS(CLBR_ANY & ~CLBR_RDI)
SWAPGS
movl %edi, %gs
SWAPGS
popfq
ret
END(native_load_gs_index)

Both are called from C, but they do not setup frame pointer etc.

thanks,
--
js
suse labs