On Mon, Feb 14, 2022 at 6:01 PM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > > On Mon, Feb 14, 2022 at 05:34:41PM +0100, Arnd Bergmann wrote: > > From: Arnd Bergmann <arnd@xxxxxxxx> > > > > The get_user()/put_user() functions are meant to check for > > access_ok(), while the __get_user()/__put_user() functions > > don't. > > > > This broke in 4.19 for nds32, when it gained an extraneous > > check in __get_user(), but lost the check it needs in > > __put_user(). > > Can we follow the lead of MIPS (which this was originally copied > from I think) and kill the pointless __get/put_user_check wrapper > that just obsfucate the code? I had another look, but I think that would be a bigger change than I want to have in a fix for stable backports, as nds32 also uses the _check versions in __{get,put}_user_error. If we instead clean it up in a separate patch, it should be done for all eight architectures that do the same thing, but at that point, the time seems better spent at coming up with a new set of calling conventions that work with asm-goto. Arnd