arm64: mm: drop fixup_init() and mm.h
PATCH 1/1 arm64: mm: drop fixup_init() and mm.h
There is only fixup_init() in mm.h , and it is only called in free_initmem(), so move the codes from fixup_init() into free_initmem(), then drop fixup_init() and mm.h.
--- arch/arm64/mm/flush.c | 2 -- arch/arm64/mm/init.c | 9 ++++++--- arch/arm64/mm/mm.h | 2 -- arch/arm64/mm/mmu.c | 12 ------------ arch/arm64/mm/pgd.c | 2 -- 5 files changed, 6 insertions(+), 21 deletions(-) delete mode 100644 arch/arm64/mm/mm.h
arch/arm64/mm/flush.c +0 -2
@@ -25,8 +25,6 @@#include <asm/cachetype.h> #include <asm/tlbflush.h> -#include "mm.h" -void flush_cache_range (struct vm_area_struct *vma,unsigned long start,unsigned long end) {
arch/arm64/mm/init.c +6 -3
@@ -47,8 +47,6 @@#include <asm/tlb.h> #include <asm/alternative.h> -#include "mm.h" -/* * We need to be able to catch inadvertent references to memstart_addr * that occur (potentially in generic code) before arm64_memblock_init()
@@ -485,7 +483,12 @@ void free_initmem(void) {free_reserved_area (__va (__pa (__init_begin)),__va (__pa (__init_end)),0 ,"unused kernel" ); -fixup_init (); +/* +* Unmap the __init region but leave the VM area in place. This +* prevents the region from being reused for kernel modules, which +* is not supported by kallsyms. +*/ +unmap_kernel_range ((u64 )__init_begin, (u64)(__init_end - __init_begin)); }#ifdef CONFIG_BLK_DEV_INITRD
arch/arm64/mm/mm.h deleted +0 -2
@@ -1,2 +0,0 @@ - -void fixup_init (void );
arch/arm64/mm/mmu.c +0 -12
@@ -42,8 +42,6 @@#include <asm/memblock.h> #include <asm/mmu_context.h> -#include "mm.h" -u64 idmap_t0sz =TCR_T0SZ (VA_BITS );u64 kimage_voffset__read_mostly ;
@@ -399,16 +397,6 @@ void mark_rodata_ro(void) section_size, PAGE_KERNEL_RO); } -void fixup_init (void ) -{ -/* -* Unmap the __init region but leave the VM area in place. This -* prevents the region from being reused for kernel modules, which -* is not supported by kallsyms. -*/ -unmap_kernel_range ((u64 )__init_begin, (u64)(__init_end - __init_begin)); -} -static void __init map_kernel_segment (pgd_t *pgd,void *va_start,void *va_end,pgprot_t prot,struct vm_struct *vma) {
arch/arm64/mm/pgd.c +0 -2
@@ -26,8 +26,6 @@#include <asm/page.h> #include <asm/tlbflush.h> -#include "mm.h" -static struct kmem_cache *pgd_cache;pgd_t *pgd_alloc (struct mm_struct *mm)
Signature · 1 line
1.7.12.4
Mark Rutland
reviewerPATCH 1/1 arm64: mm: drop fixup_init() and mm.h
Quoted 3 lines · Kefeng Wang
There is only
fixup_init()inmm.h, and it is only called infree_initmem(), so move the codes fromfixup_init()intofree_initmem(), then dropfixup_init()andmm.h.
[...]
Quoted 11 lines
+++
b/arch/arm64/mm/init.carch/arm64/mm/init.c +0
-2@@ -47,8 +47,6 @@#include <asm/tlb.h> #include <asm/alternative.h> -#include "mm.h" -/* * We need to be able to catch inadvertent references to memstart_addr * that occur (potentially in generic code) before arm64_memblock_init()
arch/arm64/mm/init.c void free_initmem(void) · line 491
Quoted 10 lines
arch/arm64/mm/init.c +6
-1@@ -485,7 +483,12 @@ void free_initmem(void) {free_reserved_area (__va (__pa (__init_begin)),__va (__pa (__init_end)),0 ,"unused kernel" ); -fixup_init (); +/* +* Unmap the __init region but leave the VM area in place. This +* prevents the region from being reused for kernel modules, which +* is not supported by kallsyms. +*/ +unmap_kernel_range ((u64 )__init_begin, (u64)(__init_end - __init_begin));
Please also include <linux/vmalloc.h> above. That is where the prototype of unmap_kernel_range is defined.
We were getting away without that in mm/mmu.c, but we should fix it up now.
Otherwise, the patch looks good to me. With the above fixed up:
Thanks,
Mark.
PATCH v2 1/1 arm64: mm: drop fixup_init() and mm.h
There is only fixup_init() in mm.h , and it is only called in free_initmem(), so move the codes from fixup_init() into free_initmem(), then drop fixup_init() and mm.h.
---
v1->v2:
1) Add missing include <linux/vmalloc.h> for unmap_kernel_range(), suggested-by Mark Rutland.
2) Add Mark's acked-by.
arch/arm64/mm/flush.c | 2 -- arch/arm64/mm/init.c | 10 +++++++--- arch/arm64/mm/mm.h | 2 -- arch/arm64/mm/mmu.c | 12 ------------ arch/arm64/mm/pgd.c | 2 -- 5 files changed, 7 insertions(+), 21 deletions(-) delete mode 100644 arch/arm64/mm/mm.h
arch/arm64/mm/flush.c +0 -2
@@ -25,8 +25,6 @@#include <asm/cachetype.h> #include <asm/tlbflush.h> -#include "mm.h" -void flush_cache_range (struct vm_area_struct *vma,unsigned long start,unsigned long end) {
arch/arm64/mm/init.c +7 -3
@@ -34,6 +34,7 @@#include <linux/dma-contiguous.h> #include <linux/efi.h> #include <linux/swiotlb.h> +#include <linux/vmalloc.h> #include <asm/boot.h> #include <asm/fixmap.h>
@@ -47,8 +48,6 @@#include <asm/tlb.h> #include <asm/alternative.h> -#include "mm.h" -/* * We need to be able to catch inadvertent references to memstart_addr * that occur (potentially in generic code) before arm64_memblock_init()
@@ -485,7 +484,12 @@ void free_initmem(void) {free_reserved_area (__va (__pa (__init_begin)),__va (__pa (__init_end)),0 ,"unused kernel" ); -fixup_init (); +/* +* Unmap the __init region but leave the VM area in place. This +* prevents the region from being reused for kernel modules, which +* is not supported by kallsyms. +*/ +unmap_kernel_range ((u64 )__init_begin, (u64)(__init_end - __init_begin)); }#ifdef CONFIG_BLK_DEV_INITRD
arch/arm64/mm/mm.h deleted +0 -2
@@ -1,2 +0,0 @@ - -void fixup_init (void );
arch/arm64/mm/mmu.c +0 -12
@@ -42,8 +42,6 @@#include <asm/memblock.h> #include <asm/mmu_context.h> -#include "mm.h" -u64 idmap_t0sz =TCR_T0SZ (VA_BITS );u64 kimage_voffset__read_mostly ;
@@ -399,16 +397,6 @@ void mark_rodata_ro(void) section_size, PAGE_KERNEL_RO); } -void fixup_init (void ) -{ -/* -* Unmap the __init region but leave the VM area in place. This -* prevents the region from being reused for kernel modules, which -* is not supported by kallsyms. -*/ -unmap_kernel_range ((u64 )__init_begin, (u64)(__init_end - __init_begin)); -} -static void __init map_kernel_segment (pgd_t *pgd,void *va_start,void *va_end,pgprot_t prot,struct vm_struct *vma) {
arch/arm64/mm/pgd.c +0 -2
@@ -26,8 +26,6 @@#include <asm/page.h> #include <asm/tlbflush.h> -#include "mm.h" -static struct kmem_cache *pgd_cache;pgd_t *pgd_alloc (struct mm_struct *mm)
Signature · 1 line
1.7.12.4