Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp661066pxv; Fri, 9 Jul 2021 06:23:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyHXNK3b7uY0rlAWwMozB4B4e4rdSJwfxLW8bSU+aZzG5rgIDLOMfDh0Qj2QdG+ymKu1kSl X-Received: by 2002:a92:ce8f:: with SMTP id r15mr27343969ilo.129.1625837032339; Fri, 09 Jul 2021 06:23:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625837032; cv=none; d=google.com; s=arc-20160816; b=yxlLwmEb7yKU4uKbb3a8w1BXq5xBIpgG80pYz1Iiv4NXClRDArP/GfKS8wMVj4KI/x 914cpvpDuRoebaKXq3Av/caTTGmgDz4D8tzZKDNaW/wrlzEm6q/u+xb5939vrwUbpV54 /U1PieSmcr+T1kq/z4cwgGLqcQNQO+L185yMo5+47U18Rxi1gw1n5YJRANxyYFrZZa3M GqhczmqaLUxQbHNv9+PMtean/AvPRd8/sE3PpKfcgwZfRg8kkd4z4McqOYivA67UJA8C GOEmBx81I09vjO7w0NHUaoF6HwWmexIG7ESuEb4vh6l+oN0U0tQX16yVwCNE6atbVkDA JfGw== 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=EQRVOur3SMzoaOxJV8EGpDeFCEX1p3bCD2ndZ/KLRlc=; b=dhi1saUBmsbAzBFbLyPW5vOOiX9U24YHHTpRXzkAL/TUxQIga9/RVq9tIiIA2e7c6d 8zMi+WDjY+cyGdNFwL1/O1i1Lz0kb0l90Go8xxLZXkxvu/q9YTXhaZQExphvdOcJ0OGY 8PvEYm0k9FSBl4VZykjjgCNJTyTbwPV+Yq4aJU5sU9GlOL/bEzOXwqOAoDN4h4vBPNLQ yZrhaActuYrEx5OJQCzhwQAjYrbQY+Bq+XxlgFsOg08jOmVV27lzHOCZrxeWCjmBmRf/ 8v1KFDMRnkFwLe27WBkf2ay5bviOaYN1P5RtWEDqpJdWebMem7I1L7+w+v91Y4ZTqILJ 8eqg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=gW4NQ2DF; 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 z18si6660425jat.72.2021.07.09.06.23.39; Fri, 09 Jul 2021 06:23:52 -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=gW4NQ2DF; 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 S232630AbhGINYc (ORCPT + 99 others); Fri, 9 Jul 2021 09:24:32 -0400 Received: from mail.kernel.org ([198.145.29.99]:55848 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232647AbhGINYU (ORCPT ); Fri, 9 Jul 2021 09:24:20 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id DEAD1613B6; Fri, 9 Jul 2021 13:21:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1625836896; bh=UU8mjztAxs9zXjf2w1BP3WVrzgMMOn6uKoCsN+u+82Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gW4NQ2DFQTFIXXxn4Ct6re7LdNZXvEpDGobyuBfq09AvUmUtncOGluI1x1Uv7qhSa V5r18vZ2/ugj6EC1tBoWpJUU7mR2OA4PFmbxRXqVcFWvPqvT+MvGjzz9nqWkUxfMXu OxGHiqPBEex3s8g95ILL9ndjtUaEqjEafv/ifP14= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Hugh Dickins , "Kirill A. Shutemov" , Wang Yugui , Alistair Popple , Matthew Wilcox , Peter Xu , Ralph Campbell , Will Deacon , Yang Shi , Zi Yan , Andrew Morton , Linus Torvalds , Sasha Levin Subject: [PATCH 4.19 20/34] mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk() Date: Fri, 9 Jul 2021 15:20:36 +0200 Message-Id: <20210709131655.490388222@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210709131644.969303901@linuxfoundation.org> References: <20210709131644.969303901@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: Hugh Dickins [ Upstream commit a7a69d8ba88d8dcee7ef00e91d413a4bd003a814 ] Aha! Shouldn't that quick scan over pte_none()s make sure that it holds ptlock in the PVMW_SYNC case? That too might have been responsible for BUGs or WARNs in split_huge_page_to_list() or its unmap_page(), though I've never seen any. Link: https://lkml.kernel.org/r/1bdf384c-8137-a149-2a1e-475a4791c3c@google.com Link: https://lore.kernel.org/linux-mm/20210412180659.B9E3.409509F4@e16-tech.com/ Fixes: ace71a19cec5 ("mm: introduce page_vma_mapped_walk()") Signed-off-by: Hugh Dickins Acked-by: Kirill A. Shutemov Tested-by: Wang Yugui Cc: Alistair Popple Cc: Matthew Wilcox Cc: Peter Xu Cc: Ralph Campbell Cc: Will Deacon Cc: Yang Shi Cc: Zi Yan Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Sasha Levin --- mm/page_vma_mapped.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c index b7a8009c1549..edca78609318 100644 --- a/mm/page_vma_mapped.c +++ b/mm/page_vma_mapped.c @@ -272,6 +272,10 @@ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw) goto restart; } pvmw->pte++; + if ((pvmw->flags & PVMW_SYNC) && !pvmw->ptl) { + pvmw->ptl = pte_lockptr(mm, pvmw->pmd); + spin_lock(pvmw->ptl); + } } while (pte_none(*pvmw->pte)); if (!pvmw->ptl) { -- 2.30.2