On Thu, Mar 05, 2020 at 04:48:12PM +0100, Vlastimil Babka wrote: > On 3/2/20 8:36 PM, Minchan Kim wrote: > > In upcoming patches, do_madvise will be called from external process > > context so we shouldn't asssume "current" is always hinted process's > > task_struct. > > > > Furthermore, we couldn't access mm_struct via task->mm > > once it's verified by access_mm which will be introduced in next > > patch[1]. > > I would suggest to replace with: > > Furthermore, we must not access mm_struct via task->mm, but obtain it via > access_mm() once (in the following patch) and only use that pointer [1], so pass > it to do_madvise() as well. Note the vma->vm_mm pointers are safe, so we can use > them further down the call stack. > > > And let's pass *current* and current->mm as arguments of > > do_madvise so it shouldn't change existing behavior but prepare > > next patch to make review easy. > > > > Note: io_madvise pass NULL as target_task argument of do_madvise > > because it couldn't know who is target. > > can't Andrew already picked up your suggestion except "can't" part. I don't think it's enough to resend fix it so I will leave it as-is.