diff options
| -rw-r--r-- | arch/x86/Kconfig | 16 | ||||
| -rw-r--r-- | arch/x86/Kconfig.cpu | 10 | ||||
| -rw-r--r-- | arch/x86/Kconfig.debug | 7 | ||||
| -rw-r--r-- | arch/x86/kernel/Makefile | 1 | ||||
| -rw-r--r-- | arch/x86/kernel/genapic_64.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/head_32.S | 19 | ||||
| -rw-r--r-- | arch/x86/kernel/hpet.c | 5 | ||||
| -rw-r--r-- | arch/x86/kernel/pci-dma.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/reboot.c | 1 | ||||
| -rw-r--r-- | arch/x86/mach-voyager/voyager_cat.c | 2 | ||||
| -rw-r--r-- | arch/x86/mm/highmem_32.c | 1 | ||||
| -rw-r--r-- | arch/x86/mm/ioremap.c | 23 | ||||
| -rw-r--r-- | arch/x86/mm/pageattr.c | 10 | ||||
| -rw-r--r-- | arch/x86/pci/Makefile_32 | 4 | ||||
| -rw-r--r-- | arch/x86/pci/i386.c | 12 | ||||
| -rw-r--r-- | arch/x86/vdso/vdso32-setup.c | 2 | ||||
| -rw-r--r-- | drivers/char/toshiba.c | 2 | ||||
| -rw-r--r-- | include/asm-x86/mach-default/mach_apic.h | 7 | ||||
| -rw-r--r-- | include/asm-x86/processor.h | 3 | ||||
| -rw-r--r-- | include/asm-x86/proto.h | 4 |
20 files changed, 82 insertions, 51 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index f70e3e3a9fa7..c3f880902d66 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
| @@ -25,6 +25,18 @@ config X86 | |||
| 25 | select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64) | 25 | select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64) |
| 26 | select HAVE_ARCH_KGDB if !X86_VOYAGER | 26 | select HAVE_ARCH_KGDB if !X86_VOYAGER |
| 27 | 27 | ||
| 28 | config DEFCONFIG_LIST | ||
| 29 | string | ||
| 30 | depends on X86_32 | ||
| 31 | option defconfig_list | ||
| 32 | default "arch/x86/configs/i386_defconfig" | ||
| 33 | |||
| 34 | config DEFCONFIG_LIST | ||
| 35 | string | ||
| 36 | depends on X86_64 | ||
| 37 | option defconfig_list | ||
| 38 | default "arch/x86/configs/x86_64_defconfig" | ||
| 39 | |||
| 28 | 40 | ||
| 29 | config GENERIC_LOCKBREAK | 41 | config GENERIC_LOCKBREAK |
| 30 | def_bool n | 42 | def_bool n |
| @@ -180,7 +192,7 @@ config X86_HT | |||
| 180 | 192 | ||
| 181 | config X86_BIOS_REBOOT | 193 | config X86_BIOS_REBOOT |
| 182 | bool | 194 | bool |
| 183 | depends on X86_32 && !(X86_VISWS || X86_VOYAGER) | 195 | depends on !X86_VISWS && !X86_VOYAGER |
| 184 | default y | 196 | default y |
| 185 | 197 | ||
| 186 | config X86_TRAMPOLINE | 198 | config X86_TRAMPOLINE |
| @@ -1161,7 +1173,7 @@ source kernel/Kconfig.hz | |||
| 1161 | 1173 | ||
| 1162 | config KEXEC | 1174 | config KEXEC |
| 1163 | bool "kexec system call" | 1175 | bool "kexec system call" |
| 1164 | depends on X86_64 || X86_BIOS_REBOOT | 1176 | depends on X86_BIOS_REBOOT |
| 1165 | help | 1177 | help |
| 1166 | kexec is a system call that implements the ability to shutdown your | 1178 | kexec is a system call that implements the ability to shutdown your |
| 1167 | current kernel, and to start another kernel. It is like a reboot | 1179 | current kernel, and to start another kernel. It is like a reboot |
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu index 7ef18b01f0bc..2ad6301849a1 100644 --- a/arch/x86/Kconfig.cpu +++ b/arch/x86/Kconfig.cpu | |||
| @@ -278,11 +278,6 @@ config GENERIC_CPU | |||
| 278 | 278 | ||
| 279 | endchoice | 279 | endchoice |
| 280 | 280 | ||
| 281 | config X86_CPU | ||
| 282 | def_bool y | ||
| 283 | select GENERIC_FIND_FIRST_BIT | ||
| 284 | select GENERIC_FIND_NEXT_BIT | ||
| 285 | |||
| 286 | config X86_GENERIC | 281 | config X86_GENERIC |
| 287 | bool "Generic x86 support" | 282 | bool "Generic x86 support" |
| 288 | depends on X86_32 | 283 | depends on X86_32 |
| @@ -297,6 +292,11 @@ config X86_GENERIC | |||
| 297 | 292 | ||
| 298 | endif | 293 | endif |
| 299 | 294 | ||
| 295 | config X86_CPU | ||
| 296 | def_bool y | ||
| 297 | select GENERIC_FIND_FIRST_BIT | ||
| 298 | select GENERIC_FIND_NEXT_BIT | ||
| 299 | |||
| 300 | # | 300 | # |
| 301 | # Define implied options from the CPU selection here | 301 | # Define implied options from the CPU selection here |
| 302 | config X86_L1_CACHE_BYTES | 302 | config X86_L1_CACHE_BYTES |
diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug index 5b1979a45a1e..5fc8d0b3191d 100644 --- a/arch/x86/Kconfig.debug +++ b/arch/x86/Kconfig.debug | |||
| @@ -118,7 +118,6 @@ config DEBUG_NX_TEST | |||
| 118 | config 4KSTACKS | 118 | config 4KSTACKS |
| 119 | bool "Use 4Kb for kernel stacks instead of 8Kb" | 119 | bool "Use 4Kb for kernel stacks instead of 8Kb" |
| 120 | depends on X86_32 | 120 | depends on X86_32 |
| 121 | default y | ||
| 122 | help | 121 | help |
| 123 | If you say Y here the kernel will use a 4Kb stacksize for the | 122 | If you say Y here the kernel will use a 4Kb stacksize for the |
| 124 | kernel stack attached to each process/thread. This facilitates | 123 | kernel stack attached to each process/thread. This facilitates |
| @@ -256,11 +255,8 @@ config CPA_DEBUG | |||
| 256 | help | 255 | help |
| 257 | Do change_page_attr() self-tests every 30 seconds. | 256 | Do change_page_attr() self-tests every 30 seconds. |
| 258 | 257 | ||
| 259 | endmenu | ||
| 260 | |||
| 261 | config OPTIMIZE_INLINING | 258 | config OPTIMIZE_INLINING |
| 262 | bool "Allow gcc to uninline functions marked 'inline'" | 259 | bool "Allow gcc to uninline functions marked 'inline'" |
| 263 | default y | ||
| 264 | help | 260 | help |
| 265 | This option determines if the kernel forces gcc to inline the functions | 261 | This option determines if the kernel forces gcc to inline the functions |
| 266 | developers have marked 'inline'. Doing so takes away freedom from gcc to | 262 | developers have marked 'inline'. Doing so takes away freedom from gcc to |
| @@ -270,3 +266,6 @@ config OPTIMIZE_INLINING | |||
| 270 | this algorithm is so good that allowing gcc4 to make the decision can | 266 | this algorithm is so good that allowing gcc4 to make the decision can |
| 271 | become the default in the future, until then this option is there to | 267 | become the default in the future, until then this option is there to |
| 272 | test gcc for this. | 268 | test gcc for this. |
| 269 | |||
| 270 | endmenu | ||
| 271 | |||
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile index 30d54ed27e55..bbdacb398d48 100644 --- a/arch/x86/kernel/Makefile +++ b/arch/x86/kernel/Makefile | |||
| @@ -40,7 +40,6 @@ obj-$(CONFIG_STACKTRACE) += stacktrace.o | |||
| 40 | obj-y += cpu/ | 40 | obj-y += cpu/ |
| 41 | obj-y += acpi/ | 41 | obj-y += acpi/ |
| 42 | obj-$(CONFIG_X86_BIOS_REBOOT) += reboot.o | 42 | obj-$(CONFIG_X86_BIOS_REBOOT) += reboot.o |
| 43 | obj-$(CONFIG_X86_64) += reboot.o | ||
| 44 | obj-$(CONFIG_MCA) += mca_32.o | 43 | obj-$(CONFIG_MCA) += mca_32.o |
| 45 | obj-$(CONFIG_X86_MSR) += msr.o | 44 | obj-$(CONFIG_X86_MSR) += msr.o |
| 46 | obj-$(CONFIG_X86_CPUID) += cpuid.o | 45 | obj-$(CONFIG_X86_CPUID) += cpuid.o |
diff --git a/arch/x86/kernel/genapic_64.c b/arch/x86/kernel/genapic_64.c index 021624c83583..cbaaf69bedb2 100644 --- a/arch/x86/kernel/genapic_64.c +++ b/arch/x86/kernel/genapic_64.c | |||
| @@ -83,7 +83,7 @@ unsigned int read_apic_id(void) | |||
| 83 | { | 83 | { |
| 84 | unsigned int id; | 84 | unsigned int id; |
| 85 | 85 | ||
| 86 | WARN_ON(preemptible()); | 86 | WARN_ON(preemptible() && num_online_cpus() > 1); |
| 87 | id = apic_read(APIC_ID); | 87 | id = apic_read(APIC_ID); |
| 88 | if (uv_system_type >= UV_X2APIC) | 88 | if (uv_system_type >= UV_X2APIC) |
| 89 | id |= __get_cpu_var(x2apic_extra_bits); | 89 | id |= __get_cpu_var(x2apic_extra_bits); |
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S index 90f038af3adc..b2cc73768a9d 100644 --- a/arch/x86/kernel/head_32.S +++ b/arch/x86/kernel/head_32.S | |||
| @@ -656,15 +656,16 @@ int_msg: | |||
| 656 | .asciz "Unknown interrupt or fault at EIP %p %p %p\n" | 656 | .asciz "Unknown interrupt or fault at EIP %p %p %p\n" |
| 657 | 657 | ||
| 658 | fault_msg: | 658 | fault_msg: |
| 659 | .asciz \ | 659 | /* fault info: */ |
| 660 | /* fault info: */ "BUG: Int %d: CR2 %p\n" \ | 660 | .ascii "BUG: Int %d: CR2 %p\n" |
| 661 | /* pusha regs: */ " EDI %p ESI %p EBP %p ESP %p\n" \ | 661 | /* pusha regs: */ |
| 662 | " EBX %p EDX %p ECX %p EAX %p\n" \ | 662 | .ascii " EDI %p ESI %p EBP %p ESP %p\n" |
| 663 | /* fault frame: */ " err %p EIP %p CS %p flg %p\n" \ | 663 | .ascii " EBX %p EDX %p ECX %p EAX %p\n" |
| 664 | \ | 664 | /* fault frame: */ |
| 665 | "Stack: %p %p %p %p %p %p %p %p\n" \ | 665 | .ascii " err %p EIP %p CS %p flg %p\n" |
| 666 | " %p %p %p %p %p %p %p %p\n" \ | 666 | .ascii "Stack: %p %p %p %p %p %p %p %p\n" |
| 667 | " %p %p %p %p %p %p %p %p\n" | 667 | .ascii " %p %p %p %p %p %p %p %p\n" |
| 668 | .asciz " %p %p %p %p %p %p %p %p\n" | ||
| 668 | 669 | ||
| 669 | #include "../../x86/xen/xen-head.S" | 670 | #include "../../x86/xen/xen-head.S" |
| 670 | 671 | ||
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c index 9007f9ea64ee..9b5cfcdfc426 100644 --- a/arch/x86/kernel/hpet.c +++ b/arch/x86/kernel/hpet.c | |||
| @@ -137,9 +137,10 @@ static void hpet_reserve_platform_timers(unsigned long id) | |||
| 137 | hd.hd_irq[0] = HPET_LEGACY_8254; | 137 | hd.hd_irq[0] = HPET_LEGACY_8254; |
| 138 | hd.hd_irq[1] = HPET_LEGACY_RTC; | 138 | hd.hd_irq[1] = HPET_LEGACY_RTC; |
| 139 | 139 | ||
| 140 | for (i = 2; i < nrtimers; timer++, i++) | 140 | for (i = 2; i < nrtimers; timer++, i++) { |
