[PATCH] arm64: tlb: Flush walk cache when unsharing PMD tables
Zeng Heng
zengheng at huaweicloud.com
Mon May 25 02:20:14 PDT 2026
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 at tencent.com>
Signed-off-by: Xue Xiaowei <blingxue at tencent.com>
Thank you in advance.
Best regards,
Zeng Heng
More information about the linux-arm-kernel
mailing list