Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ea8326f authored by Will Deacon's avatar Will Deacon Committed by Sami Tolvanen
Browse files

UPSTREAM: arm64: move update_mmu_cache() into asm/pgtable.h



Mark Brown reported an allnoconfig build failure in -next:

  Today's linux-next fails to build an arm64 allnoconfig due to "mm:
  make GUP handle pfn mapping unless FOLL_GET is requested" which
  causes:

  >       arm64-allnoconfig
  > ../mm/gup.c:51:4: error: implicit declaration of function
    'update_mmu_cache' [-Werror=implicit-function-declaration]

Fix the error by moving the function to asm/pgtable.h, as is the case
for most other architectures.

Reported-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>

Bug: 31432001
Change-Id: Ifb1ac5a779d6a38d5e7944b6c0056e0d0e98fece
(cherry picked from commit cba3574fd56be8132a19e4aa6b1d41a12c56d990)
Signed-off-by: default avatarSami Tolvanen <samitolvanen@google.com>
parent 2179bd6b
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -517,6 +517,21 @@ extern int kern_addr_valid(unsigned long addr);

#define pgtable_cache_init() do { } while (0)

/*
 * On AArch64, the cache coherency is handled via the set_pte_at() function.
 */
static inline void update_mmu_cache(struct vm_area_struct *vma,
				    unsigned long addr, pte_t *ptep)
{
	/*
	 * set_pte() does not have a DSB for user mappings, so make sure that
	 * the page table write is visible.
	 */
	dsb(ishst);
}

#define update_mmu_cache_pmd(vma, address, pmd) do { } while (0)

#endif /* !__ASSEMBLY__ */

#endif /* __ASM_PGTABLE_H */
+0 −14
Original line number Diff line number Diff line
@@ -154,20 +154,6 @@ static inline void __flush_tlb_pgtable(struct mm_struct *mm,
	asm("tlbi	vae1is, %0" : : "r" (addr));
	dsb(ish);
}
/*
 * On AArch64, the cache coherency is handled via the set_pte_at() function.
 */
static inline void update_mmu_cache(struct vm_area_struct *vma,
				    unsigned long addr, pte_t *ptep)
{
	/*
	 * set_pte() does not have a DSB for user mappings, so make sure that
	 * the page table write is visible.
	 */
	dsb(ishst);
}

#define update_mmu_cache_pmd(vma, address, pmd) do { } while (0)

#endif