All of lore.kernel.org
 help / color / mirror / Atom feed
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);

  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: link
Be 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.