lkml.org 
[lkml]   [2021]   [Jun]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH] powerpc: Remove klimit
    From
    Date

    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);

    \
     
     \ /
      Last update: 2021-06-05 04:13    [W:3.969 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site