Re: [PATCH] arm64: tlb: Flush walk cache when unsharing PMD tables

From: Zeng Heng

Date: Mon May 25 2026 - 05:20:46 EST


Hi Catalin,


On 2026/5/22 18:42, Catalin Marinas wrote:
On Thu, 21 May 2026 15:30:11 +0800, Zeng Heng wrote:
When huge_pmd_unshare() is called to unshare a PMD table, the
tlb_unshare_pmd_ptdesc() function sets tlb->unshared_tables=true
but the aarch64 tlb_flush() only checked tlb->freed_tables to
determine whether to use TLBF_NONE (vae1is, invalidates walk
cache) or TLBF_NOWALKCACHE (vale1is, leaf-only).

This caused the stale PMD page table entry to remain in the walk cache
after unshare, potentially leading to incorrect page table walks.

[...]
Applied to arm64 (for-next/fixes), thanks!

[1/1] arm64: tlb: Flush walk cache when unsharing PMD tables
https://git.kernel.org/arm64/c/c2ff4764e03e

This original issue was reported by our customer, who also participated
in the root cause analysis and resolution.

Could you please help add the below tags:

Co-developed-by: Xue Xiaowei <blingxue@xxxxxxxxxxx>
Signed-off-by: Xue Xiaowei <blingxue@xxxxxxxxxxx>

Thank you in advance.


Best regards,
Zeng Heng