On Fri, Jul 6, 2018 at 12:31 PM, Linus Torvalds <torva...@linux-foundation.org> wrote: > On Fri, Jul 6, 2018 at 12:23 PM Mathieu Desnoyers > <mathieu.desnoy...@efficios.com> wrote: >> >> For -rc, I would favor the following simpler approach. Or I could even >> just use get_user() instead. Thoughts ? > > Please just use "get_user()". > > In fact, we should be thinking seriosly about just removing > __get_user() entirely. It's wrong. It optimizes the wrong thing > entirely. It _used_ to be that the range check was noticeable, and it > really isn't any more. These days the expensive parts are the SMAP > costs, and both get_user() and __get_user() have those, except > get_user() is safer and doesn't waste I$ on inlining the code to > disable and re-enable SMAP.
If Al and Christoph ever manage to get rid of set_fs(), I bet we can rewrite access_ok() and get_user() so that gcc can fold redundant checks together and generate optimal code for get_user() of consecutive struct fields all by itself. Or maybe I'm giving gcc more credit than it deserves.