From: Peter Zijlstra <peterz@infradead.org>
To: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Cc: herbert@gondor.apana.org.au, linux-kernel@vger.kernel.org,
Josh Poimboeuf <jpoimboe@redhat.com>,
x86@kernel.org
Subject: Re: [RFC] crypto/sm4: Fix objtool/libelf warning
Date: Thu, 14 Oct 2021 16:56:11 +0200 [thread overview]
Message-ID: <YWhFC6AMutE+a1oK@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <8e35ba6d-f876-4726-a8e7-a0d80b0186f2@linux.alibaba.com>
On Thu, Oct 14, 2021 at 06:29:55PM +0800, Tianjia Zhang wrote:
> Hi Peter,
>
> On 10/8/21 4:22 AM, Peter Zijlstra wrote:
> > Hi,
> >
> > objtool is yielding the obscure libelf warning:
> >
> > vmlinux.o: warning: objtool: elf_update: invalid section entry size
> >
> > Which I tracked down to section:
> >
> > [3023] .rodata.cst164 PROGBITS 0000000000000000 1ab501e0 000154 a4 AM 0 0 16
> >
> > Which has a section size of 0x154 (340) and an entry size of 0xa4 (164).
> > An obvious mis-match.
> >
> > From there, git-grep quickly yields:
> >
> > arch/x86/crypto/sm4-aesni-avx-asm_64.S:.section .rodata.cst164, "aM", @progbits, 164
> > arch/x86/crypto/sm4-aesni-avx2-asm_64.S:.section .rodata.cst164, "aM", @progbits, 164
> >
> > So those files create this .rodata section with an explicit entry size,
> > but then don't respect it themselves. Removing the entry size makes the
> > warning go away, but I can't tell if that's right or not, given there is
> > zero clue as to why that entry size was specified to begin with.
> >
> > Please explain...
> >
> > ---
> > diff --git a/arch/x86/crypto/sm4-aesni-avx-asm_64.S b/arch/x86/crypto/sm4-aesni-avx-asm_64.S
> > index 18d2f5199194..d089cccf4db7 100644
> > --- a/arch/x86/crypto/sm4-aesni-avx-asm_64.S
> > +++ b/arch/x86/crypto/sm4-aesni-avx-asm_64.S
> > @@ -78,7 +78,7 @@
> > vpxor tmp0, x, x;
> > -.section .rodata.cst164, "aM", @progbits, 164
> > +.section .rodata.cst164, "aM", @progbits
> > .align 16
> > /*
> > diff --git a/arch/x86/crypto/sm4-aesni-avx2-asm_64.S b/arch/x86/crypto/sm4-aesni-avx2-asm_64.S
> > index d2ffd7f76ee2..a0f7541c2246 100644
> > --- a/arch/x86/crypto/sm4-aesni-avx2-asm_64.S
> > +++ b/arch/x86/crypto/sm4-aesni-avx2-asm_64.S
> > @@ -93,7 +93,7 @@
> > vpxor tmp0, x, x;
> > -.section .rodata.cst164, "aM", @progbits, 164
> > +.section .rodata.cst164, "aM", @progbits
> > .align 16
> > /*
> >
>
> Thanks for pointing it out, We have also reproduced this error. If the M
> flag is specified, the entry_size argument is required.
Correct.
> We also need to
> consider the clang compiler. This requires a more thorough method to fix it.
> I will post another patch later.
If the purpose is to share the whole section, such that there is only a
single copy of those tables between the two sm4 implementations, then
you need to set the entry size to the total size of the section.
Otoh, almost every entry (with exception of the very last one) seems to
be 16 bytes, so you might just get away with setting the entry size to
16.
Given this is only a very small data table, why the need to share? Any
one machine will only use a single one of these implementations at any
one time.
next prev parent reply other threads:[~2021-10-14 14:58 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-07 20:22 [RFC] crypto/sm4: Fix objtool/libelf warning Peter Zijlstra
2021-10-14 10:29 ` Tianjia Zhang
2021-10-14 14:56 ` Peter Zijlstra [this message]
2021-10-15 3:12 ` Tianjia Zhang
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=YWhFC6AMutE+a1oK@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=herbert@gondor.apana.org.au \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tianjia.zhang@linux.alibaba.com \
--cc=x86@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox