diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-11 22:59:32 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-11 22:59:32 -0500 |
| commit | 743aa456c1834f76982af44e8b71d1a0b2a82e21 (patch) | |
| tree | f240782115da675496c8d9d5328722933d0ef601 | |
| parent | a05a4e24dcd73c2de4ef3f8d520b8bbb44570c60 (diff) | |
| parent | 11af32b69ef7ee64c7d8848cad71a6f3749d9e37 (diff) | |
Merge branch 'x86-nuke386-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull "Nuke 386-DX/SX support" from Ingo Molnar:
"This tree removes ancient-386-CPUs support and thus zaps quite a bit
of complexity:
24 files changed, 56 insertions(+), 425 deletions(-)
... which complexity has plagued us with extra work whenever we wanted
to change SMP primitives, for years.
Unfortunately there's a nostalgic cost: your old original 386 DX33
system from early 1991 won't be able to boot modern Linux kernels
anymore. Sniff."
I'm not sentimental. Good riddance.
* 'x86-nuke386-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86, 386 removal: Document Nx586 as a 386 and thus unsupported
x86, cleanups: Simplify sync_core() in the case of no CPUID
x86, 386 removal: Remove CONFIG_X86_POPAD_OK
x86, 386 removal: Remove CONFIG_X86_WP_WORKS_OK
x86, 386 removal: Remove CONFIG_INVLPG
x86, 386 removal: Remove CONFIG_BSWAP
x86, 386 removal: Remove CONFIG_XADD
x86, 386 removal: Remove CONFIG_CMPXCHG
x86, 386 removal: Remove CONFIG_M386 from Kconfig
| -rw-r--r-- | arch/x86/Kconfig | 11 | ||||
| -rw-r--r-- | arch/x86/Kconfig.cpu | 73 | ||||
| -rw-r--r-- | arch/x86/Makefile_32.cpu | 1 | ||||
| -rw-r--r-- | arch/x86/include/asm/atomic.h | 16 | ||||
| -rw-r--r-- | arch/x86/include/asm/cmpxchg_32.h | 55 | ||||
| -rw-r--r-- | arch/x86/include/asm/cpufeature.h | 6 | ||||
| -rw-r--r-- | arch/x86/include/asm/futex.h | 12 | ||||
| -rw-r--r-- | arch/x86/include/asm/local.h | 18 | ||||
| -rw-r--r-- | arch/x86/include/asm/module.h | 2 | ||||
| -rw-r--r-- | arch/x86/include/asm/percpu.h | 3 | ||||
| -rw-r--r-- | arch/x86/include/asm/processor.h | 33 | ||||
| -rw-r--r-- | arch/x86/include/asm/swab.h | 29 | ||||
| -rw-r--r-- | arch/x86/include/asm/tlbflush.h | 3 | ||||
| -rw-r--r-- | arch/x86/include/asm/uaccess.h | 42 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/amd.c | 3 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/bugs.c | 41 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/intel.c | 4 | ||||
| -rw-r--r-- | arch/x86/lib/Makefile | 1 | ||||
| -rw-r--r-- | arch/x86/lib/cmpxchg.c | 54 | ||||
| -rw-r--r-- | arch/x86/lib/usercopy_32.c | 57 | ||||
| -rw-r--r-- | arch/x86/mm/init_32.c | 5 | ||||
| -rw-r--r-- | arch/x86/mm/tlb.c | 8 | ||||
| -rw-r--r-- | arch/x86/um/Kconfig | 2 | ||||
| -rw-r--r-- | arch/x86/xen/Kconfig | 2 |
24 files changed, 56 insertions, 425 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 2d643255c40d..037c4e30c271 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
| @@ -69,8 +69,8 @@ config X86 | |||
| 69 | select HAVE_PERF_USER_STACK_DUMP | 69 | select HAVE_PERF_USER_STACK_DUMP |
| 70 | select HAVE_DEBUG_KMEMLEAK | 70 | select HAVE_DEBUG_KMEMLEAK |
| 71 | select ANON_INODES | 71 | select ANON_INODES |
| 72 | select HAVE_ALIGNED_STRUCT_PAGE if SLUB && !M386 | 72 | select HAVE_ALIGNED_STRUCT_PAGE if SLUB |
| 73 | select HAVE_CMPXCHG_LOCAL if !M386 | 73 | select HAVE_CMPXCHG_LOCAL |
| 74 | select HAVE_CMPXCHG_DOUBLE | 74 | select HAVE_CMPXCHG_DOUBLE |
| 75 | select HAVE_ARCH_KMEMCHECK | 75 | select HAVE_ARCH_KMEMCHECK |
| 76 | select HAVE_USER_RETURN_NOTIFIER | 76 | select HAVE_USER_RETURN_NOTIFIER |
| @@ -171,13 +171,8 @@ config ARCH_MAY_HAVE_PC_FDC | |||
| 171 | def_bool y | 171 | def_bool y |
| 172 | depends on ISA_DMA_API | 172 | depends on ISA_DMA_API |
| 173 | 173 | ||
| 174 | config RWSEM_GENERIC_SPINLOCK | ||
| 175 | def_bool y | ||
| 176 | depends on !X86_XADD | ||
| 177 | |||
| 178 | config RWSEM_XCHGADD_ALGORITHM | 174 | config RWSEM_XCHGADD_ALGORITHM |
| 179 | def_bool y | 175 | def_bool y |
| 180 | depends on X86_XADD | ||
| 181 | 176 | ||
| 182 | config GENERIC_CALIBRATE_DELAY | 177 | config GENERIC_CALIBRATE_DELAY |
| 183 | def_bool y | 178 | def_bool y |
| @@ -1100,7 +1095,7 @@ config HIGHMEM4G | |||
| 1100 | 1095 | ||
| 1101 | config HIGHMEM64G | 1096 | config HIGHMEM64G |
| 1102 | bool "64GB" | 1097 | bool "64GB" |
| 1103 | depends on !M386 && !M486 | 1098 | depends on !M486 |
| 1104 | select X86_PAE | 1099 | select X86_PAE |
| 1105 | ---help--- | 1100 | ---help--- |
| 1106 | Select this if you have a 32-bit processor and more than 4 | 1101 | Select this if you have a 32-bit processor and more than 4 |
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu index f3b86d0df44e..c026cca5602c 100644 --- a/arch/x86/Kconfig.cpu +++ b/arch/x86/Kconfig.cpu | |||
| @@ -4,23 +4,24 @@ choice | |||
| 4 | default M686 if X86_32 | 4 | default M686 if X86_32 |
| 5 | default GENERIC_CPU if X86_64 | 5 | default GENERIC_CPU if X86_64 |
| 6 | 6 | ||
| 7 | config M386 | 7 | config M486 |
| 8 | bool "386" | 8 | bool "486" |
| 9 | depends on X86_32 && !UML | 9 | depends on X86_32 |
| 10 | ---help--- | 10 | ---help--- |
| 11 | This is the processor type of your CPU. This information is used for | 11 | This is the processor type of your CPU. This information is |
| 12 | optimizing purposes. In order to compile a kernel that can run on | 12 | used for optimizing purposes. In order to compile a kernel |
| 13 | all x86 CPU types (albeit not optimally fast), you can specify | 13 | that can run on all supported x86 CPU types (albeit not |
| 14 | "386" here. | 14 | optimally fast), you can specify "486" here. |
| 15 | |||
| 16 | Note that the 386 is no longer supported, this includes | ||
| 17 | AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI 486DLC/DLC2, | ||
| 18 | UMC 486SX-S and the NexGen Nx586. | ||
| 15 | 19 | ||
| 16 | The kernel will not necessarily run on earlier architectures than | 20 | The kernel will not necessarily run on earlier architectures than |
| 17 | the one you have chosen, e.g. a Pentium optimized kernel will run on | 21 | the one you have chosen, e.g. a Pentium optimized kernel will run on |
| 18 | a PPro, but not necessarily on a i486. | 22 | a PPro, but not necessarily on a i486. |
| 19 | 23 | ||
| 20 | Here are the settings recommended for greatest speed: | 24 | Here are the settings recommended for greatest speed: |
| 21 | - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI | ||
| 22 | 486DLC/DLC2, and UMC 486SX-S. Only "386" kernels will run on a 386 | ||
| 23 | class machine. | ||
| 24 | - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or | 25 | - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or |
| 25 | SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S. | 26 | SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S. |
| 26 | - "586" for generic Pentium CPUs lacking the TSC | 27 | - "586" for generic Pentium CPUs lacking the TSC |
| @@ -43,16 +44,7 @@ config M386 | |||
| 43 | - "VIA C3-2" for VIA C3-2 "Nehemiah" (model 9 and above). | 44 | - "VIA C3-2" for VIA C3-2 "Nehemiah" (model 9 and above). |
| 44 | - "VIA C7" for VIA C7. | 45 | - "VIA C7" for VIA C7. |
| 45 | 46 | ||
| 46 | If you don't know what to do, choose "386". | 47 | If you don't know what to do, choose "486". |
| 47 | |||
| 48 | config M486 | ||
| 49 | bool "486" | ||
| 50 | depends on X86_32 | ||
| 51 | ---help--- | ||
| 52 | Select this for a 486 series processor, either Intel or one of the | ||
| 53 | compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX, | ||
| 54 | DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or | ||
| 55 | U5S. | ||
| 56 | 48 | ||
| 57 | config M586 | 49 | config M586 |
| 58 | bool "586/K5/5x86/6x86/6x86MX" | 50 | bool "586/K5/5x86/6x86/6x86MX" |
| @@ -305,24 +297,16 @@ config X86_INTERNODE_CACHE_SHIFT | |||
| 305 | default "12" if X86_VSMP | 297 | default "12" if X86_VSMP |
| 306 | default X86_L1_CACHE_SHIFT | 298 | default X86_L1_CACHE_SHIFT |
| 307 | 299 | ||
| 308 | config X86_CMPXCHG | ||
| 309 | def_bool y | ||
| 310 | depends on X86_64 || (X86_32 && !M386) | ||
| 311 | |||
| 312 | config X86_L1_CACHE_SHIFT | 300 | config X86_L1_CACHE_SHIFT |
| 313 | int | 301 | int |
| 314 | default "7" if MPENTIUM4 || MPSC | 302 | default "7" if MPENTIUM4 || MPSC |
| 315 | default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU | 303 | default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU |
| 316 | default "4" if MELAN || M486 || M386 || MGEODEGX1 | 304 | default "4" if MELAN || M486 || MGEODEGX1 |
| 317 | default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX | 305 | default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX |
| 318 | 306 | ||
| 319 | config X86_XADD | ||
| 320 | def_bool y | ||
| 321 | depends on !M386 | ||
| 322 | |||
| 323 | config X86_PPRO_FENCE | 307 | config X86_PPRO_FENCE |
| 324 | bool "PentiumPro memory ordering errata workaround" | 308 | bool "PentiumPro memory ordering errata workaround" |
| 325 | depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODEGX1 | 309 | depends on M686 || M586MMX || M586TSC || M586 || M486 || MGEODEGX1 |
| 326 | ---help--- | 310 | ---help--- |
| 327 | Old PentiumPro multiprocessor systems had errata that could cause | 311 | Old PentiumPro multiprocessor systems had errata that could cause |
| 328 | memory operations to violate the x86 ordering standard in rare cases. | 312 | memory operations to violate the x86 ordering standard in rare cases. |
| @@ -335,27 +319,11 @@ config X86_PPRO_FENCE | |||
| 335 | 319 | ||
| 336 | config X86_F00F_BUG | 320 | config X86_F00F_BUG |
| 337 | def_bool y | 321 | def_bool y |
| 338 | depends on M586MMX || M586TSC || M586 || M486 || M386 | 322 | depends on M586MMX || M586TSC || M586 || M486 |
| 339 | 323 | ||
| 340 | config X86_INVD_BUG | 324 | config X86_INVD_BUG |
| 341 | def_bool y | 325 | def_bool y |
| 342 | depends on M486 || M386 | 326 | depends on M486 |
| 343 | |||
| 344 | config X86_WP_WORKS_OK | ||
| 345 | def_bool y | ||
| 346 | depends on !M386 | ||
| 347 | |||
| 348 | config X86_INVLPG | ||
| 349 | def_bool y | ||
| 350 | depends on X86_32 && !M386 | ||
