[PATCH v8 4/5] arm64: mm: split linear mapping if BBML2 unsupported on secondary CPUs

Arnd Bergmann arnd at arndb.de
Sun Feb 1 23:18:17 PST 2026


On Wed, Sep 17, 2025, at 21:02, Yang Shi wrote:

> +	.pushsection ".idmap.text", "a"
> +SYM_TYPED_FUNC_START(wait_linear_map_split_to_ptes)
> +	/* Must be same registers as in idmap_kpti_install_ng_mappings */
> +	swapper_ttb	.req	x3
> +	flag_ptr	.req	x4
> +
> +	mrs     swapper_ttb, ttbr1_el1
> +	adr_l   flag_ptr, idmap_kpti_bbml2_flag
> +	__idmap_cpu_set_reserved_ttbr1 x16, x17

I'm getting build failures here, using CONFIG_CFI using clang-21:

ld.lld-21: error: undefined symbol: __kcfi_typeid_wait_linear_map_split_to_ptes
>>> referenced by arch/arm64/mm/proc.o:(.idmap.text+0x298) in archive vmlinux.a

I can get it to build by using plain SYM_FUNC_START() instead of
SYM_TYPED_FUNC_START(), but I have no idea if that makes any sense:

--- a/arch/arm64/mm/proc.S
+++ b/arch/arm64/mm/proc.S
@@ -439,7 +439,7 @@ SYM_FUNC_END(idmap_kpti_install_ng_mappings)
 #endif
 
        .pushsection ".idmap.text", "a"
-SYM_TYPED_FUNC_START(wait_linear_map_split_to_ptes)
+SYM_FUNC_START(wait_linear_map_split_to_ptes)
        /* Must be same registers as in idmap_kpti_install_ng_mappings */
        swapper_ttb     .req    x3
        flag_ptr        .req    x4

      Arnd



More information about the linux-arm-kernel mailing list