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

From: Catalin Marinas

Date: Tue May 26 2026 - 09:04:28 EST


On Mon, May 25, 2026 at 05:20:14PM +0800, Zeng Heng wrote:
> 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.

Too late unfortunately, the pull request went in on Friday. It will be
in the list archives though.

--
Catalin