Received: by 10.223.164.202 with SMTP id h10csp3838617wrb; Tue, 28 Nov 2017 18:39:55 -0800 (PST) X-Google-Smtp-Source: AGs4zMYKIVkb0bbF0WusWkfitTvtABemz5Iol9Z4rD0x/rs9TCm1gcB5N7+xo663vpdaegdjgK98 X-Received: by 10.101.101.154 with SMTP id u26mr1317367pgv.416.1511923195666; Tue, 28 Nov 2017 18:39:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1511923195; cv=none; d=google.com; s=arc-20160816; b=qAZ7ag6UUWtPvmrV2JzqO0W5t4cjxjZa4RoIjnAuaYNHQ9UpP7M+DvHQeX/XItlySI 9gDamV07g4BSuerGwdocMiLfaSPMcwGHKSDjtWYkTfgHozqLu04xNUF6lYZAg18b4Vfd N0kV8aMkX1hKOGMHpGqoLWIdzkJjvgZEMG45AHRCXyv5JumEpltP449rLKRmvOXrcscw UPR+NWumr64CthYP1e/KcmEivB9z73Juiy75zXsdswSCALJVj/jRfJoLXcZWfeiV3vxP oXBFPZBQs3feuB04vTUKkH2ga7S1Z5Q3AE7lb8jA5nlLpFhPjI8Yg8cnNHqsRCrGySFk KWEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=CVDbOfWjogC5Qz+LDQ1xtvwJeJdbBFTHXaPQ23FKeMQ=; b=BDXa8GheT8HbrOIWS+ZYFkT5Syw6UZWrHsyvOQTaB8Bf5F9yslAxrIiVzl1+8Tpi7q +02P6Wtnh/O7P5Dce0lcrnJDQ+dkKRtCa2SRStrOTTvSRzVCxHmHcPo1FcuUrEgxmJjt 6vvldc4EMr5UxC5k7RHkdkwKYwkVx4KIKbolQ8Hy3n7hgEmOxMMmGLwyeAtxkQ9fdVlY Eu5+uHm8ArNfCt+VOx/zeLmcxGEfzYueRbxe5MjsI6V5MUQcidQqxY69UBoGXKKXcMv1 WnUAyx34RK+dLc+WCOJ1m/32U14pRIFZ4w5oN7MTrJfQk9d4bxkCgBO8DVSoozGPnz3h W+UQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=CmqWwWXU; 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=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x66si513830pfi.70.2017.11.28.18.39.45; Tue, 28 Nov 2017 18:39:55 -0800 (PST) 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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=CmqWwWXU; 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=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752280AbdK2Chw (ORCPT + 71 others); Tue, 28 Nov 2017 21:37:52 -0500 Received: from mail-pl0-f65.google.com ([209.85.160.65]:35764 "EHLO mail-pl0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751368AbdK2Chu (ORCPT ); Tue, 28 Nov 2017 21:37:50 -0500 Received: by mail-pl0-f65.google.com with SMTP id b96so1192240pli.2 for ; Tue, 28 Nov 2017 18:37:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=CVDbOfWjogC5Qz+LDQ1xtvwJeJdbBFTHXaPQ23FKeMQ=; b=CmqWwWXUdIUzvOmf1rDuSsNagGMli2MR0aSaB8ViBPjt8cxU1cMLxK5tlzEgriinD4 H+t+7Rqdj6Ompdl4tWBnUOix0Vo8DEqALpws+tjfTt8hc1bS4SZl0LIOMbCZTHHFoD/Z L4WwUXh5Gh77F2WXkssos0hFhEWwSuepH0+hgwGMf50WJzdb4/NNny61OODgG5DaJdGX xB1t40rIGHHktKqAijUcDLophBM6mAElYoLUc6GxnqnUrYj0Gfn8C2kCu1+9Fmo764xk U1iQhb2uCYCPC+XUL3lTckRTVeKEvAPc3pcmbjWuptu+Ct9SS8vTveAbBWBaalN9Tw0z Alwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=CVDbOfWjogC5Qz+LDQ1xtvwJeJdbBFTHXaPQ23FKeMQ=; b=N7jXcv+RnrhtP1Ys88SZxv5XMYk6dCPwV/sfY+KmdOZ4n0oN6Z3NWGeBpcYWqcCgud 2Qy0BxTUPFvv5okDsFImshGkAC9M7L782othtmTT9IHTBs7hDwNoOyWBOISLMB0WBMBc U/R/Fz4o4L6i8kKHbCz05NSkYH4H+IHUbwbGeaqU0CjA+D3h88ZBMyCfeWX5dPSUdFA5 Nwhu21hxW2pixklBg6fU8pJDs6EpGGUxXRurPt3Js9P8DpGnMOS3m8BXb3RqtPR5lZBQ G14TnawEyvQc8AMbvQdoKj1CSxSjaB/YKv2NBkhzFmwYADDYptj/jBdTa+qnoGo3SDqJ b/xw== X-Gm-Message-State: AJaThX5MirjhBqiepRiBtP4QEdh0e6lURvBq7EBpagbHi9GeJveijQk7 undnIqEK/kRVaSj8968l3KQ= X-Received: by 10.159.242.132 with SMTP id u4mr1350611plr.296.1511923069793; Tue, 28 Nov 2017 18:37:49 -0800 (PST) Received: from zzz.localdomain (c-67-185-97-198.hsd1.wa.comcast.net. [67.185.97.198]) by smtp.gmail.com with ESMTPSA id i3sm479799pgc.88.2017.11.28.18.37.49 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 28 Nov 2017 18:37:49 -0800 (PST) Date: Tue, 28 Nov 2017 18:37:47 -0800 From: Eric Biggers To: Nadav Amit Cc: Nadia Yvette Chambers , linux-kernel@vger.kernel.org, Nadav Amit , Mike Kravetz Subject: Re: [PATCH] hugetlbfs: change put_page/unlock_page order in hugetlbfs_fallocate() Message-ID: <20171129023747.GB24001@zzz.localdomain> References: <20170826210905.GA21712@zzz.localdomain> <20170826191124.51642-1-namit@vmware.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170826191124.51642-1-namit@vmware.com> User-Agent: Mutt/1.9.1 (2017-09-22) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Aug 26, 2017 at 12:11:24PM -0700, Nadav Amit wrote: > hugetlfs_fallocate() currently performs put_page() before unlock_page(). > This scenario opens a small time window, from the time the page is added > to the page cache, until it is unlocked, in which the page might be > removed from the page-cache by another core. If the page is removed > during this time windows, it might cause a memory corruption, as the > wrong page will be unlocked. > > It is arguable whether this scenario can happen in a real system, and > there are several mitigating factors. The issue was found by code > inspection (actually grep), and not by actually triggering the flow. > Yet, since putting the page before unlocking is incorrect it should be > fixed, if only to prevent future breakage or someone copy-pasting this > code. > > Fixes: 70c3547e36f5c ("hugetlbfs: add hugetlbfs_fallocate()") > > cc: Eric Biggers > cc: Mike Kravetz > > Signed-off-by: Nadav Amit > --- > fs/hugetlbfs/inode.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c > index 28d2753be094..9475fee79cee 100644 > --- a/fs/hugetlbfs/inode.c > +++ b/fs/hugetlbfs/inode.c > @@ -655,11 +655,11 @@ static long hugetlbfs_fallocate(struct file *file, int mode, loff_t offset, > mutex_unlock(&hugetlb_fault_mutex_table[hash]); > > /* > - * page_put due to reference from alloc_huge_page() > * unlock_page because locked by add_to_page_cache() > + * page_put due to reference from alloc_huge_page() > */ > - put_page(page); > unlock_page(page); > + put_page(page); > } > > if (!(mode & FALLOC_FL_KEEP_SIZE) && offset + len > inode->i_size) > -- This patch wasn't ever applied. Nadia, do you take patches for hugetlbfs, or does this need to go through Andrew Morton? Eric From 1577002066639586664@xxx Mon Aug 28 18:52:47 +0000 2017 X-GM-THRID: 1576849154661183388 X-Gmail-Labels: Inbox,Category Forums