Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp657917pxv; Fri, 9 Jul 2021 06:20:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw/zkQ46+TJt9+yGBenYNqgb3MHnz5JLPLOSUQ2LPY0aGy8gOiVB81HALghMo1dzDtOEupN X-Received: by 2002:a05:6e02:1528:: with SMTP id i8mr27748227ilu.277.1625836840115; Fri, 09 Jul 2021 06:20:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625836840; cv=none; d=google.com; s=arc-20160816; b=cbz7R2D9zMEtj/jc7P270TJksEUpdf0WxdScN2oEgysk2E3+hQoDwJ0NxvVQJ485bD YzG5kDKbxteDBabuT9VwuD4TKZnNartscc3tlLQ49+ZFTF3Vpb0PTgtX8bYw5nSbL3ll HKn0kkGiKW7Mnt7aDhvhcfcWVvQQbkRw8Ra21lag92NEx0DONVQqla3A0hTzEIpq/60F 50v4QngHLKrZKIPL4vIXjTctnYgXIzLdZr7fgWij79MTnkcNmOTCXMJB7thmJj637G2o hw8mirsW4IhX+wsQOyTlp/FS841clX7ZDfXl14I/3BpJOFoSjme/yJiuGhqMHHVS9Ucr 0S/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Y7sAy7oCr2B+QH0BjscyxHx0tKGA7LZ2upU7RPRdzIw=; b=A9lo620kqWAq1Bw4BA4Gv5il5GnQSDx6CYpSVbH0Zn8MAFUNkhT/iAeXSDzclWRg4s ZNztu7ImFc0++5RbNeJs6f2HeumOEoBgFNvJnNlhG3VSRcQf3dZMmXGlo/0axHYUiwDI EdVpLC7GKg9GLt2KbMcHwlDc7YPl8rZuCqV/2Nm03GcYxCWAgJCmgG5vAtPzPkK1EgmI XavYttk8GXLvwL+a7btz08vRDgAM6YES5Z0cOTMilSahrdE5n/aNgdBh7nSLFHV1ovKH +2i6nZ6u4XMSAXJ67mRVvpz1zGiGSO9LRwhZb2PrplkBWP9ASjiZdxNpB15TLJhK/11J u3JQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=NFb5eKW7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r2si6573430ilq.123.2021.07.09.06.20.28; Fri, 09 Jul 2021 06:20:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=NFb5eKW7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232239AbhGINWQ (ORCPT + 99 others); Fri, 9 Jul 2021 09:22:16 -0400 Received: from mail.kernel.org ([198.145.29.99]:52396 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232105AbhGINWJ (ORCPT ); Fri, 9 Jul 2021 09:22:09 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id C7853613B6; Fri, 9 Jul 2021 13:19:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1625836761; bh=FRXk0/dm+qtUFBK4/Y8rPXbnnd8S/gPnPr9JJwUCFjI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NFb5eKW74xs4x3pQ7gbEpA8vpPgY7n1rJwKSAHO10Bcf0grDu4AMfpl9vAzidSgOZ QJrSh/5le2om8LHHmSMzXUfelXJqgeGZ5uUZX6UFR3ivEWFw0Guw9M2ivT4HLVeD0C mxcivvwyYn+gwTlv72aOdM+BZr1aR6yWAQPCS03k= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jue Wang , Hugh Dickins , "Matthew Wilcox (Oracle)" , Yang Shi , "Kirill A. Shutemov" , Alistair Popple , Jan Kara , Miaohe Lin , Minchan Kim , Naoya Horiguchi , Oscar Salvador , Peter Xu , Ralph Campbell , Shakeel Butt , Wang Yugui , Zi Yan , Andrew Morton , Linus Torvalds , Sasha Levin Subject: [PATCH 4.14 07/25] mm/thp: fix page_address_in_vma() on file THP tails Date: Fri, 9 Jul 2021 15:18:38 +0200 Message-Id: <20210709131632.341145716@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210709131627.928131764@linuxfoundation.org> References: <20210709131627.928131764@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jue Wang [ Upstream commit 31657170deaf1d8d2f6a1955fbc6fa9d228be036 ] Anon THP tails were already supported, but memory-failure may need to use page_address_in_vma() on file THP tails, which its page->mapping check did not permit: fix it. hughd adds: no current usage is known to hit the issue, but this does fix a subtle trap in a general helper: best fixed in stable sooner than later. Link: https://lkml.kernel.org/r/a0d9b53-bf5d-8bab-ac5-759dc61819c1@google.com Fixes: 800d8c63b2e9 ("shmem: add huge pages support") Signed-off-by: Jue Wang Signed-off-by: Hugh Dickins Reviewed-by: Matthew Wilcox (Oracle) Reviewed-by: Yang Shi Acked-by: Kirill A. Shutemov Cc: Alistair Popple Cc: Jan Kara Cc: Miaohe Lin Cc: Minchan Kim Cc: Naoya Horiguchi Cc: Oscar Salvador Cc: Peter Xu Cc: Ralph Campbell Cc: Shakeel Butt Cc: Wang Yugui Cc: Zi Yan Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Sasha Levin --- mm/rmap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mm/rmap.c b/mm/rmap.c index bebe29a2c5f2..8ed8ec113d5a 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -695,11 +695,11 @@ unsigned long page_address_in_vma(struct page *page, struct vm_area_struct *vma) if (!vma->anon_vma || !page__anon_vma || vma->anon_vma->root != page__anon_vma->root) return -EFAULT; - } else if (page->mapping) { - if (!vma->vm_file || vma->vm_file->f_mapping != page->mapping) - return -EFAULT; - } else + } else if (!vma->vm_file) { + return -EFAULT; + } else if (vma->vm_file->f_mapping != compound_head(page)->mapping) { return -EFAULT; + } return vma_address(page, vma); } -- 2.30.2