[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <efa3b732-f102-9c4a-16e8-ffdb436cb9b1@redhat.com>
Date: Fri, 3 Apr 2020 13:49:24 +0100
From: Julien Thierry <jthierry@...hat.com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: Josh Poimboeuf <jpoimboe@...hat.com>,
Alexandre Chartre <alexandre.chartre@...cle.com>,
x86@...nel.org, linux-kernel@...r.kernel.org, tglx@...utronix.de
Subject: Re: [PATCH 3/7] objtool: Add support for intra-function calls
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
Powered by blists - more mailing lists