--- zzzz-none-000/linux-4.4.271/arch/arm/mm/init.c 2021-06-03 06:22:09.000000000 +0000 +++ hawkeye-5590-750/linux-4.4.271/arch/arm/mm/init.c 2023-04-19 10:22:27.000000000 +0000 @@ -23,7 +23,6 @@ #include #include #include - #include #include #include @@ -152,7 +151,8 @@ */ zone_size[0] = max_low - min; #ifdef CONFIG_HIGHMEM - zone_size[ZONE_HIGHMEM] = max_high - max_low; + if (max_high >= max_low) + zone_size[ZONE_HIGHMEM] = max_high - max_low; #endif /* @@ -272,6 +272,8 @@ early_init_fdt_reserve_self(); early_init_fdt_scan_reserved_mem(); + avm_mtdram_mem_reserve(); + /* reserve memory for DMA contiguous allocations */ dma_contiguous_reserve(arm_dma_limit); @@ -473,6 +475,7 @@ */ void __init mem_init(void) { + #ifdef CONFIG_HAVE_TCM /* These pointers are filled in on TCM detection */ extern u32 dtcm_end; @@ -567,6 +570,7 @@ */ sysctl_overcommit_memory = OVERCOMMIT_ALWAYS; } + } #ifdef CONFIG_ARM_KERNMEM_PERMS @@ -758,11 +762,18 @@ #endif } +#if defined(CONFIG_AVM_ENHANCED) +void __init avm_mtd_cleanup(void); +#endif void free_initmem(void) { fix_kernmem_perms(); free_tcmmem(); +#if defined(CONFIG_AVM_ENHANCED) + avm_mtd_cleanup(); +#endif + poison_init_mem(__init_begin, __init_end - __init_begin); if (!machine_is_integrator() && !machine_is_cintegrator()) free_initmem_default(-1); @@ -793,3 +804,12 @@ __setup("keepinitrd", keepinitrd_setup); #endif + +#ifdef CONFIG_QCA_MINIDUMP +/* Get base address of PGD.*/ +void minidump_get_pgd_info(uint64_t *pt_start, uint64_t *pt_len) +{ + *pt_start = (uintptr_t)swapper_pg_dir; + *pt_len = SZ_16K; +} +#endif