Re: [PATCH 3/7] objtool: Add support for intra-function calls

From: Julien Thierry
Date: Fri Apr 03 2020 - 08:49:31 EST




On 4/3/20 1:41 PM, Peter Zijlstra wrote:
On Fri, Apr 03, 2020 at 09:01:38AM +0100, Julien Thierry wrote:

Last I found is in qcom_link_stack_sanitization() [2], but that's just a
workaround for a very specific hardware. In my local tree I just put the
function as STACK_FRAME_NON_STANDARD. But the code just saves the return
address, has 16 call instructions that just call the instruction after them,
restores the return address and lets the C-function return normally (and it
somehow fixes something for that hardware).

That sounds very much like the RSB flushing we do.


Yes, the piece of code you posted reminded me of this. The difference is that the RSB part uses a loop and counter while the qcom thing has a fixed amount of call instructions (which can make things easier for static analysis, if we'd really want to go down that road).

--
Julien Thierry