On Mon, Feb 14, 2022 at 6:01 PM Christoph Hellwig hch@infradead.org wrote:
On Mon, Feb 14, 2022 at 05:34:41PM +0100, Arnd Bergmann wrote:
From: Arnd Bergmann arnd@arndb.de
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