From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] crypto: arm64/crc32 - detect crc32 support in assembler
Date: Fri, 27 Jan 2017 10:52:45 +0000 [thread overview]
Message-ID: <20170127105244.GF21144@arm.com> (raw)
In-Reply-To: <CAKv+Gu8P3U6_u7FdRFSdDL9jdKaJQuqHbrQ-7Qu900f8R1voZw@mail.gmail.com>
On Fri, Jan 27, 2017 at 10:43:16AM +0000, Ard Biesheuvel wrote:
> On 27 January 2017 at 10:40, Matthias Brugger <mbrugger@suse.com> wrote:
> > Older compilers may not be able to detect the crc32 extended cpu type.
>
> What do you mean 'detect'? Could you describe the failure in more detail
> please?
>
> > Anyway only inline assembler code is used, which gets passed to the
> > assembler. This patch moves the crc detection to the assembler.
> >
> > Suggested-by: Alexander Graf <agraf@suse.de>
> > Signed-off-by: Matthias Brugger <mbrugger@suse.com>
> > ---
> > arch/arm64/crypto/Makefile | 2 --
> > arch/arm64/crypto/crc32-arm64.c | 3 +++
> > 2 files changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/arm64/crypto/Makefile b/arch/arm64/crypto/Makefile
> > index aa8888d7b744..0d779dac75cd 100644
> > --- a/arch/arm64/crypto/Makefile
> > +++ b/arch/arm64/crypto/Makefile
> > @@ -48,8 +48,6 @@ CFLAGS_aes-glue-ce.o := -DUSE_V8_CRYPTO_EXTENSIONS
> >
> > obj-$(CONFIG_CRYPTO_CRC32_ARM64) += crc32-arm64.o
> >
> > -CFLAGS_crc32-arm64.o := -mcpu=generic+crc
> > -
> > $(obj)/aes-glue-%.o: $(src)/aes-glue.c FORCE
> > $(call if_changed_rule,cc_o_c)
> >
> > diff --git a/arch/arm64/crypto/crc32-arm64.c b/arch/arm64/crypto/crc32-arm64.c
> > index 6a37c3c6b11d..10f5dd075323 100644
> > --- a/arch/arm64/crypto/crc32-arm64.c
> > +++ b/arch/arm64/crypto/crc32-arm64.c
> > @@ -29,6 +29,9 @@ MODULE_AUTHOR("Yazen Ghannam <yazen.ghannam@linaro.org>");
> > MODULE_DESCRIPTION("CRC32 and CRC32C using optional ARMv8 instructions");
> > MODULE_LICENSE("GPL v2");
> >
> > +/* Request crc extension capabilities from the assembler */
> > +asm(".arch_extension crc");
> > +
>
> Will should confirm, but I think this is a recent feature in GAS for
> AArch64, so this may break older toolchains as well.
Yes, the .arch_extension directive isn't universally supported by AArch64
gas so we can't rely on it unconditionally. The best bet is to check for
the support and, if it's not present, then disable whatever feature relies
on it. See the lseinstr variable in Makefile.
Will
next prev parent reply other threads:[~2017-01-27 10:52 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20170127104039.29351-1-mbrugger@suse.com>
2017-01-27 10:43 ` [PATCH] crypto: arm64/crc32 - detect crc32 support in assembler Ard Biesheuvel
2017-01-27 10:52 ` Will Deacon [this message]
2017-02-01 9:07 ` Ard Biesheuvel
2017-02-01 9:43 ` Ard Biesheuvel
2017-02-01 13:58 ` Alexander Graf
2017-02-01 15:12 ` Ard Biesheuvel
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=20170127105244.GF21144@arm.com \
--to=will.deacon@arm.com \
--cc=linux-arm-kernel@lists.infradead.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;
as well as URLs for NNTP newsgroup(s).