Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp3776900pxv; Mon, 28 Jun 2021 12:35:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxEQw7aP9SvpSJCMbU3wVsay5CU3j11uQfBWdnYYz1Adf9L9q6JwLRVjaA/fa22RYM7UYdO X-Received: by 2002:a05:6e02:1313:: with SMTP id g19mr19399404ilr.169.1624908939519; Mon, 28 Jun 2021 12:35:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624908939; cv=none; d=google.com; s=arc-20160816; b=KrZSmk9EnTqWUn9e5RGgHzsjF7MeOfPS1Akx+H3x2OVZ3jIYIzJGuWM5zE6cCqa91T drZFG2tDPxcb3E7ftG93jpziTq0w8sYu/skINRpT8hfp0XeaidtsuYwLgVZxnsic/WRg wQ9ZXwjMYGkLAuuGMhytq0kdsBAxNKUWRJdQ9kQDBlHoAiuQaQwQCt1BzzOtoWSXlPBG 4dlbM8hgJHx3HVUqbK9QTx7IUfiqU1KMAJIBCRMVwSrvGC3kmYMhTrgf7atp7+uwQXbe g9RwLmCsZAGB55K/uS3/P8dnLOoj+roFl1t+fILw+AMvLEiydTwJ0T/Ept/nmEe83cDs Q59w== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=WHhC6gvXAu9u4aS8e0MyDb+E6TiSsqkA1Vcq3vwZlbY=; b=CmPixT0rG9IvcrqJEE8Lrszyv6tGmeQ+JWkD2r5zgu5paPN4QMTuPatZ9/brIpULxL jTKe/n+agkTOwcVMW35YjGTnbWWMTSTkh49uejW5paUXf2CtPXmc/RGO71+V9tgiefjt iysm4pMGkChqU43HTrGYwZTsVcl9TTSTse6WluVRCfWBn8h08piG2WoYg9lMxh+GAJj6 vTzij3plYk5U5aODl2KUNLEN+0l8mJaVzXoStrwTy+lGX6QOw0Jlvtr9boh0vL5Cu+PS pkVu4gnaxAmVOZWAo7E2j5oS8s0GkL2DL1Ca6haTCiBVeCh4OLYDdflew3Xpaq4koxAa M8Ig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=gZ45zTqv; 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u15si5364947iot.89.2021.06.28.12.35.26; Mon, 28 Jun 2021 12:35:39 -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=@kernel.org header.s=k20201202 header.b=gZ45zTqv; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235471AbhF1Out (ORCPT + 99 others); Mon, 28 Jun 2021 10:50:49 -0400 Received: from mail.kernel.org ([198.145.29.99]:43968 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234995AbhF1OjF (ORCPT ); Mon, 28 Jun 2021 10:39:05 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1A02A61CC2; Mon, 28 Jun 2021 14:31:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1624890681; bh=khrMv6whzfGlCxvEM+ePL67z70MQquWZbzyaSz4OYr4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gZ45zTqvp4QdAJBEhyk+VB9A9FieZRSADHMJ29vOA2MyGqsjE+M+78X8j7KCVm/4q rDAd9eTwohZI9Z7nXD3QsZ2sPaL+JB+PyCzeS1xwdObD4jRwcs5QUerb8mtZGeVTPD sHHRHiKxplPCiebyJmNRiJnpfMOgPyBr/dfPXYL0r/p/4B6Nr9g3tfa/uJ1heV+tun T5peUFJZD+oB/UaguK9OQwbfu/q0HL/4lqfdKug7PftWMf6iMG8NNXomfmP/b241YE Bp4Woxgy85ehe5vvoYEyuJHetEf/25n+TmdJEiryf2OceEhHy8cTL9l7ef97CqCB5D DJTCaRLfW6E1A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: 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 , Greg Kroah-Hartman Subject: [PATCH 5.4 65/71] mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk() Date: Mon, 28 Jun 2021 10:29:58 -0400 Message-Id: <20210628143004.32596-66-sashal@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210628143004.32596-1-sashal@kernel.org> References: <20210628143004.32596-1-sashal@kernel.org> MIME-Version: 1.0 X-KernelTest-Patch: http://kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.129-rc1.gz X-KernelTest-Tree: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git X-KernelTest-Branch: linux-5.4.y X-KernelTest-Patches: git://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git X-KernelTest-Version: 5.4.129-rc1 X-KernelTest-Deadline: 2021-06-30T14:29+00:00 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Hugh Dickins 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: Greg Kroah-Hartman --- 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 0e8f54683709..029f5598251c 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