From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from m16.mail.163.com (m16.mail.163.com [220.197.31.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6DFB6272816 for ; Mon, 17 Aug 2026 06:10:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.2 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786947027; cv=none; b=SUe4JXQk3nF/6obuDktdIse+k3MV41wX8p/750lM1xpVCzaPWDRawG4rHfrOrO9wLmvF5jNnoibEDpSFWlTPBwNVSJLbLOD9MZOlV/byZGMgOqWGTnh9uahpSK5YQlqHncUxU/i/cj3UtfIGnkIqf74dI8p5WJx0fyserqTB55E= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786947027; c=relaxed/simple; bh=oYvgpzT6SarCd7O1wIbRYIqQaFcOg/Ceo45jPQMug2Y=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=etqEprtDGiO4mlk1nLpF3cQOVcnMhOUQ3+XJR0ryQs1xNLgsXDQSGNGxcKfpol1ZCD/M02jyDm4Sr/4tpt5T9i9bWXhdVV84JAm/cAwfwD/ZMpeAajglKHGs7UC6vjb6iwfEd5H8XIZxRr+aUCViSzudGLMoqwjYL7XqLILjI78= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b=lkz+IDdF; arc=none smtp.client-ip=220.197.31.2 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b="lkz+IDdF" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:To:Subject:Date:Message-ID:MIME-Version; bh=TZ D1EDo+xk7AN+vVz2TemLYBJiWqNlZ+zCg0CyG1C1I=; b=lkz+IDdFE7rcupKZ2G 8gSLNuNe4/pRQ1ts3z8VVdzYDVmnru49BDLfNfGl7fEui2whHM0yeGh7nyv/Xb4E QMV1Sk9cyMjRrk0Lvp/v543cVkkai+m2xeSQpiv7yw4byNGLG0C6HBe6U1kRJfS1 oel+4WMREcNHeqYxtW7j75bHQ= Received: from localhost (unknown []) by gzga-smtp-mtada-g0-4 (Coremail) with SMTP id _____wBXvZGapYJqqe36QA--.24966S2; Mon, 17 Aug 2026 14:09:31 +0800 (CST) From: Hui Su To: Andrew Morton , David Hildenbrand Cc: Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , Balbir Singh , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Hui Su Subject: [PATCH] mm/migrate_device: fix cache flush when replacing huge zero PMD Date: Mon, 17 Aug 2026 14:08:46 +0800 Message-ID: <20260817060845.377800-2-sh_def@163.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID:_____wBXvZGapYJqqe36QA--.24966S2 X-Coremail-Antispam: 1Uf129KBjvdXoWrKr13Xw1rKw43CFWxJryfXrb_yoWktFb_XF WvywnFgrW8Xr18Ja43Aa1rtry3ta1YkFWUJ3y3Kws2g345Zr9YqF40v3y5GFyUWayDCFW3 Cr1vvr4S9w15KjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7sRNlksDUUUUU== X-CM-SenderInfo: xvkbvvri6rljoofrz/xtbC6RvKKmqCpZvEswAA3z migrate_vma_insert_huge_pmd_page() calls flush_cache_page() before replacing an existing huge zero PMD. However, the third argument to flush_cache_page() is a PFN, while addr + HPAGE_PMD_SIZE is an end virtual address. More importantly, the mapping being invalidated is PMD-sized rather than PAGE_SIZE-sized. Flush the whole PMD range with flush_cache_range(), matching other huge PMD invalidation paths. Fixes: a30b48bf1b24 ("mm/migrate_device: implement THP migration of zone device pages") Signed-off-by: Hui Su --- mm/migrate_device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/migrate_device.c b/mm/migrate_device.c index 908d2d4ec43a..098c04c1b124 100644 --- a/mm/migrate_device.c +++ b/mm/migrate_device.c @@ -872,7 +872,7 @@ static int migrate_vma_insert_huge_pmd_page(struct migrate_vma *migrate, if (flush) { pte_free(vma->vm_mm, pgtable); - flush_cache_page(vma, addr, addr + HPAGE_PMD_SIZE); + flush_cache_range(vma, addr, addr + HPAGE_PMD_SIZE); pmdp_invalidate(vma, addr, pmdp); } else { pgtable_trans_huge_deposit(vma->vm_mm, pmdp, pgtable); -- 2.54.0