On 5/12/21 12:54 AM, Joerg Roedel wrote: > The put_user() and get_user() functions do checks on the address which is > passed to them. They check whether the address is actually a user-space > address and whether its fine to access it. They also call might_fault() > to indicate that they could fault and possibly sleep. > > All of these checks are neither wanted nor required in the #VC exception > handler, which can be invoked from almost any context and also for MMIO > instructions from kernel space on kernel memory. All the #VC handler > wants to know is whether a fault happened when the access was tried. > > This is provided by __put_user()/__get_user(), which just do the access > no matter what. The changelog _helps_, but using a "user" function to handle kernel MMIO for its error handling properties seems like it's begging for a comment. __put_user() also seems to have fun stuff like __chk_user_ptr(). It all seems sketchy to me.