Message ID | 9fa9ba6807c17f93f35a582c199c646c4a8bfd9c.1622800638.git.christophe.leroy@csgroup.eu (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | powerpc: Remove klimit | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch powerpc/merge (112f47a1484ddca610b70cbe4a99f0d0f1701daf) |
snowpatch_ozlabs/build-ppc64le | success | Build succeeded |
snowpatch_ozlabs/build-ppc64be | success | Build succeeded |
snowpatch_ozlabs/build-ppc64e | success | Build succeeded |
snowpatch_ozlabs/build-pmac32 | success | Build succeeded |
snowpatch_ozlabs/checkpatch | warning | total: 1 errors, 0 warnings, 0 checks, 57 lines checked |
snowpatch_ozlabs/needsstable | success | Patch has no Fixes tags |
On 2021/6/4 17:57, Christophe Leroy wrote: > klimit is a global variable initialised at build time with the > value of _end. > > This variable is never modified, so _end symbol can be used directly. > > Remove klimit. Reviewed-by: Kefeng Wang <wangkefeng.wang@huawei.com> > > Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> > Cc: Kefeng Wang <wangkefeng.wang@huawei.com> > --- > arch/powerpc/include/asm/setup.h | 1 - > arch/powerpc/kernel/head_book3s_32.S | 6 ++---- > arch/powerpc/kernel/prom.c | 2 +- > arch/powerpc/kernel/setup-common.c | 4 +--- > arch/powerpc/platforms/powermac/bootx_init.c | 2 +- > 5 files changed, 5 insertions(+), 10 deletions(-) > > diff --git a/arch/powerpc/include/asm/setup.h b/arch/powerpc/include/asm/setup.h > index e89bfebd4e00..6c1a7d217d1a 100644 > --- a/arch/powerpc/include/asm/setup.h > +++ b/arch/powerpc/include/asm/setup.h > @@ -10,7 +10,6 @@ extern void ppc_printk_progress(char *s, unsigned short hex); > extern unsigned int rtas_data; > extern unsigned long long memory_limit; > extern bool init_mem_is_free; > -extern unsigned long klimit; > extern void *zalloc_maybe_bootmem(size_t size, gfp_t mask); > > struct device_node; > diff --git a/arch/powerpc/kernel/head_book3s_32.S b/arch/powerpc/kernel/head_book3s_32.S > index 326262030279..b724e88bcdaf 100644 > --- a/arch/powerpc/kernel/head_book3s_32.S > +++ b/arch/powerpc/kernel/head_book3s_32.S > @@ -766,9 +766,6 @@ PerformanceMonitor: > * the kernel image to physical address PHYSICAL_START. > */ > relocate_kernel: > - addis r9,r26,klimit@ha /* fetch klimit */ > - lwz r25,klimit@l(r9) > - addis r25,r25,-KERNELBASE@h > lis r3,PHYSICAL_START@h /* Destination base address */ > li r6,0 /* Destination offset */ > li r5,0x4000 /* # bytes of memory to copy */ > @@ -776,7 +773,8 @@ relocate_kernel: > addi r0,r3,4f@l /* jump to the address of 4f */ > mtctr r0 /* in copy and do the rest. */ > bctr /* jump to the copy */ > -4: mr r5,r25 > +4: lis r5,_end-KERNELBASE@h > + ori r5,r5,_end-KERNELBASE@l > bl copy_and_flush /* copy the rest */ > b turn_on_mmu > > diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c > index fbe9deebc8e1..f620e04dc9bf 100644 > --- a/arch/powerpc/kernel/prom.c > +++ b/arch/powerpc/kernel/prom.c > @@ -758,7 +758,7 @@ void __init early_init_devtree(void *params) > first_memblock_size = min_t(u64, first_memblock_size, memory_limit); > setup_initial_memory_limit(memstart_addr, first_memblock_size); > /* Reserve MEMBLOCK regions used by kernel, initrd, dt, etc... */ > - memblock_reserve(PHYSICAL_START, __pa(klimit) - PHYSICAL_START); > + memblock_reserve(PHYSICAL_START, __pa(_end) - PHYSICAL_START); > /* If relocatable, reserve first 32k for interrupt vectors etc. */ > if (PHYSICAL_START > MEMORY_START) > memblock_reserve(MEMORY_START, 0x8000); > diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c > index 74a98fff2c2f..138bb7f49ef9 100644 > --- a/arch/powerpc/kernel/setup-common.c > +++ b/arch/powerpc/kernel/setup-common.c > @@ -91,8 +91,6 @@ EXPORT_SYMBOL_GPL(boot_cpuid); > int dcache_bsize; > int icache_bsize; > > -unsigned long klimit = (unsigned long) _end; > - > /* > * This still seems to be needed... -- paulus > */ > @@ -930,7 +928,7 @@ void __init setup_arch(char **cmdline_p) > init_mm.start_code = (unsigned long)_stext; > init_mm.end_code = (unsigned long) _etext; > init_mm.end_data = (unsigned long) _edata; > - init_mm.brk = klimit; > + init_mm.brk = (unsigned long)_end; > > mm_iommu_init(&init_mm); > irqstack_early_init(); > diff --git a/arch/powerpc/platforms/powermac/bootx_init.c b/arch/powerpc/platforms/powermac/bootx_init.c > index 9d4ecd292255..d20ef35e6d9d 100644 > --- a/arch/powerpc/platforms/powermac/bootx_init.c > +++ b/arch/powerpc/platforms/powermac/bootx_init.c > @@ -433,7 +433,7 @@ static void __init btext_welcome(boot_infos_t *bi) > bootx_printf("\nframe buffer at : 0x%x", bi->dispDeviceBase); > bootx_printf(" (phys), 0x%x", bi->logicalDisplayBase); > bootx_printf(" (log)"); > - bootx_printf("\nklimit : 0x%x",(unsigned long)klimit); > + bootx_printf("\nklimit : 0x%x",(unsigned long)_end); > bootx_printf("\nboot_info at : 0x%x", bi); > __asm__ __volatile__ ("mfmsr %0" : "=r" (flags)); > bootx_printf("\nMSR : 0x%x", flags);
On Fri, 4 Jun 2021 09:57:36 +0000 (UTC), Christophe Leroy wrote: > klimit is a global variable initialised at build time with the > value of _end. > > This variable is never modified, so _end symbol can be used directly. > > Remove klimit. Applied to powerpc/next. [1/1] powerpc: Remove klimit https://git.kernel.org/powerpc/c/56afad885228902d090558a0b1cf75e9809e831d cheers
diff --git a/arch/powerpc/include/asm/setup.h b/arch/powerpc/include/asm/setup.h index e89bfebd4e00..6c1a7d217d1a 100644 --- a/arch/powerpc/include/asm/setup.h +++ b/arch/powerpc/include/asm/setup.h @@ -10,7 +10,6 @@ extern void ppc_printk_progress(char *s, unsigned short hex); extern unsigned int rtas_data; extern unsigned long long memory_limit; extern bool init_mem_is_free; -extern unsigned long klimit; extern void *zalloc_maybe_bootmem(size_t size, gfp_t mask); struct device_node; diff --git a/arch/powerpc/kernel/head_book3s_32.S b/arch/powerpc/kernel/head_book3s_32.S index 326262030279..b724e88bcdaf 100644 --- a/arch/powerpc/kernel/head_book3s_32.S +++ b/arch/powerpc/kernel/head_book3s_32.S @@ -766,9 +766,6 @@ PerformanceMonitor: * the kernel image to physical address PHYSICAL_START. */ relocate_kernel: - addis r9,r26,klimit@ha /* fetch klimit */ - lwz r25,klimit@l(r9) - addis r25,r25,-KERNELBASE@h lis r3,PHYSICAL_START@h /* Destination base address */ li r6,0 /* Destination offset */ li r5,0x4000 /* # bytes of memory to copy */ @@ -776,7 +773,8 @@ relocate_kernel: addi r0,r3,4f@l /* jump to the address of 4f */ mtctr r0 /* in copy and do the rest. */ bctr /* jump to the copy */ -4: mr r5,r25 +4: lis r5,_end-KERNELBASE@h + ori r5,r5,_end-KERNELBASE@l bl copy_and_flush /* copy the rest */ b turn_on_mmu diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index fbe9deebc8e1..f620e04dc9bf 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c @@ -758,7 +758,7 @@ void __init early_init_devtree(void *params) first_memblock_size = min_t(u64, first_memblock_size, memory_limit); setup_initial_memory_limit(memstart_addr, first_memblock_size); /* Reserve MEMBLOCK regions used by kernel, initrd, dt, etc... */ - memblock_reserve(PHYSICAL_START, __pa(klimit) - PHYSICAL_START); + memblock_reserve(PHYSICAL_START, __pa(_end) - PHYSICAL_START); /* If relocatable, reserve first 32k for interrupt vectors etc. */ if (PHYSICAL_START > MEMORY_START) memblock_reserve(MEMORY_START, 0x8000); diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c index 74a98fff2c2f..138bb7f49ef9 100644 --- a/arch/powerpc/kernel/setup-common.c +++ b/arch/powerpc/kernel/setup-common.c @@ -91,8 +91,6 @@ EXPORT_SYMBOL_GPL(boot_cpuid); int dcache_bsize; int icache_bsize; -unsigned long klimit = (unsigned long) _end; - /* * This still seems to be needed... -- paulus */ @@ -930,7 +928,7 @@ void __init setup_arch(char **cmdline_p) init_mm.start_code = (unsigned long)_stext; init_mm.end_code = (unsigned long) _etext; init_mm.end_data = (unsigned long) _edata; - init_mm.brk = klimit; + init_mm.brk = (unsigned long)_end; mm_iommu_init(&init_mm); irqstack_early_init(); diff --git a/arch/powerpc/platforms/powermac/bootx_init.c b/arch/powerpc/platforms/powermac/bootx_init.c index 9d4ecd292255..d20ef35e6d9d 100644 --- a/arch/powerpc/platforms/powermac/bootx_init.c +++ b/arch/powerpc/platforms/powermac/bootx_init.c @@ -433,7 +433,7 @@ static void __init btext_welcome(boot_infos_t *bi) bootx_printf("\nframe buffer at : 0x%x", bi->dispDeviceBase); bootx_printf(" (phys), 0x%x", bi->logicalDisplayBase); bootx_printf(" (log)"); - bootx_printf("\nklimit : 0x%x",(unsigned long)klimit); + bootx_printf("\nklimit : 0x%x",(unsigned long)_end); bootx_printf("\nboot_info at : 0x%x", bi); __asm__ __volatile__ ("mfmsr %0" : "=r" (flags)); bootx_printf("\nMSR : 0x%x", flags);
klimit is a global variable initialised at build time with the value of _end. This variable is never modified, so _end symbol can be used directly. Remove klimit. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Cc: Kefeng Wang <wangkefeng.wang@huawei.com> --- arch/powerpc/include/asm/setup.h | 1 - arch/powerpc/kernel/head_book3s_32.S | 6 ++---- arch/powerpc/kernel/prom.c | 2 +- arch/powerpc/kernel/setup-common.c | 4 +--- arch/powerpc/platforms/powermac/bootx_init.c | 2 +- 5 files changed, 5 insertions(+), 10 deletions(-)