aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-04-30 22:31:52 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-30 22:31:52 -0400
commit958a2f29a6520a1d2973077ce7854ea9a44f48a2 (patch)
tree918bc7a850bab351c2a91dbfea66f58d9258495d
parent6de3d58dcfbab516dbe9aff36ea9542f40cd1bf2 (diff)
parent895d30935ebe05f192e844792668bf8d19deaae7 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-fixes3
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-fixes3: (21 commits) x86: numaq fix x86: 8K stacks by default x86: ioremap ram check fix x86: fix HT cpu booting on 32-bit x86: optimize inlining off x86: CONFIG_X86_ELAN fix x86: Kconfig fix x86 PAT: fix performance drop for glx, use UC minus for ioremap(), ioremap_nocache() and pci_mmap_page_range() x86: use defconfigs from x86/configs/* toshiba: use ioremap_cached revert: "x86: ioremap(), extend check to all RAM pages" x86: don't bother printing compat vdso address fix: x86: support for new UV apic x86: fix early-BUG message x86: iommu_sac_force can become static x86: add proper header for reboot_force x86 VISWS: build fix x86, voyager: fix ioremap_nocache() hpet: fix x86: unexport kmap_atomic_to_page ...
-rw-r--r--arch/x86/Kconfig16
-rw-r--r--arch/x86/Kconfig.cpu10
-rw-r--r--arch/x86/Kconfig.debug7
-rw-r--r--arch/x86/kernel/Makefile1
-rw-r--r--arch/x86/kernel/genapic_64.c2
-rw-r--r--arch/x86/kernel/head_32.S19
-rw-r--r--arch/x86/kernel/hpet.c5
-rw-r--r--arch/x86/kernel/pci-dma.c2
-rw-r--r--arch/x86/kernel/reboot.c1
-rw-r--r--arch/x86/mach-voyager/voyager_cat.c2
-rw-r--r--arch/x86/mm/highmem_32.c1
-rw-r--r--arch/x86/mm/ioremap.c23
-rw-r--r--arch/x86/mm/pageattr.c10
-rw-r--r--arch/x86/pci/Makefile_324
-rw-r--r--arch/x86/pci/i386.c12
-rw-r--r--arch/x86/vdso/vdso32-setup.c2
-rw-r--r--drivers/char/toshiba.c2
-rw-r--r--include/asm-x86/mach-default/mach_apic.h7
-rw-r--r--include/asm-x86/processor.h3
-rw-r--r--include/asm-x86/proto.h4
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
28config DEFCONFIG_LIST
29 string
30 depends on X86_32
31 option defconfig_list
32 default "arch/x86/configs/i386_defconfig"
33
34config DEFCONFIG_LIST
35 string
36 depends on X86_64
37 option defconfig_list
38 default "arch/x86/configs/x86_64_defconfig"
39
28 40
29config GENERIC_LOCKBREAK 41config GENERIC_LOCKBREAK
30 def_bool n 42 def_bool n
@@ -180,7 +192,7 @@ config X86_HT
180 192
181config X86_BIOS_REBOOT 193config 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
186config X86_TRAMPOLINE 198config X86_TRAMPOLINE
@@ -1161,7 +1173,7 @@ source kernel/Kconfig.hz
1161 1173
1162config KEXEC 1174config 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
279endchoice 279endchoice
280 280
281config X86_CPU
282 def_bool y
283 select GENERIC_FIND_FIRST_BIT
284 select GENERIC_FIND_NEXT_BIT
285
286config X86_GENERIC 281config 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
298endif 293endif
299 294
295config 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
302config X86_L1_CACHE_BYTES 302config 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
118config 4KSTACKS 118config 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
259endmenu
260
261config OPTIMIZE_INLINING 258config 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
270endmenu
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
40obj-y += cpu/ 40obj-y += cpu/
41obj-y += acpi/ 41obj-y += acpi/
42obj-$(CONFIG_X86_BIOS_REBOOT) += reboot.o 42obj-$(CONFIG_X86_BIOS_REBOOT) += reboot.o
43obj-$(CONFIG_X86_64) += reboot.o
44obj-$(CONFIG_MCA) += mca_32.o 43obj-$(CONFIG_MCA) += mca_32.o
45obj-$(CONFIG_X86_MSR) += msr.o 44obj-$(CONFIG_X86_MSR) += msr.o
46obj-$(CONFIG_X86_CPUID) += cpuid.o 45obj-$(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
658fault_msg: 658fault_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++) {
141 hd.hd_irq[i] = (timer->hpet_config & Tn_INT_ROUTE_CNF_MASK) >> 141 hd.hd_irq[i] = (readl(&timer->hpet_config) & Tn_INT_ROUTE_CNF_MASK) >>
142 Tn_INT_ROUTE_CNF_SHIFT; 142 Tn_INT_ROUTE_CNF_SHIFT;
143 }
143 144
144 hpet_alloc(&hd); 145 hpet_alloc(&hd);
145 146
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c
index 388b113a7d88..0c37f16b6950 100644
--- a/arch/x86/kernel/pci-dma.c
+++ b/arch/x86/kernel/pci-dma.c
@@ -14,7 +14,7 @@ EXPORT_SYMBOL(forbid_dac);
14const struct dma_mapping_ops *dma_ops; 14const struct dma_mapping_ops *dma_ops;
15EXPORT_SYMBOL(dma_ops); 15EXPORT_SYMBOL(dma_ops);
16 16
17int iommu_sac_force __read_mostly = 0; 17static int iommu_sac_force __read_mostly;
18 18
19#ifdef CONFIG_IOMMU_DEBUG 19#ifdef CONFIG_IOMMU_DEBUG
20int panic_on_overflow __read_mostly = 1; 20int panic_on_overflow __read_mostly = 1;
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index a4a838306b2c..07c6d42ab5ff 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -9,6 +9,7 @@
9#include <asm/desc.h> 9#include <asm/desc.h>
10#include <asm/hpet.h> 10#include <asm/hpet.h>
11#include <asm/pgtable.h> 11#include <asm/pgtable.h>
12#include <asm/proto.h>
12#include <asm/reboot_fixups.h> 13#include <asm/reboot_fixups.h>
13#include <asm/reboot.h> 14#include <asm/reboot.h>
14 15
diff --git a/arch/x86/mach-voyager/voyager_cat.c b/arch/x86/mach-voyager/voyager_cat.c
index ecab9fff0fd1..2ad598c104af 100644
--- a/arch/x86/mach-voyager/voyager_cat.c
+++ b/arch/x86/mach-voyager/voyager_cat.c
@@ -877,7 +877,7 @@ void __init voyager_cat_init(void)
877 request_resource(&iomem_resource, res); 877 request_resource(&iomem_resource, res);
878 } 878 }
879 879
880 qic_addr = (unsigned long)ioremap(qic_addr, 0x400); 880 qic_addr = (unsigned long)ioremap_cache(qic_addr, 0x400);
881 881
882 for (j = 0; j < 4; j++) { 882 for (j = 0; j < 4; j++) {
883 __u8 cpu; 883 __u8 cpu;
diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c
index 9cf33d3ee5bc..165c871ba9af 100644
--- a/arch/x86/mm/highmem_32.c
+++ b/arch/x86/mm/highmem_32.c
@@ -155,4 +155,3 @@ EXPORT_SYMBOL(kmap);
155EXPORT_SYMBOL(kunmap); 155EXPORT_SYMBOL(kunmap);
156EXPORT_SYMBOL(kmap_atomic); 156EXPORT_SYMBOL(kmap_atomic);
157EXPORT_SYMBOL(kunmap_atomic); 157EXPORT_SYMBOL(kunmap_atomic);
158EXPORT_SYMBOL(kmap_atomic_to_page);
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index 804de18abcc2..71bb3159031a 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -149,7 +149,8 @@ static void __iomem *__ioremap_caller(resource_size_t phys_addr,
149 * Don't allow anybody to remap normal RAM that we're using.. 149 * Don't allow anybody to remap normal RAM that we're using..
150 */ 150 */
151 for (pfn = phys_addr >> PAGE_SHIFT; 151 for (pfn = phys_addr >> PAGE_SHIFT;
152 (pfn << PAGE_SHIFT) < last_addr; pfn++) { 152 (pfn << PAGE_SHIFT) < (last_addr & PAGE_MASK);
153 pfn++) {
153 154
154 int is_ram = page_is_ram(pfn); 155 int is_ram = page_is_ram(pfn);
155 156
@@ -176,11 +177,11 @@ static void __iomem *__ioremap_caller(resource_size_t phys_addr,
176 /* 177 /*
177 * Do not fallback to certain memory types with certain 178 * Do not fallback to certain memory types with certain
178 * requested type: 179 * requested type:
179 * - request is uncached, return cannot be write-back 180 * - request is uc-, return cannot be write-back
180 * - request is uncached, return cannot be write-combine 181 * - request is uc-, return cannot be write-combine
181 * - request is write-combine, return cannot be write-back 182 * - request is write-combine, return cannot be write-back
182 */ 183 */
183 if ((prot_val == _PAGE_CACHE_UC && 184 if ((prot_val == _PAGE_CACHE_UC_MINUS &&
184 (new_prot_val == _PAGE_CACHE_WB || 185 (new_prot_val == _PAGE_CACHE_WB ||
185 new_prot_val == _PAGE_CACHE_WC)) || 186 new_prot_val == _PAGE_CACHE_WC)) ||
186 (prot_val == _PAGE_CACHE_WC && 187 (prot_val == _PAGE_CACHE_WC &&
@@ -201,6 +202,9 @@ static void __iomem *__ioremap_caller(resource_size_t phys_addr,
201 default: 202 default:
202 prot = PAGE_KERNEL_NOCACHE; 203 prot = PAGE_KERNEL_NOCACHE;
203 break; 204 break;
205 case _PAGE_CACHE_UC_MINUS:
206 prot = PAGE_KERNEL_UC_MINUS;
207 break;
204 case _PAGE_CACHE_WC: 208 case _PAGE_CACHE_WC:
205 prot = PAGE_KERNEL_WC; 209 prot = PAGE_KERNEL_WC;
206 break; 210 break;
@@ -255,7 +259,16 @@ static void __iomem *__ioremap_caller(resource_size_t phys_addr,
255 */ 259 */
256void __iomem *ioremap_nocache(resource_size_t phys_addr, unsigned long size) 260void __iomem *ioremap_nocache(resource_size_t phys_addr, unsigned long size)
257{ 261{
258 return __ioremap_caller(phys_addr, size, _PAGE_CACHE_UC, 262 /*
263 * Ideally, this should be:
264 * pat_wc_enabled ? _PAGE_CACHE_UC : _PAGE_CACHE_UC_MINUS;
265 *
266 * Till we fix all X drivers to use ioremap_wc(), we will use
267 * UC MINUS.
268 */
269 unsigned long val = _PAGE_CACHE_UC_MINUS;
270
271 return __ioremap_caller(phys_addr, size, val,
259 __builtin_return_address(0)); 272 __builtin_return_address(0));
260} 273}
261EXPORT_SYMBOL(ioremap_nocache); 274EXPORT_SYMBOL(ioremap_nocache);
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index bd5e05c654dc..60bcb5b6a37e 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -777,14 +777,20 @@ static inline int change_page_attr_clear(unsigned long addr, int numpages,
777 777
778int _set_memory_uc(unsigned long addr, int numpages) 778int _set_memory_uc(unsigned long addr, int numpages)
779{ 779{
780 /*
781 * for now UC MINUS. see comments in ioremap_nocache()
782 */
780 return change_page_attr_set(addr, numpages, 783 return change_page_attr_set(addr, numpages,
781 __pgprot(_PAGE_CACHE_UC)); 784 __pgprot(_PAGE_CACHE_UC_MINUS));
782} 785}
783 786
784int set_memory_uc(unsigned long addr, int numpages) 787int set_memory_uc(unsigned long addr, int numpages)
785{ 788{
789 /*
790 * for now UC MINUS. see comments in ioremap_nocache()
791 */
786 if (reserve_memtype(addr, addr + numpages * PAGE_SIZE, 792 if (reserve_memtype(addr, addr + numpages * PAGE_SIZE,
787 _PAGE_CACHE_UC, NULL)) 793 _PAGE_CACHE_UC_MINUS, NULL))
788 return -EINVAL; 794 return -EINVAL;
789 795
790 return _set_memory_uc(addr, numpages); 796 return _set_memory_uc(addr, numpages);
diff --git a/arch/x86/pci/Makefile_32 b/arch/x86/pci/Makefile_32
index 2a1516efb542..7fa519868d70 100644
--- a/arch/x86/pci/Makefile_32
+++ b/arch/x86/pci/Makefile_32
@@ -9,8 +9,8 @@ pci-y := fixup.o
9pci-$(CONFIG_ACPI) += acpi.o 9pci-$(CONFIG_ACPI) += acpi.o
10pci-y += legacy.o irq.o 10pci-y += legacy.o irq.o
11 11
12pci-$(CONFIG_X86_VISWS) := visws.o fixup.o 12pci-$(CONFIG_X86_VISWS) += visws.o fixup.o
13pci-$(CONFIG_X86_NUMAQ) := numa.o irq.o 13pci-$(CONFIG_X86_NUMAQ) += numa.o irq.o
14pci-$(CONFIG_NUMA) += mp_bus_to_node.o 14pci-$(CONFIG_NUMA) += mp_bus_to_node.o
15 15
16obj-y += $(pci-y) common.o early.o 16obj-y += $(pci-y) common.o early.o
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
index 94f6c73a53d0..8af0f0bae2af 100644
--- a/arch/x86/pci/i386.c
+++ b/arch/x86/pci/i386.c
@@ -301,6 +301,13 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
301 prot = pgprot_val(vma->vm_page_prot); 301 prot = pgprot_val(vma->vm_page_prot);
302 if (pat_wc_enabled && write_combine) 302 if (pat_wc_enabled && write_combine)
303 prot |= _PAGE_CACHE_WC; 303 prot |= _PAGE_CACHE_WC;
304 else if (pat_wc_enabled)
305 /*
306 * ioremap() and ioremap_nocache() defaults to UC MINUS for now.
307 * To avoid attribute conflicts, request UC MINUS here
308 * aswell.
309 */
310 prot |= _PAGE_CACHE_UC_MINUS;
304 else if (boot_cpu_data.x86 > 3) 311 else if (boot_cpu_data.x86 > 3)
305 prot |= _PAGE_CACHE_UC; 312 prot |= _PAGE_CACHE_UC;
306 313
@@ -319,9 +326,8 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
319 * - request is uncached, return cannot be write-combine 326 * - request is uncached, return cannot be write-combine
320 * - request is write-combine, return cannot be write-back 327 * - request is write-combine, return cannot be write-back
321 */ 328 */
322 if ((flags == _PAGE_CACHE_UC && 329 if ((flags == _PAGE_CACHE_UC_MINUS &&
323 (new_flags == _PAGE_CACHE_WB || 330 (new_flags == _PAGE_CACHE_WB)) ||
324 new_flags == _PAGE_CACHE_WC)) ||
325 (flags == _PAGE_CACHE_WC && 331 (flags == _PAGE_CACHE_WC &&
326 new_flags == _PAGE_CACHE_WB)) { 332 new_flags == _PAGE_CACHE_WB)) {
327 free_memtype(addr, addr+len); 333 free_memtype(addr, addr+len);
diff --git a/arch/x86/vdso/vdso32-setup.c b/arch/x86/vdso/vdso32-setup.c
index e2af8eee80e3..4dceeb1fc5e0 100644
--- a/arch/x86/vdso/vdso32-setup.c
+++ b/arch/x86/vdso/vdso32-setup.c
@@ -303,8 +303,6 @@ int __init sysenter_setup(void)
303 303
304#ifdef CONFIG_X86_32 304#ifdef CONFIG_X86_32
305 gate_vma_init(); 305 gate_vma_init();
306
307 printk("Compat vDSO mapped to %08lx.\n", __fix_to_virt(FIX_VDSO));
308#endif 306#endif
309 307
310 if (!vdso32_sysenter()) { 308 if (!vdso32_sysenter()) {
diff --git a/drivers/char/toshiba.c b/drivers/char/toshiba.c
index 64f1ceed0b2c..663cd15d7c78 100644
--- a/drivers/char/toshiba.c
+++ b/drivers/char/toshiba.c
@@ -426,7 +426,7 @@ static int tosh_probe(void)
426 int i,major,minor,day,year,month,flag; 426 int i,major,minor,day,year,month,flag;
427 unsigned char signature[7] = { 0x54,0x4f,0x53,0x48,0x49,0x42,0x41 }; 427 unsigned char signature[7] = { 0x54,0x4f,0x53,0x48,0x49,0x42,0x41 };
428 SMMRegisters regs; 428 SMMRegisters regs;
429 void __iomem *bios = ioremap(0xf0000, 0x10000); 429 void __iomem *bios = ioremap_cache(0xf0000, 0x10000);
430 430
431 if (!bios) 431 if (!bios)
432 return -ENOMEM; 432 return -ENOMEM;
diff --git a/include/asm-x86/mach-default/mach_apic.h b/include/asm-x86/mach-default/mach_apic.h
index 0a6634f62abe..21003b56ae95 100644
--- a/include/asm-x86/mach-default/mach_apic.h
+++ b/include/asm-x86/mach-default/mach_apic.h
@@ -109,13 +109,8 @@ static inline int cpu_to_logical_apicid(int cpu)
109 109
110static inline int cpu_present_to_apicid(int mps_cpu) 110static inline int cpu_present_to_apicid(int mps_cpu)
111{ 111{
112#ifdef CONFIG_X86_64 112 if (mps_cpu < NR_CPUS && cpu_present(mps_cpu))
113 if (cpu_present(mps_cpu))
114 return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu); 113 return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu);
115#else
116 if (mps_cpu < get_physical_broadcast())
117 return mps_cpu;
118#endif
119 else 114 else
120 return BAD_APICID; 115 return BAD_APICID;
121} 116}
diff --git a/include/asm-x86/processor.h b/include/asm-x86/processor.h
index 2e7974ec77ec..559105220a47 100644
--- a/include/asm-x86/processor.h
+++ b/include/asm-x86/processor.h
@@ -3,9 +3,6 @@
3 3
4#include <asm/processor-flags.h> 4#include <asm/processor-flags.h>
5 5
6/* migration helper, for KVM - will be removed in 2.6.25: */
7#define Xgt_desc_struct desc_ptr
8
9/* Forward declaration, a strange C thing */ 6/* Forward declaration, a strange C thing */
10struct task_struct; 7struct task_struct;
11struct mm_struct; 8struct mm_struct;
diff --git a/include/asm-x86/proto.h b/include/asm-x86/proto.h
index 1e17bcce450e..6c8b41b03f6d 100644
--- a/include/asm-x86/proto.h
+++ b/include/asm-x86/proto.h
@@ -20,7 +20,11 @@ extern void syscall32_cpu_init(void);
20 20
21extern void check_efer(void); 21extern void check_efer(void);
22 22
23#ifdef CONFIG_X86_BIOS_REBOOT
23extern int reboot_force; 24extern int reboot_force;
25#else
26static const int reboot_force = 0;
27#endif
24 28
25long do_arch_prctl(struct task_struct *task, int code, unsigned long addr); 29long do_arch_prctl(struct task_struct *task, int code, unsigned long addr);
26 30