Subject: Re: mmotm 2020-05-13-20-30 uploaded (objtool warnings)

From: Peter Zijlstra <[email-masked]>
Date: Fri, 29 May 2020 16:53:25 +0200

On Fri, May 29, 2020 at 04:35:56PM +0200, Peter Zijlstra wrote:
> On Fri, May 29, 2020 at 03:57:51PM +0200, Christoph Hellwig wrote:
> > On Thu, May 28, 2020 at 07:20:05PM +0200, Peter Zijlstra wrote:
> > > > on x86_64:
> > > > 
> > > > arch/x86/lib/csum-wrappers_64.o: warning: objtool: csum_and_copy_from_user()+0x2a4: call to memset() with UACCESS enabled
> > > > arch/x86/lib/csum-wrappers_64.o: warning: objtool: csum_and_copy_to_user()+0x243: return with UACCESS enabled
> > > 
> > > Urgh, that's horrible code. That's got plain stac()/clac() calls on
> > > instead of the regular uaccess APIs.
> > 
> > Does it?  If this is from the code in linux-next, then the code does a
> > user_access_begin/end in csum_and_copy_{from,to}_user, then uses
> > unsafe_{get,put}_user inside those function itself.  But then they call
> > csum_partial_copy_generic with the __user casted away, but without any
> > comment on why this is safe.
> 
> Bah, clearly I was looking at the wrong tree. You're right, Al cleaned
> it all up.
> 
> Let me try and figure out why objtool is unhappy with it.

*groan*, this is one of those CONFIG_PROFILE_ALL_BRANCHES builds. If I
disable that it goes away.

Still trying to untangle the mess it generated, but on first go it
looks like objtool is right, but I'm not sure what went wrong.