Max, On Fri, Nov 13 2020 at 04:23, Max Filippov wrote: > Fixmap on xtensa grows upwards, i.e. bigger fixmap entry index > corresponds to a higher virtual address. This was lost in highmem > generalization resulting in the following runtime warnings:
Sorry for not noticing. > Fix it by adding __ARCH_HAS_POSITIVE_FIXMAP macro and implementing > vaddr_in_fixmap and fixmap_pte primitives differently depending on > whether it is defined or not. What's wrong with just doing the obvious and making the fixmap defines the other way round? Thanks, tglx --- diff --git a/arch/xtensa/include/asm/fixmap.h b/arch/xtensa/include/asm/fixmap.h index 92049b61c351..ee17e46f3b44 100644 --- a/arch/xtensa/include/asm/fixmap.h +++ b/arch/xtensa/include/asm/fixmap.h @@ -37,8 +37,8 @@ enum fixed_addresses { #ifdef CONFIG_HIGHMEM /* reserved pte's for temporary kernel mappings */ - FIX_KMAP_BEGIN, - FIX_KMAP_END = FIX_KMAP_BEGIN + + FIX_KMAP_END, + FIX_KMAP_BEGIN = FIX_KMAP_END + (KM_MAX_IDX * NR_CPUS * DCACHE_N_COLORS) - 1, #endif __end_of_fixed_addresses