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  linux-cve-announce  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, 26 Feb 2016 21:21:22 +0100
From:	Arnd Bergmann <arnd@...db.de>
To:	linux-arm-kernel@...ts.infradead.org
Cc:	Ard Biesheuvel <ard.biesheuvel@...aro.org>, mmarek@...e.cz,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] kallsyms: ignore ARM mode switching veneers

On Friday 26 February 2016 20:50:54 Ard Biesheuvel wrote:
> On ARM, the linker may emit veneers to deal with relative branch
> instructions that appear too far away from their targets. Since the second
> kallsyms pass results in an increase of the kernel size, it may result in
> additional veneers to be emitted, potentially affecting the output of
> kallsyms itself if these symbols are visible to it, and for that reason,
> symbols whose names end in '_veneer' are ignored explicitly.
> 
> However, when building Thumb2 kernels, such veneers are named differently
> if they also incur a mode switch, and since they are not filtered by
> kallsyms, they may cause the build to fail. So filter symbols whose names
> end in '_from_arm' or '_from_thumb' as well.
> 
> Cc: Arnd Bergmann <arnd@...db.de>
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@...aro.org>


Thanks again for debugging this!

I have two (randconfig) configurations that ran into this problem, and they
are both with your patch

Tested-by: Arnd Bergmann <arnd@...db.de>

>  scripts/kallsyms.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
> index 8fa81e84e295..e2379de76563 100644
> --- a/scripts/kallsyms.c
> +++ b/scripts/kallsyms.c
> @@ -215,6 +215,8 @@ static int symbol_valid(struct sym_entry *s)
>  
>  	static char *special_suffixes[] = {
>  		"_veneer",		/* arm */
> +		"_from_arm",		/* arm */
> +		"_from_thumb",		/* arm */
>  		NULL };
>  
>  	int i;
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ