Received: by 10.213.65.68 with SMTP id h4csp751986imn; Tue, 20 Mar 2018 14:34:01 -0700 (PDT) X-Google-Smtp-Source: AG47ELs55DwKz9/04RAFUTTE1eXNxo/pIbQhBEOXqEqabglPybDswNPv5K9CURaZby5/IxruTApl X-Received: by 2002:a17:902:107:: with SMTP id 7-v6mr17979733plb.374.1521581641685; Tue, 20 Mar 2018 14:34:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521581641; cv=none; d=google.com; s=arc-20160816; b=jio4XDYIEkDQi8SFSRjlTZGQPy4hdqTJYyIEHVRpUzJko0gsNkSp0icZ5lod1WyVae g85hVzA7Sct4W1uXbx55COShH2P/ZR4uYRaE3ZMVioNmXyeY7/+lvnzhAieA1X3t5iTa 4a4Vd4AvrTouKNe8OpYV2+FqdsRCuvyGI7mJzfxLBzwtGvan83CSRbp6mQoaIAGV5Id+ ILLLBR0min2JX0Ko/W6VsPsYqrIz6iRHdDiUGF1sUjETrYL63BoEZCpdGWxbH9fQWRdW aPa7lIkPt74D1d3gqGe7D7xwrnBiA0pFdaSxg3yNz8eJHVOBvx7o0TOxU4zi63r+BuWy vfHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=uIfCgAKhnovpwE6WIL62SAxvS6L4HcpyvWAPQfqHiqQ=; b=H7+g5AsJeIdVL6u9L/1hl6BzWiotP00nC30jtdyeIk6ULObzLeF/uXwVGH+fX6NuBQ 0zDsZLh3bz669XAF/wAhxhVcPWFFvMSS21PaqpuWhwkA4O9+w8xN8ExZCod5TOT4odZZ iurukdgpZxpRoOf6ru55IBal4q1M65PGUiIy6Wczpe7MGvMxuyRmo84lj52em5rVlSg2 DrAhq3Lwa0E/ea7MfCYsB+p7EIlDX+BVhR8N+BkJwzQlTumL6+AGgbIgVWrDn2P9vTcr Q/K7LWLzsvENTk5zZw8xCVac8VcA+mmhojBi382tMW5R0lYZDCVRStoufun+aAnQFr4j 30FQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z10si1724655pgz.803.2018.03.20.14.33.47; Tue, 20 Mar 2018 14:34:01 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751843AbeCTVcd (ORCPT + 99 others); Tue, 20 Mar 2018 17:32:33 -0400 Received: from out30-132.freemail.mail.aliyun.com ([115.124.30.132]:55303 "EHLO out30-132.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751498AbeCTVcb (ORCPT ); Tue, 20 Mar 2018 17:32:31 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R161e4;CH=green;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e01429;MF=yang.shi@linux.alibaba.com;NM=1;PH=DS;RN=4;SR=0;TI=SMTPD_---0SzoMu-x_1521581495; Received: from e19h19392.et15sqa.tbsite.net(mailfrom:yang.shi@linux.alibaba.com fp:106.11.238.198) by smtp.aliyun-inc.com(127.0.0.1); Wed, 21 Mar 2018 05:31:45 +0800 From: Yang Shi To: akpm@linux-foundation.org Cc: yang.shi@linux.alibaba.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 5/8] ipc: shm: pass atomic parameter to do_munmap() Date: Wed, 21 Mar 2018 05:31:23 +0800 Message-Id: <1521581486-99134-6-git-send-email-yang.shi@linux.alibaba.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1521581486-99134-1-git-send-email-yang.shi@linux.alibaba.com> References: <1521581486-99134-1-git-send-email-yang.shi@linux.alibaba.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It looks safe to do unlock/relock mmap_sem in the middle of shmat(), so passing "false" here. Signed-off-by: Yang Shi --- ipc/shm.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ipc/shm.c b/ipc/shm.c index 4643865..1617523 100644 --- a/ipc/shm.c +++ b/ipc/shm.c @@ -1537,7 +1537,8 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, */ file = vma->vm_file; size = i_size_read(file_inode(vma->vm_file)); - do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL); + do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, + NULL, false); /* * We discovered the size of the shm segment, so * break out of here and fall through to the next @@ -1564,7 +1565,8 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, if ((vma->vm_ops == &shm_vm_ops) && ((vma->vm_start - addr)/PAGE_SIZE == vma->vm_pgoff) && (vma->vm_file == file)) - do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL); + do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, + NULL, false); vma = next; } @@ -1573,7 +1575,8 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, * given */ if (vma && vma->vm_start == addr && vma->vm_ops == &shm_vm_ops) { - do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL); + do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, + NULL, false); retval = 0; } -- 1.8.3.1