lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 20 Nov 2020 14:31:34 +0100
From:   Michal Simek <monstr@...str.eu>
To:     Youling Tang <tangyouling@...ngson.cn>,
        Stefan Asserhall <stefan.asserhall@...inx.com>,
        Arnd Bergmann <arnd@...db.de>
Cc:     linux-kernel@...r.kernel.org
Subject: Re: [PATCH] microblaze: Use the common INIT_DATA_SECTION macro in
 vmlinux.lds.S

Hi,

On 19. 11. 20 2:40, Youling Tang wrote:
> Use the common INIT_DATA_SECTION rule for the linker script in an effort
> to regularize the linker script.
> 
> Signed-off-by: Youling Tang <tangyouling@...ngson.cn>
> ---
>  arch/microblaze/kernel/vmlinux.lds.S | 24 +-----------------------
>  1 file changed, 1 insertion(+), 23 deletions(-)
> 
> diff --git a/arch/microblaze/kernel/vmlinux.lds.S b/arch/microblaze/kernel/vmlinux.lds.S
> index df07b3d..527ebfc 100644
> --- a/arch/microblaze/kernel/vmlinux.lds.S
> +++ b/arch/microblaze/kernel/vmlinux.lds.S
> @@ -96,10 +96,7 @@ SECTIONS {
>  	__init_begin = .;
>  
>  	INIT_TEXT_SECTION(PAGE_SIZE)
> -
> -	.init.data : AT(ADDR(.init.data) - LOAD_OFFSET) {
> -		INIT_DATA
> -	}
> +	INIT_DATA_SECTION(0)
>  
>  	. = ALIGN(4);
>  	.init.ivt : AT(ADDR(.init.ivt) - LOAD_OFFSET) {
> @@ -107,25 +104,6 @@ SECTIONS {
>  		*(.init.ivt)
>  		__ivt_end = .;
>  	}
> -
> -	.init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) {
> -		INIT_SETUP(0)
> -	}
> -
> -	.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET ) {
> -		INIT_CALLS
> -	}
> -
> -	.con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) {
> -		CON_INITCALL
> -	}
> -
> -	__init_end_before_initramfs = .;
> -
> -	.init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) {
> -		INIT_RAM_FS
> -	}
> -
>  	__init_end = .;
>  
>  	.bss ALIGN (PAGE_SIZE) : AT(ADDR(.bss) - LOAD_OFFSET) {
> 

Thanks for the patch but I can't accept it because recently we found
that there needs to be some resorting in linker to be able to boot.
The issue is that INIT_RAMFS_FS section is text/data/init and bss.
But because microblaze in early code is using two TLBs (16M) each for
early mapping and you have big initramfs bss section is unreachable.
That's why these sections needs to be swapped.
Maybe bss section can be moved up before INIT_DATA_SECTION maybe even
before INIT_TEXT_SECTION and we should be fine.

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal SoCs



Powered by blists - more mailing lists