From: Kefeng Wang <wangkefeng.wang@huawei.com> To: Christophe Leroy <christophe.leroy@csgroup.eu>, Benjamin Herrenschmidt <benh@kernel.crashing.org>, Paul Mackerras <paulus@samba.org>, "Michael Ellerman" <mpe@ellerman.id.au> Cc: <linux-kernel@vger.kernel.org>, <linuxppc-dev@lists.ozlabs.org> Subject: Re: [PATCH] powerpc: Remove klimit Date: Sat, 5 Jun 2021 10:10:57 +0800 [thread overview] Message-ID: <99bdf356-4698-56eb-c3b0-3e4069d01c07@huawei.com> (raw) In-Reply-To: <9fa9ba6807c17f93f35a582c199c646c4a8bfd9c.1622800638.git.christophe.leroy@csgroup.eu> 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);
WARNING: multiple messages have this Message-ID (diff)
From: Kefeng Wang <wangkefeng.wang@huawei.com> To: Christophe Leroy <christophe.leroy@csgroup.eu>, Benjamin Herrenschmidt <benh@kernel.crashing.org>, Paul Mackerras <paulus@samba.org>, "Michael Ellerman" <mpe@ellerman.id.au> Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] powerpc: Remove klimit Date: Sat, 5 Jun 2021 10:10:57 +0800 [thread overview] Message-ID: <99bdf356-4698-56eb-c3b0-3e4069d01c07@huawei.com> (raw) In-Reply-To: <9fa9ba6807c17f93f35a582c199c646c4a8bfd9c.1622800638.git.christophe.leroy@csgroup.eu> 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);
next prev parent reply other threads:[~2021-06-05 2:11 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-06-04 9:57 [PATCH] powerpc: Remove klimit Christophe Leroy 2021-06-04 9:57 ` Christophe Leroy 2021-06-05 2:10 ` Kefeng Wang [this message] 2021-06-05 2:10 ` Kefeng Wang 2021-06-26 10:37 ` Michael Ellerman
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=99bdf356-4698-56eb-c3b0-3e4069d01c07@huawei.com \ --to=wangkefeng.wang@huawei.com \ --cc=benh@kernel.crashing.org \ --cc=christophe.leroy@csgroup.eu \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=mpe@ellerman.id.au \ --cc=paulus@samba.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.