Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp658383pxv; Fri, 9 Jul 2021 06:21:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwSLCtMy71dRjzZJXvu+kUYQvyGUnDV8jyz50tTARKX92RaVomUBi3ODetssdoNMrRxCV3m X-Received: by 2002:a05:6602:1544:: with SMTP id h4mr8250448iow.76.1625836868521; Fri, 09 Jul 2021 06:21:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625836868; cv=none; d=google.com; s=arc-20160816; b=ZFOVbZ3HBjW5A1pNYsBUUgRorG/KKzKwqGtDA9NEEwIRziCr6plgADDZYCODDxHk6J yw2JAb9aQ0IhGPKVFWbBHeBa0ajDF34xlEPzXW/hKk/PfVali0A3rn4/NQPfMMWy9rW3 osgM/w73NZk6D/ITThWe06SBei9uZOAxfdEzH3VKkffJu4CTU07TD4XqrriX993zJzZl vn3wUhfWdQzu5CR3PUTISzrQFLOE7umffXzIrs9tgm5oH0QkQGmXKBMz7jJRZqDeoU1V zV1ow7bk9/gLm2V+7Itk7dL7UF/+Cvx2qTmVzolO0e+nXh1vHOLd0xvIZJgO24btyOpg ecxg== 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=9niBLANKgSsR3G3DmfZF3rI0lGCc//tAAapBVVeeQLg=; b=wTqnvU866/JaISYdRaRep+6HVPstdCQiAAliD3tnmF1wtOmOmofU342SF91ZcVGdCZ UJWmmSozzHC5kJmMpl1zs+pfy+dh52seTyk56JPXLveCjy8k/uml44410AITdZERLssw 7EWpKaZRRolPCPVvwEc77wz6F88evRtIr5ALNUCOk7/MFUuBOwGc8UtDnXpxoSO9jSCy 3KVERUbbycNOfkAYwAJPyAQbMl4DcNpjugR6zdUag06MWTq+AYFe4JFm5RGKvsiGtj7b tirJz1CQPT+q4t6GVEq9YOrYAW8CPi5nzXrbby710m76kdLnQrTXYjlD98/hwBiRLRC+ eybg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=lqVoH9nA; 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 m21si6725849ioc.6.2021.07.09.06.20.56; Fri, 09 Jul 2021 06:21:08 -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=lqVoH9nA; 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 S232349AbhGINWi (ORCPT + 99 others); Fri, 9 Jul 2021 09:22:38 -0400 Received: from mail.kernel.org ([198.145.29.99]:53376 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232277AbhGINW3 (ORCPT ); Fri, 9 Jul 2021 09:22:29 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 55C75613B6; Fri, 9 Jul 2021 13:19:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1625836785; bh=LzQScFlq+nvLefsxylDxfr3lrPiQxJhtYv33CzkgE24=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lqVoH9nAgEQHRNjCjSPY8QZIO057w6NBqZLoJ82a1OGHfxbe4Yz4ZSleHsdgp2hI0 pb7eu/4cgZg/rW0LdQiD/u4IFYxbOe259f80dPxByGhCeDvYt5gZDAOEbQmH++Gcb4 5g/OVM+xDYyhmhVHH6J08uGOIgDtXBBXoNew2+uQ= 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.14 18/25] mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk() Date: Fri, 9 Jul 2021 15:18:49 +0200 Message-Id: <20210709131638.887630622@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: 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 16adeef76d00..a612daef5f00 100644 --- a/mm/page_vma_mapped.c +++ b/mm/page_vma_mapped.c @@ -271,6 +271,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