Received: by 10.213.65.68 with SMTP id h4csp752756imn; Tue, 20 Mar 2018 14:35:39 -0700 (PDT) X-Google-Smtp-Source: AG47ELslo4lsDNx2lLxrxpyW7iE8e4DkEV4wQuyKpO3bZhhq9LW59OFwjsqD9QvgMXYZMIT/Ap7z X-Received: by 10.99.115.3 with SMTP id o3mr13117284pgc.428.1521581739542; Tue, 20 Mar 2018 14:35:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521581739; cv=none; d=google.com; s=arc-20160816; b=UTZWnHj41i8CpmgCJ2h9ruuYcN71as8ZyPsO9+Ivp3uiU0/TwLii9ddeEFXvYQvutu hLWdCmCB8F+vFHUE3LXdZrJtporbzkaLs9y1djJzQOpTG02SooA+Aw3qboRwT9Zqwt96 FPr4ZkXsuUg+l+3Qc7jVnp+MCS5VeLaSgNw7jnvB1Bx4jp1fECOHxTlgI4S5+vN9d9qK t2IvxnuVUsruHd3jy3B1Q6YNR2sdS19btYqv4J8vFX/U33jlykmxOlifSJzuIEJwocPe TS8uw6c9QU3zd1fZKe/MWaOUjP5guobR4F922ZLmBitNq2hfdoNd41fE+Ra7rRIiqcHd orOg== 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=S9TAJj6rU3PwW+pnR1x1Jqr/wMnvaeiDRH1rmC870oU=; b=hzbqAwxbynwnE+RbUnlb89XuI7fNu2XOUoFdsSj9pBB+WOTsb9Tzr7elrN1J5mYQsW am3MhyN20wN77upeK1TchDhqW6ou02cKLncDBVb5sdTNPQAhRSSsLVmtJ9tJ+MeiDF7c 1fdmA1/h8Tp+8U4mgl2ChPrUnb81hnvESKwXUyCsYXXG+f6L9Sk4xi+bOsL97pFlqB+/ ahpVBlZIIb+kWRByePW3W19unrD7OhkqVw1Ws8FH5vhOrYZjyqE3NTbzI/jq2KN1jll8 Kdunv3pvYjDHwQoThSEz6ZeSrHuV/FF2IKDY4aa/QoPKpn148kz8seGeFIG1fD6R0WAN O8BA== 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 r7si1686173pgp.212.2018.03.20.14.35.24; Tue, 20 Mar 2018 14:35:39 -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 S1751877AbeCTVcn (ORCPT + 99 others); Tue, 20 Mar 2018 17:32:43 -0400 Received: from out30-131.freemail.mail.aliyun.com ([115.124.30.131]:39106 "EHLO out30-131.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751458AbeCTVcm (ORCPT ); Tue, 20 Mar 2018 17:32:42 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R561e4;CH=green;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01f04446;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 3/8] mm: mremap: pass atomic parameter to do_munmap() Date: Wed, 21 Mar 2018 05:31:21 +0800 Message-Id: <1521581486-99134-4-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 sounds safe to do unlock/relock to mmap_sem in mremap, so passing "false" here. Signed-off-by: Yang Shi --- mm/mremap.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mm/mremap.c b/mm/mremap.c index 049470a..5f8fca4 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -353,7 +353,7 @@ static unsigned long move_vma(struct vm_area_struct *vma, if (unlikely(vma->vm_flags & VM_PFNMAP)) untrack_pfn_moved(vma); - if (do_munmap(mm, old_addr, old_len, uf_unmap) < 0) { + if (do_munmap(mm, old_addr, old_len, uf_unmap, false) < 0) { /* OOM: unable to split vma, just get accounts right */ vm_unacct_memory(excess >> PAGE_SHIFT); excess = 0; @@ -462,12 +462,13 @@ static unsigned long mremap_to(unsigned long addr, unsigned long old_len, if (addr + old_len > new_addr && new_addr + new_len > addr) goto out; - ret = do_munmap(mm, new_addr, new_len, uf_unmap_early); + ret = do_munmap(mm, new_addr, new_len, uf_unmap_early, false); if (ret) goto out; if (old_len >= new_len) { - ret = do_munmap(mm, addr+new_len, old_len - new_len, uf_unmap); + ret = do_munmap(mm, addr+new_len, old_len - new_len, + uf_unmap, false); if (ret && old_len != new_len) goto out; old_len = new_len; @@ -568,7 +569,8 @@ static int vma_expandable(struct vm_area_struct *vma, unsigned long delta) * do_munmap does all the needed commit accounting */ if (old_len >= new_len) { - ret = do_munmap(mm, addr+new_len, old_len - new_len, &uf_unmap); + ret = do_munmap(mm, addr+new_len, old_len - new_len, + &uf_unmap, false); if (ret && old_len != new_len) goto out; ret = addr; -- 1.8.3.1