x86-32: Disable 3D-Now in generic config
authorBen Hutchings <ben@decadent.org.uk>
Tue, 25 Sep 2018 18:44:13 +0000 (19:44 +0100)
committerSalvatore Bonaccorso <carnil@debian.org>
Tue, 13 Dec 2022 20:46:50 +0000 (20:46 +0000)
We want the 686 flavour to run on Geode LX and similar AMD family 5
CPUs as well as family 6 and higher CPUs.  This used to work with
CONFIG_M686=y.  However commit 25d76ac88821 "x86/Kconfig: Explicitly
enumerate i686-class CPUs in Kconfig" in Linux 4.16 has made the
kernel require family 6 or higher.

It looks like a sensible choice would be to enable CONFIG_MGEODE_LX
and CONFIG_X86_GENERIC (for more generic optimisations), but this
currently enables CONFIG_X86_USE_3D_NOW which will cause the kernel to
crash on CPUs without the AMD-specific 3D-Now instructions.

Make CONFIG_X86_USE_3DNOW depend on CONFIG_X86_GENERIC being disabled.

Gbp-Pq: Topic bugfix/x86
Gbp-Pq: Name x86-32-disable-3dnow-in-generic-config.patch

arch/x86/Kconfig.cpu

index 814fe0d349b01d80ab3b80f69b00026098beb22b..052e98c0bd3bb1b26af4463d8a7804317dc5c8c6 100644 (file)
@@ -344,7 +344,7 @@ config X86_USE_PPRO_CHECKSUM
 
 config X86_USE_3DNOW
        def_bool y
-       depends on (MCYRIXIII || MK7 || MGEODE_LX) && !UML
+       depends on (MCYRIXIII || MK7 || MGEODE_LX) && !X86_GENERIC && !UML
 
 #
 # P6_NOPs are a relatively minor optimization that require a family >=