On Tue, Apr 14, 2020 at 09:00:13AM +0200, Christoph Hellwig wrote: > On Mon, Apr 13, 2020 at 08:04:10PM -0400, Yan Zhao wrote: > > > I can't think of another way for a kernel thread to have a mm indeed. > > for example, before calling to vfio_dma_rw(), a kernel thread has already > > called use_mm(), then its current->mm is not null, and it has flag > > PF_KTHREAD. > > in this case, we just want to allow the copy_to_user() directly if > > current->mm == mm, rather than call another use_mm() again. > > > > do you think it makes sense? > > I mean no other way than using use_mm. That being said nesting > potentional use_mm callers sounds like a rather bad idea, and we > should avoid that. yes, agree. I was explaining why we just use "current->mm == NULL" (not "current->flag & PF_KTHREAD") as a criteria to call use_mm() in vfio_dma_rw(), which you might ask us when you take that part into your series. :)