+25
−5
Loading
It has been reported that since commit 752a0d1d ("arm64: mm: Provide level hint for flush_tlb_page()"), the arm64 check_hugetlb_options selftest has been locking up while running "Check child hugetlb memory with private mapping, sync error mode and mmap memory". This is due to hugetlb (and THP) helpers casting their PMD/PUD entries to PTE and calling __ptep_set_access_flags(), which issues a __flush_tlb_page(). Now that this is hinted for level 3, in this case, the TLB entry does not get evicted and we end up in a spurious fault loop. Fix this by creating a __ptep_set_access_flags_anysz() function which takes the pgsize of the entry. It can then add the appropriate hint. The "_anysz" approach is the established pattern for problems of this class. Reported-by:Aishwarya TCV <Aishwarya.TCV@arm.com> Fixes: 752a0d1d ("arm64: mm: Provide level hint for flush_tlb_page()") Signed-off-by:
Ryan Roberts <ryan.roberts@arm.com> Signed-off-by:
Catalin Marinas <catalin.marinas@arm.com>