2020-03-26 08:05:14

by Masahiro Yamada

[permalink] [raw]
Subject: [PATCH v2 00/16] x86, crypto: remove always-defined CONFIG_AS_* and cosolidate Kconfig/Makefiles

This series of cleanups was prompted by Linus:
https://lkml.org/lkml/2020/3/12/726

First, this series drop always-on CONFIG_AS_* options.
Some of those options were introduced in old days.
For example, the check for CONFIG_AS_CFI dates back to 2006.

We raise the minimal tool versions from time to time.
Currently, we require binutils 2.21
(and we even plan to bump it to 2.23).

After cleaning away the old checks,
as-instr calls are moved to Kconfig from Makefiles,
then more Kconfig / Makefile code is cleaned up.

I folded all relevanet patches into this series,
as suggested by Jason A. Donenfeld.

The update for v2 is quite small.
I just swapped the patch order of patch 8 and 11
instead of moving comments around files,
which was addressed by Nick Desaulniers.


Borislav Petkov (1):
Documentation/changes: Raise minimum supported binutils version to
2.23

Jason A. Donenfeld (4):
x86: probe assembler capabilities via kconfig instead of makefile
crypto: x86 - rework configuration based on Kconfig
crypto: curve25519 - do not pollute dispatcher based on assembler
x86: update AS_* macros to binutils >=2.23, supporting ADX and AVX2

Masahiro Yamada (11):
lib/raid6/test: fix build on distros whose /bin/sh is not bash
x86: remove unneeded defined(__ASSEMBLY__) check from asm/dwarf2.h
x86: remove always-defined CONFIG_AS_CFI
x86: remove unneeded (CONFIG_AS_)CFI_SIGNAL_FRAME
x86: remove always-defined CONFIG_AS_CFI_SECTIONS
x86: remove always-defined CONFIG_AS_SSSE3
x86: remove always-defined CONFIG_AS_AVX
x86: replace arch macros from compiler with CONFIG_X86_{32,64}
drm/i915: remove always-defined CONFIG_AS_MOVNTDQA
x86: add comments about the binutils version to support code in
as-instr
crypto: x86 - clean up poly1305-x86_64-cryptogams.S by 'make clean'

Documentation/process/changes.rst | 4 +-
arch/x86/Kconfig | 2 +
arch/x86/Kconfig.assembler | 17 ++
arch/x86/Makefile | 22 ---
arch/x86/crypto/Makefile | 162 +++++++-----------
arch/x86/crypto/aesni-intel_avx-x86_64.S | 6 -
arch/x86/crypto/aesni-intel_glue.c | 21 +--
arch/x86/crypto/blake2s-core.S | 2 -
arch/x86/crypto/chacha_glue.c | 6 +-
arch/x86/crypto/poly1305-x86_64-cryptogams.pl | 16 --
arch/x86/crypto/poly1305_glue.c | 11 +-
arch/x86/crypto/sha1_ssse3_asm.S | 4 -
arch/x86/crypto/sha1_ssse3_glue.c | 13 --
arch/x86/crypto/sha256-avx-asm.S | 3 -
arch/x86/crypto/sha256-avx2-asm.S | 3 -
arch/x86/crypto/sha256_ssse3_glue.c | 12 --
arch/x86/crypto/sha512-avx-asm.S | 2 -
arch/x86/crypto/sha512-avx2-asm.S | 3 -
arch/x86/crypto/sha512_ssse3_glue.c | 10 --
arch/x86/include/asm/dwarf2.h | 44 -----
arch/x86/include/asm/xor_avx.h | 9 -
drivers/gpu/drm/i915/Makefile | 3 -
drivers/gpu/drm/i915/i915_memcpy.c | 5 -
include/crypto/curve25519.h | 6 +-
kernel/signal.c | 2 +-
lib/raid6/algos.c | 12 +-
lib/raid6/avx2.c | 4 -
lib/raid6/recov_avx2.c | 6 -
lib/raid6/recov_ssse3.c | 6 -
lib/raid6/test/Makefile | 9 +-
30 files changed, 101 insertions(+), 324 deletions(-)
create mode 100644 arch/x86/Kconfig.assembler

--
2.17.1


2020-03-26 08:06:16

by Masahiro Yamada

[permalink] [raw]
Subject: [PATCH v2 16/16] crypto: x86 - clean up poly1305-x86_64-cryptogams.S by 'make clean'

poly1305-x86_64-cryptogams.S is a generated file, so it should be
cleaned up by 'make clean'.

Assigning it to the variable 'targets' teaches Kbuild that it is a
generated file. However, this line is not evaluated while cleaning
because scripts/Makefile.clean does not include include/config/auto.conf.

Removing the ifneq-conditional, so this file is correctly cleaned up.

Signed-off-by: Masahiro Yamada <[email protected]>
Acked-by: Herbert Xu <[email protected]>
---

Changes in v2: None

arch/x86/crypto/Makefile | 2 --
1 file changed, 2 deletions(-)

diff --git a/arch/x86/crypto/Makefile b/arch/x86/crypto/Makefile
index 928aad453c72..a31de0c6ccde 100644
--- a/arch/x86/crypto/Makefile
+++ b/arch/x86/crypto/Makefile
@@ -83,9 +83,7 @@ crct10dif-pclmul-y := crct10dif-pcl-asm_64.o crct10dif-pclmul_glue.o

obj-$(CONFIG_CRYPTO_POLY1305_X86_64) += poly1305-x86_64.o
poly1305-x86_64-y := poly1305-x86_64-cryptogams.o poly1305_glue.o
-ifneq ($(CONFIG_CRYPTO_POLY1305_X86_64),)
targets += poly1305-x86_64-cryptogams.S
-endif

obj-$(CONFIG_CRYPTO_NHPOLY1305_SSE2) += nhpoly1305-sse2.o
nhpoly1305-sse2-y := nh-sse2-x86_64.o nhpoly1305-sse2-glue.o
--
2.17.1

2020-03-26 08:18:34

by Jason A. Donenfeld

[permalink] [raw]
Subject: Re: [PATCH v2 00/16] x86, crypto: remove always-defined CONFIG_AS_* and cosolidate Kconfig/Makefiles

Very little has changed from last time, and this whole series still
looks good to me. I think I already ack'd most packages, but in case
it helps:

Reviewed-by: Jason A. Donenfeld <[email protected]>

Since this touches a lot of stuff, it might be best to get it in as
early as possible during the merge window, as I imagine new code being
added is going to want to be touching those makefiles too.

2020-03-26 09:22:45

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH v2 00/16] x86, crypto: remove always-defined CONFIG_AS_* and cosolidate Kconfig/Makefiles


* Jason A. Donenfeld <[email protected]> wrote:

> Very little has changed from last time, and this whole series still
> looks good to me. I think I already ack'd most packages, but in case
> it helps:
>
> Reviewed-by: Jason A. Donenfeld <[email protected]>

Acked-by: Ingo Molnar <[email protected]>

> Since this touches a lot of stuff, it might be best to get it in as
> early as possible during the merge window, as I imagine new code being
> added is going to want to be touching those makefiles too.

I'd argue the opposite: please merge this later in the merge window, to
not disrupt the vast body of other stuff that has already been lined up
and has been tested, and to give time for these new bits to get tested
some more.

Also, please get it into -next ASAP, today would be ideal for test
coverage ...

Thanks,

Ingo

2020-03-26 20:44:31

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH v2 00/16] x86, crypto: remove always-defined CONFIG_AS_* and cosolidate Kconfig/Makefiles

Hi all,

On Thu, Mar 26, 2020 at 6:22 PM Ingo Molnar <[email protected]> wrote:
>
>
> * Jason A. Donenfeld <[email protected]> wrote:
>
> > Very little has changed from last time, and this whole series still
> > looks good to me. I think I already ack'd most packages, but in case
> > it helps:
> >
> > Reviewed-by: Jason A. Donenfeld <[email protected]>
>
> Acked-by: Ingo Molnar <[email protected]>
>
> > Since this touches a lot of stuff, it might be best to get it in as
> > early as possible during the merge window, as I imagine new code being
> > added is going to want to be touching those makefiles too.
>
> I'd argue the opposite: please merge this later in the merge window, to
> not disrupt the vast body of other stuff that has already been lined up
> and has been tested, and to give time for these new bits to get tested
> some more.

I agree.


> Also, please get it into -next ASAP, today would be ideal for test
> coverage ...

I collected more Reviewed-by and Acked-by,
then pushed this series to

git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git
kbuild-asinstr

It will show up in -next soon.


--
Best Regards
Masahiro Yamada

2020-03-26 20:46:33

by Jason A. Donenfeld

[permalink] [raw]
Subject: Re: [PATCH v2 00/16] x86, crypto: remove always-defined CONFIG_AS_* and cosolidate Kconfig/Makefiles

On Thu, Mar 26, 2020 at 2:44 PM Masahiro Yamada <[email protected]> wrote:
> I collected more Reviewed-by and Acked-by,
> then pushed this series to
>
> git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git
> kbuild-asinstr

But not the version of the penultimate patch that Nick ack'd....

2020-03-26 21:13:40

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH v2 00/16] x86, crypto: remove always-defined CONFIG_AS_* and cosolidate Kconfig/Makefiles

On Fri, Mar 27, 2020 at 5:46 AM Jason A. Donenfeld <[email protected]> wrote:
>
> On Thu, Mar 26, 2020 at 2:44 PM Masahiro Yamada <[email protected]> wrote:
> > I collected more Reviewed-by and Acked-by,
> > then pushed this series to
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git
> > kbuild-asinstr
>
> But not the version of the penultimate patch that Nick ack'd....

Dropped Nick's Reviewed-by.


--
Best Regards
Masahiro Yamada