--- zzzz-none-000/linux-4.19.183/arch/arm/kernel/module.c 2021-03-24 10:07:39.000000000 +0000 +++ bcm63-7530ax-756/linux-4.19.183/arch/arm/kernel/module.c 2023-06-28 08:54:18.000000000 +0000 @@ -47,17 +47,41 @@ if (IS_ENABLED(CONFIG_ARM_MODULE_PLTS)) gfp_mask |= __GFP_NOWARN; +#if defined(CONFIG_BCM_KF_ARM_KASAN) && defined(CONFIG_KASAN) + p = __vmalloc_node_range(size, MODULE_ALIGN, MODULES_VADDR, MODULES_END, +#else p = __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END, +#endif gfp_mask, PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE, __builtin_return_address(0)); if (!IS_ENABLED(CONFIG_ARM_MODULE_PLTS) || p) return p; +#if defined(CONFIG_BCM_KF_ARM_KASAN) && defined(CONFIG_KASAN) + return __vmalloc_node_range(size, PAGE_SIZE, VMALLOC_START, VMALLOC_END, +#else return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END, +#endif GFP_KERNEL, PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE, __builtin_return_address(0)); } #endif +#ifdef CONFIG_BCM_KF_MISC_BACKPORTS +bool module_init_section(const char *name) +{ + return strstarts(name, ".init") || + strstarts(name, ".ARM.extab.init") || + strstarts(name, ".ARM.exidx.init"); +} + +bool module_exit_section(const char *name) +{ + return strstarts(name, ".exit") || + strstarts(name, ".ARM.extab.exit") || + strstarts(name, ".ARM.exidx.exit"); +} +#endif /* #ifdef CONFIG_BCM_KF_MISC_BACKPORTS */ + int apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, unsigned int relindex, struct module *module)