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++) { |
| 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 | ||
