On Tue, May 24, 2022 at 09:51:56AM -0700, Linus Torvalds wrote: > I can't find anything wrong with this, but who knows what > patch-blindness I have from looking at a few different versions of it. > Maybe my eyes just skim over it now. Same here - I can't look at that code anymore. I'll try to gain some distance and look at it again later, and do some more extensive testing too. > I do note that the clearing of %rax here: > > > +.Lerms_exit: > > + xorl %eax,%eax > > + RET > > seems to be unnecessary, since %rax is never modified in the path > leading to this. But maybe just as well just for consistency with the > cases where it *is* used as a temporary. Yeah. > And I still suspect that "copy_to_user()" is *much* more interesting > than "clear_user()", but I guess we can't inline it anyway due to all > the other overhead (ie access_ok() and stac/clac). > > And for a plain "call memcpy/memset", we'd need compiler help to do > this (at a minimum, we'd have to have the compiler use the 'rep > movs/stos' register logic, and then we could patch things in place > afterwards, with objtool creating the alternatives section or > something). Yeah, I have this on my todo to research them properly. Will report when I have something. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette