On Wed, May 06, 2020 at 10:51:51AM -0700, Linus Torvalds wrote: > My private tree no longer has those __get/put_user_size() things, > because "unsafe_get/put_user()" is the only thing that remains with my > conversion to asm goto. > > And we're actively trying to get rid of the whole __get_user() mess. > Admittedly "__get_user_size()" is just the internal helper that > doesn't have the problem, but it really is an internal helper for a > legacy operation, and the new op that uses it is that > "unsafe_get_user()". > > Also, because you use __get_user_size(), you then have to duplicate > the error handling logic that we already have in unsafe_get_user(). > > IOW - is there some reason why you didn't just make these use > "unsafe_get/put_user()" directly, and avoid both of those issues? That was the first prototype, and or x86 it works great, just the __user cases in maccess.c are a little ugly. And they point to the real problem - for architectures like sparc and s390 that use an entirely separate address space for the kernel vs userspace I dont think just use unsafe_{get,put}_user will work, as they need different instructions. Btw, where is you magic private tree and what is the plan for it?