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:   Thu, 7 Dec 2017 11:24:01 -0200
From:   Desnes Augusto Nunes do Rosário 
        <desnesn@...ux.vnet.ibm.com>
To:     Michael Ellerman <mpe@...erman.id.au>,
        linuxppc-dev@...ts.ozlabs.org, linux-kernel@...r.kernel.org,
        amodra@...il.com
Cc:     benh@...nel.crashing.org, paulus@...ba.org,
        ard.biesheuvel@...aro.org, rusty@...tcorp.com.au
Subject: Re: [PATCH] [powerpc-next] Fix powerpc64 alignment of .toc section in
 kernel modules

Hello Michael,

On 12/07/2017 10:25 AM, Michael Ellerman wrote:
> Hi Desnes,
> 
> Am I right that Alan largely wrote this patch?
> 
> If so it should probably be From: him, so that he is the author in the
> git log.

Yes, Alan Modra is the main author and I am just committing it with 
minor changes. Thus, the author change is necessary.

> 
> 
> Desnes Augusto Nunes do Rosario <desnesn@...ux.vnet.ibm.com> writes:
>> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
>> index 1381693..c472f5b 100644
>> --- a/arch/powerpc/Makefile
>> +++ b/arch/powerpc/Makefile
>> @@ -63,6 +63,7 @@ UTS_MACHINE := $(subst $(space),,$(machine-y))
>>   ifdef CONFIG_PPC32
>>   KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
>>   else
>> +KBUILD_LDFLAGS_MODULE += -T arch/powerpc/kernel/module.lds
> 
> This needs to be:
> 
> KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/powerpc/kernel/module.lds
> 
> Otherwise building with O=../build fails with:
> 
>    ld: cannot open linker script file arch/powerpc/kernel/module.lds: No such file or directory
> 
> I'll fix it up.

Indeed; this change is necessary to avoid any path errors.

> 
>> diff --git a/arch/powerpc/kernel/module_64.c b/arch/powerpc/kernel/module_64.c
>> index 759104b..9b2c5c1 100644
>> --- a/arch/powerpc/kernel/module_64.c
>> +++ b/arch/powerpc/kernel/module_64.c
>> @@ -374,11 +377,13 @@ int module_frob_arch_sections(Elf64_Ehdr *hdr,
>>   }
>>   
>>   /* r2 is the TOC pointer: it actually points 0x8000 into the TOC (this
>> -   gives the value maximum span in an instruction which uses a signed
>> -   offset) */
>> + * gives the value maximum span in an instruction which uses a signed
>> + * offset).  Round down to a 256 byte boundary for the odd case where
>> + * we are setting up r2 without a .toc section.
>> + */
>>   static inline unsigned long my_r2(const Elf64_Shdr *sechdrs, struct module *me)
>>   {
>> -	return sechdrs[me->arch.toc_section].sh_addr + 0x8000;
>> +	return (sechdrs[me->arch.toc_section].sh_addr & -256) + 0x8000;
> 
> I think it's more typical in the kernel to write -256 as ~0xff.
> 
> Again I can fix it up.

Good to know!

> 
> cheers
> 

Lastly, will you fix it up or do you want me to send a second version 
then? Whatever is best for you.

Thank you for the review.

-- 
Desnes Augusto Nunes do Rosário
------------------------------------------

Linux Developer - IBM / Brazil
M.Sc. in Electrical and Computer Engineering - UFRN

(11) 9595-30-900
desnesn@...ibm.com

Powered by blists - more mailing lists