| From 6aaf49b495b446ff6eec0ac983f781ca0dc56a73 Mon Sep 17 00:00:00 2001 |
| From: Leonard Crestez <leonard.crestez@nxp.com> |
| Date: Tue, 13 Mar 2018 22:17:23 +0200 |
| Subject: crypto: arm,arm64 - Fix random regeneration of S_shipped |
| |
| From: Leonard Crestez <leonard.crestez@nxp.com> |
| |
| commit 6aaf49b495b446ff6eec0ac983f781ca0dc56a73 upstream. |
| |
| The decision to rebuild .S_shipped is made based on the relative |
| timestamps of .S_shipped and .pl files but git makes this essentially |
| random. This means that the perl script might run anyway (usually at |
| most once per checkout), defeating the whole purpose of _shipped. |
| |
| Fix by skipping the rule unless explicit make variables are provided: |
| REGENERATE_ARM_CRYPTO or REGENERATE_ARM64_CRYPTO. |
| |
| This can produce nasty occasional build failures downstream, for example |
| for toolchains with broken perl. The solution is minimally intrusive to |
| make it easier to push into stable. |
| |
| Another report on a similar issue here: https://lkml.org/lkml/2018/3/8/1379 |
| |
| Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com> |
| Cc: <stable@vger.kernel.org> |
| Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
| Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/arm/crypto/Makefile | 2 ++ |
| arch/arm64/crypto/Makefile | 2 ++ |
| 2 files changed, 4 insertions(+) |
| |
| --- a/arch/arm/crypto/Makefile |
| +++ b/arch/arm/crypto/Makefile |
| @@ -54,6 +54,7 @@ crct10dif-arm-ce-y := crct10dif-ce-core. |
| crc32-arm-ce-y:= crc32-ce-core.o crc32-ce-glue.o |
| chacha20-neon-y := chacha20-neon-core.o chacha20-neon-glue.o |
| |
| +ifdef REGENERATE_ARM_CRYPTO |
| quiet_cmd_perl = PERL $@ |
| cmd_perl = $(PERL) $(<) > $(@) |
| |
| @@ -62,5 +63,6 @@ $(src)/sha256-core.S_shipped: $(src)/sha |
| |
| $(src)/sha512-core.S_shipped: $(src)/sha512-armv4.pl |
| $(call cmd,perl) |
| +endif |
| |
| .PRECIOUS: $(obj)/sha256-core.S $(obj)/sha512-core.S |
| --- a/arch/arm64/crypto/Makefile |
| +++ b/arch/arm64/crypto/Makefile |
| @@ -67,6 +67,7 @@ CFLAGS_aes-glue-ce.o := -DUSE_V8_CRYPTO_ |
| $(obj)/aes-glue-%.o: $(src)/aes-glue.c FORCE |
| $(call if_changed_rule,cc_o_c) |
| |
| +ifdef REGENERATE_ARM64_CRYPTO |
| quiet_cmd_perlasm = PERLASM $@ |
| cmd_perlasm = $(PERL) $(<) void $(@) |
| |
| @@ -75,5 +76,6 @@ $(src)/sha256-core.S_shipped: $(src)/sha |
| |
| $(src)/sha512-core.S_shipped: $(src)/sha512-armv8.pl |
| $(call cmd,perlasm) |
| +endif |
| |
| .PRECIOUS: $(obj)/sha256-core.S $(obj)/sha512-core.S |