diff options
| -rw-r--r-- | arch/x86/Kconfig.cpu | 4 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/bugs.c | 28 |
2 files changed, 0 insertions, 32 deletions
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu index 159ee9c824c9..423db7189eb9 100644 --- a/arch/x86/Kconfig.cpu +++ b/arch/x86/Kconfig.cpu | |||
| @@ -325,10 +325,6 @@ config X86_INVD_BUG | |||
| 325 | def_bool y | 325 | def_bool y |
| 326 | depends on M486 | 326 | depends on M486 |
| 327 | 327 | ||
| 328 | config X86_POPAD_OK | ||
| 329 | def_bool y | ||
| 330 | depends on X86_32 | ||
| 331 | |||
| 332 | config X86_ALIGNMENT_16 | 328 | config X86_ALIGNMENT_16 |
| 333 | def_bool y | 329 | def_bool y |
| 334 | depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1 | 330 | depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1 |
diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 0cd07ccdf380..92dfec986a48 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c | |||
| @@ -107,33 +107,6 @@ static void __init check_hlt(void) | |||
| 107 | } | 107 | } |
| 108 | 108 | ||
| 109 | /* | 109 | /* |
| 110 | * Most 386 processors have a bug where a POPAD can lock the | ||
| 111 | * machine even from user space. | ||
| 112 | */ | ||
| 113 | |||
| 114 | static void __init check_popad(void) | ||
| 115 | { | ||
| 116 | #ifndef CONFIG_X86_POPAD_OK | ||
| 117 | int res, inp = (int) &res; | ||
| 118 | |||
| 119 | pr_info("Checking for popad bug... "); | ||
| 120 | __asm__ __volatile__( | ||
| 121 | "movl $12345678,%%eax; movl $0,%%edi; pusha; popa; movl (%%edx,%%edi),%%ecx " | ||
| 122 | : "=&a" (res) | ||
| 123 | : "d" (inp) | ||
| 124 | : "ecx", "edi"); | ||
| 125 | /* | ||
| 126 | * If this fails, it means that any user program may lock the | ||
| 127 | * CPU hard. Too bad. | ||
| 128 | */ | ||
| 129 | if (res != 12345678) | ||
| 130 | pr_cont("Buggy\n"); | ||
| 131 | else | ||
| 132 | pr_cont("OK\n"); | ||
| 133 | #endif | ||
| 134 | } | ||
| 135 | |||
| 136 | /* | ||
| 137 | * Check whether we are able to run this kernel safely on SMP. | 110 | * Check whether we are able to run this kernel safely on SMP. |
| 138 | * | 111 | * |
| 139 | * - i386 is no longer supported. | 112 | * - i386 is no longer supported. |
| @@ -157,7 +130,6 @@ void __init check_bugs(void) | |||
| 157 | #endif | 130 | #endif |
| 158 | check_config(); | 131 | check_config(); |
| 159 | check_hlt(); | 132 | check_hlt(); |
| 160 | check_popad(); | ||
| 161 | init_utsname()->machine[1] = | 133 | init_utsname()->machine[1] = |
| 162 | '0' + (boot_cpu_data.x86 > 6 ? 6 : boot_cpu_data.x86); | 134 | '0' + (boot_cpu_data.x86 > 6 ? 6 : boot_cpu_data.x86); |
| 163 | alternative_instructions(); | 135 | alternative_instructions(); |
