|
@@ -54,6 +54,10 @@ static inline void mmdrop(struct mm_struct *mm)
|
|
|
* followed by taking the mmap_sem for writing before modifying the
|
|
* followed by taking the mmap_sem for writing before modifying the
|
|
|
* vmas or anything the coredump pretends not to change from under it.
|
|
* vmas or anything the coredump pretends not to change from under it.
|
|
|
*
|
|
*
|
|
|
|
|
+ * It also has to be called when mmgrab() is used in the context of
|
|
|
|
|
+ * the process, but then the mm_count refcount is transferred outside
|
|
|
|
|
+ * the context of the process to run down_write() on that pinned mm.
|
|
|
|
|
+ *
|
|
|
* NOTE: find_extend_vma() called from GUP context is the only place
|
|
* NOTE: find_extend_vma() called from GUP context is the only place
|
|
|
* that can modify the "mm" (notably the vm_start/end) under mmap_sem
|
|
* that can modify the "mm" (notably the vm_start/end) under mmap_sem
|
|
|
* for reading and outside the context of the process, so it is also
|
|
* for reading and outside the context of the process, so it is also
|