From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=100.103.45.18 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794585695; b=sqeOTiZW2UBSyb3867ARykymS/FxbiWa1JRWDQOv9Oz1YaqOK366LYe1YQcz17v5tzHa 0YSY/QSmNWU7h33KeLBRicVhC9jBu5HOuJDROcKDqgeVhUndah4ppw2aLGLOUZUsviyxT ElQDFBSMveUSEtwgS/bERoHeycTJzeNuWEGsGMho73+IMxap5qCFmJrX1EmOEfZfRCOEo 5vWP3Tx4yMKsT+TUZNsCfqSjbi8Xavk6Rco6oXHXnAgd9i5CO3nEPQUbPMx97lACK614e iMOE+HJkSZDcUnQ71cdcM2KCaiYK6iH59ySlnAcXJYZBTNl36qR9FFv4cAyQgmd/D9w== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794585695; h=Received:DKIM-Signature:From:To:Cc:Subject:Date:Message-ID:X-Mailer: In-Reply-To:References:User-Agent:X-stable:X-Patchwork-Hint: MIME-Version:Content-Transfer-Encoding; bh=Rl2HdZKRNrrUHNnwUeM7c+OEYfgf2qzWkMsyZIp0x88=; b=3K6wzR87mNMXlYwqcqquXuSakKUXaiK+FKJWZs+0/nJsLUIAfd5AbwJl9pCpSX/OgyPp 0dGUANK/m76xEpJ4TSv1rJhqEQrZchWCij+61rFfAwHDz/ynjn6LXh57GpN6EnViMUgWV I5tQzxtxJLWbZIVkjtdttoG9INR+SgKxD9sf0vtPYmKxzUJ3Kg29FVNmShhrfaYw/MmfY VaAQzipiJwMMO6hMfkt+hYr4fSWMzOkhsgWtokq7u5o75kf/lIhYRzpM1T8/MEFaLYIe/ 8GW3HKqDCTk+eezJEW3jNX6ItRWSlQmRxMgmrDmGsTRO6QKloX/lzcFUHe7V9NOPQYA== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass header.d=linuxfoundation.org header.i=@linuxfoundation.org header.a=rsa-sha256 header.s=korg header.b=bKTedSAi; arc=none smtp.remote-ip=100.103.45.18 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 58275606A8B9; Fri, 13 Nov 2026 16:01:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.a=rsa-sha256 header.s=korg header.b=bKTedSAi Received: by smtp.kernel.org (Postfix) with ESMTPSA id 088941F000C4; Fri, 13 Nov 2026 16:01:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=korg; t=1794585695; bh=Rl2HdZKRNrrUHNnwUeM7c+OEYfgf2qzWkMsyZIp0x88=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=bKTedSAiPxtQNmJU3uUqLU1zMNPCp6W3bMqL3pPRbMTWD0TBATlF3TfPCttO2Uhwe ECHdeeJTaVowyU8vO473pqv0AKdy6pKhQ32ClJdz3S6Ak345ld5DVl1Tm2ypEZHs/b 0YTyjUTILk40GJtYOika/e+V1o6pkWYtEPjzfCz0= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Chris Mason , "Gregory Price (Meta)" , Zi Yan , Lance Yang , "David Hildenbrand (Arm)" , Sasha Levin Subject: [PATCH 7.3 303/507] mm/huge_memory: fix zapping migration entries for device-private THPs Date: Fri, 13 Nov 2026 10:50:07 -0500 Message-ID: <20261113153805.537436502@linuxfoundation.org> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261113153753.358973689@linuxfoundation.org> References: <20261113153753.358973689@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore X-Mailing-List: patches@lists.linux.dev List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 7.3-stable review patch. If anyone has any objections, please let me know. ------------------ From: Chris Mason [ Upstream commit 63a940541358d09cc9f02d40b71eb8d3917a21c0 ] A PMD migration entry can refer to a device-private folio. zap_huge_pmd_folio() checks the folio type instead of the entry type, so it treats such a migration entry as a device-private entry. Installing the migration entry already removed the reverse mapping and dropped the mapping reference. Zapping it must not repeat those operations. Concurrent MADV_DONTNEED during migration back to system memory can trigger this. Check the PMD entry type using pmd_is_device_private_entry(). Fix generated by an LLM and sent by Chris Mason in private. Fixes: 368076f52ebe ("mm/huge_memory: add device-private THP support to PMD operations") Cc: stable@vger.kernel.org Signed-off-by: Chris Mason [ david: simplify description ] Reviewed-by: Gregory Price (Meta) Link: https://patch.msgid.link/20261031-fixes_core-v3-14-d6437171ecc3@kernel.org Reviewed-by: Zi Yan Reviewed-by: Lance Yang Signed-off-by: David Hildenbrand (Arm) Signed-off-by: Sasha Levin --- mm/huge_memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index da96959998692..c1130d3d28261 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -2494,7 +2494,7 @@ static inline void zap_deposited_table(struct mm_struct *mm, pmd_t *pmd) static void zap_huge_pmd_folio(struct mm_struct *mm, struct vm_area_struct *vma, pmd_t pmdval, struct folio *folio, bool is_present) { - const bool is_device_private = folio_is_device_private(folio); + const bool is_device_private = pmd_is_device_private_entry(pmdval); if (folio_test_anon(folio)) { add_mm_counter(mm, MM_ANONPAGES, -HPAGE_PMD_NR); -- 2.53.0