diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 22:31:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 22:31:52 -0400 |
commit | 958a2f29a6520a1d2973077ce7854ea9a44f48a2 (patch) | |
tree | 918bc7a850bab351c2a91dbfea66f58d9258495d | |
parent | 6de3d58dcfbab516dbe9aff36ea9542f40cd1bf2 (diff) | |
parent | 895d30935ebe05f192e844792668bf8d19deaae7 (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/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++) { |
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); | |||
14 | const struct dma_mapping_ops *dma_ops; | 14 | const struct dma_mapping_ops *dma_ops; |
15 | EXPORT_SYMBOL(dma_ops); | 15 | EXPORT_SYMBOL(dma_ops); |
16 | 16 | ||
17 | int iommu_sac_force __read_mostly = 0; | 17 | static int iommu_sac_force __read_mostly; |
18 | 18 | ||
19 | #ifdef CONFIG_IOMMU_DEBUG | 19 | #ifdef CONFIG_IOMMU_DEBUG |
20 | int panic_on_overflow __read_mostly = 1; | 20 | int 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); | |||
155 | EXPORT_SYMBOL(kunmap); | 155 | EXPORT_SYMBOL(kunmap); |
156 | EXPORT_SYMBOL(kmap_atomic); | 156 | EXPORT_SYMBOL(kmap_atomic); |
157 | EXPORT_SYMBOL(kunmap_atomic); | 157 | EXPORT_SYMBOL(kunmap_atomic); |
158 | EXPORT_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 | */ |
256 | void __iomem *ioremap_nocache(resource_size_t phys_addr, unsigned long size) | 260 | void __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 | } |
261 | EXPORT_SYMBOL(ioremap_nocache); | 274 | EXPORT_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 | ||
778 | int _set_memory_uc(unsigned long addr, int numpages) | 778 | int _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 | ||
784 | int set_memory_uc(unsigned long addr, int numpages) | 787 | int 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 | |||
9 | pci-$(CONFIG_ACPI) += acpi.o | 9 | pci-$(CONFIG_ACPI) += acpi.o |
10 | pci-y += legacy.o irq.o | 10 | pci-y += legacy.o irq.o |
11 | 11 | ||
12 | pci-$(CONFIG_X86_VISWS) := visws.o fixup.o | 12 | pci-$(CONFIG_X86_VISWS) += visws.o fixup.o |
13 | pci-$(CONFIG_X86_NUMAQ) := numa.o irq.o | 13 | pci-$(CONFIG_X86_NUMAQ) += numa.o irq.o |
14 | pci-$(CONFIG_NUMA) += mp_bus_to_node.o | 14 | pci-$(CONFIG_NUMA) += mp_bus_to_node.o |
15 | 15 | ||
16 | obj-y += $(pci-y) common.o early.o | 16 | obj-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 | ||
110 | static inline int cpu_present_to_apicid(int mps_cpu) | 110 | static 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 */ |
10 | struct task_struct; | 7 | struct task_struct; |
11 | struct mm_struct; | 8 | struct 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 | ||
21 | extern void check_efer(void); | 21 | extern void check_efer(void); |
22 | 22 | ||
23 | #ifdef CONFIG_X86_BIOS_REBOOT | ||
23 | extern int reboot_force; | 24 | extern int reboot_force; |
25 | #else | ||
26 | static const int reboot_force = 0; | ||
27 | #endif | ||
24 | 28 | ||
25 | long do_arch_prctl(struct task_struct *task, int code, unsigned long addr); | 29 | long do_arch_prctl(struct task_struct *task, int code, unsigned long addr); |
26 | 30 | ||