On Fri, Mar 08, 2019 at 09:07:03AM -0600, Josh Poimboeuf wrote: > On Thu, Mar 07, 2019 at 09:40:21PM +0100, Peter Zijlstra wrote: > > On Thu, Mar 07, 2019 at 09:23:19PM +0100, Peter Zijlstra wrote: > > > On Thu, Mar 07, 2019 at 07:48:13PM +0100, Peter Zijlstra wrote: > > > > Another thing I need to look at is why objtool only found memset_orig > > > > (from __memset) but not memset_erms, which if I read the code right, is > > > > a possible alternative there. > > > > > > Turns out we only look for sibling calls in the original instruction > > > stream, not in any alternatives; which in general seems like a fair > > > enough assumption. > > > > And while I'm looking at memset_64.S, why are memset_erms and > > memset_orig global functions? At the very least they should be local, > > and ideally not even functions. > > I think the only benefit is that they would show up better on stack > traces, but that could also be solved by just making them local labels > inside memset. Which is what I think they should be.
Boris wanted to use alternative_call_2, just like copy_user_generic(). Which makes more sense to me still.