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.