create_kpti_ng_temp_pgd() was created as an alias for void returning __create_pgd_mapping_locked() and relied on pgtable_alloc() to BUG_ON() if an allocation failure occurred. But as __create_pgd_mapping_locked() has been updated as a part of the error propagation patch to return a non-void value, update create_kpti_ng_temp_pgd() to act as a wrapper around __create_pgd_mapping_locked() and BUG_ON() on ret being a non zero value. Signed-off-by: Chaitanya S Prakash --- arch/arm64/mm/mmu.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c index db7f45ef16574..19cbabceb38bd 100644 --- a/arch/arm64/mm/mmu.c +++ b/arch/arm64/mm/mmu.c @@ -76,6 +76,14 @@ EXPORT_SYMBOL(empty_zero_page); static DEFINE_SPINLOCK(swapper_pgdir_lock); static DEFINE_MUTEX(fixmap_lock); +#ifdef CONFIG_UNMAP_KERNEL_AT_EL0 +void create_kpti_ng_temp_pgd(pgd_t *pgdir, phys_addr_t phys, + unsigned long virt, phys_addr_t size, + pgprot_t prot, + phys_addr_t (*pgtable_alloc)(enum pgtable_type), + int flags); +#endif + void noinstr set_swapper_pgd(pgd_t *pgdp, pgd_t pgd) { pgd_t *fixmap_pgdp; @@ -541,11 +549,17 @@ static void ___create_pgd_mapping(pgd_t *pgdir, phys_addr_t phys, } #ifdef CONFIG_UNMAP_KERNEL_AT_EL0 -extern __alias(__create_pgd_mapping_locked) void create_kpti_ng_temp_pgd(pgd_t *pgdir, phys_addr_t phys, unsigned long virt, phys_addr_t size, pgprot_t prot, phys_addr_t (*pgtable_alloc)(enum pgtable_type), - int flags); + int flags) +{ + int ret = 0; + + ret = __create_pgd_mapping_locked(pgdir, phys, virt, size, prot, + pgtable_alloc, flags); + BUG_ON(ret); +} #endif static phys_addr_t __pgd_pgtable_alloc(struct mm_struct *mm, -- 2.34.1