Thread (68 messages) 68 messages, 8 authors, 2016-03-11

Re: [PATCH 13/18] exec: make exec path waiting for mmap_sem killable

From: Oleg Nesterov <oleg@redhat.com>
Date: 2016-02-29 18:10:32
Also in: linux-mm, lkml

On 02/29, Michal Hocko wrote:
On Mon 29-02-16 18:23:34, Oleg Nesterov wrote:
quoted
On 02/29, Michal Hocko wrote:
quoted
@@ -267,7 +267,10 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
 	if (!vma)
 		return -ENOMEM;

-	down_write(&mm->mmap_sem);
+	if (down_write_killable(&mm->mmap_sem)) {
+		err = -EINTR;
+		goto err_free;
+	}
 	vma->vm_mm = mm;
I won't argue, but this looks unnecessary. Nobody else can see this new mm,
down_write() can't block.

In fact I think we can just remove down_write/up_write here. Except perhaps
there is lockdep_assert_held() somewhere in these paths.
This is what I had initially but then I've noticed that mm_alloc() does
mm_init(current)->init_new_context(current)
yes, and init_new_context() is arch dependant...
code doesn't seem much harder to follow, the callers are already
handling all error paths so I guess it would be better to simply move on
this.
Yes, agreed, please forget.

Oleg.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help