Exporting access_remote_vm just seems like a horrible idea. If a driver needs to access a different VM from a completion path in some thread or workqueue (which I assume this does, if not please explain the use case), it should use kthread_use_mm to associate the mm struct and then just use all the normal uaccess helpers.