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>
Thu, 26 Sep 2019 12:19:06 +0000 (13:19 +0100)
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 6adce15268bd89ac70bcf529d736f895d6663085..006c3002a1a85dd1db7573698b24324149019252 100644 (file)
@@ -337,7 +337,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 >=