diff options
Diffstat (limited to 'arch/i386')
-rw-r--r-- | arch/i386/boot/pm.c | 6 | ||||
-rw-r--r-- | arch/i386/boot/video-vesa.c | 34 | ||||
-rw-r--r-- | arch/i386/kernel/alternative.c | 6 | ||||
-rw-r--r-- | arch/i386/kernel/cpu/intel_cacheinfo.c | 4 | ||||
-rw-r--r-- | arch/i386/kernel/cpu/perfctr-watchdog.c | 28 | ||||
-rw-r--r-- | arch/i386/kernel/nmi.c | 2 | ||||
-rw-r--r-- | arch/i386/kernel/ptrace.c | 1 | ||||
-rw-r--r-- | arch/i386/kernel/traps.c | 33 | ||||
-rw-r--r-- | arch/i386/mach-generic/Makefile | 2 | ||||
-rw-r--r-- | arch/i386/mach-voyager/Makefile | 2 | ||||
-rw-r--r-- | arch/i386/mm/highmem.c | 7 | ||||
-rw-r--r-- | arch/i386/mm/hugetlbpage.c | 2 | ||||
-rw-r--r-- | arch/i386/pci/irq.c | 1 | ||||
-rw-r--r-- | arch/i386/pci/pcbios.c | 2 |
14 files changed, 83 insertions, 47 deletions
diff --git a/arch/i386/boot/pm.c b/arch/i386/boot/pm.c index 6be9ca811d17..09fb342cc62e 100644 --- a/arch/i386/boot/pm.c +++ b/arch/i386/boot/pm.c | |||
@@ -122,7 +122,11 @@ static void setup_gdt(void) | |||
122 | /* DS: data, read/write, 4 GB, base 0 */ | 122 | /* DS: data, read/write, 4 GB, base 0 */ |
123 | [GDT_ENTRY_BOOT_DS] = GDT_ENTRY(0xc093, 0, 0xfffff), | 123 | [GDT_ENTRY_BOOT_DS] = GDT_ENTRY(0xc093, 0, 0xfffff), |
124 | }; | 124 | }; |
125 | struct gdt_ptr gdt; | 125 | /* Xen HVM incorrectly stores a pointer to the gdt_ptr, instead |
126 | of the gdt_ptr contents. Thus, make it static so it will | ||
127 | stay in memory, at least long enough that we switch to the | ||
128 | proper kernel GDT. */ | ||
129 | static struct gdt_ptr gdt; | ||
126 | 130 | ||
127 | gdt.len = sizeof(boot_gdt)-1; | 131 | gdt.len = sizeof(boot_gdt)-1; |
128 | gdt.ptr = (u32)&boot_gdt + (ds() << 4); | 132 | gdt.ptr = (u32)&boot_gdt + (ds() << 4); |
diff --git a/arch/i386/boot/video-vesa.c b/arch/i386/boot/video-vesa.c index f1bc71e948cf..192190710710 100644 --- a/arch/i386/boot/video-vesa.c +++ b/arch/i386/boot/video-vesa.c | |||
@@ -29,7 +29,7 @@ static void vesa_store_mode_params_graphics(void); | |||
29 | static int vesa_probe(void) | 29 | static int vesa_probe(void) |
30 | { | 30 | { |
31 | #if defined(CONFIG_VIDEO_VESA) || defined(CONFIG_FIRMWARE_EDID) | 31 | #if defined(CONFIG_VIDEO_VESA) || defined(CONFIG_FIRMWARE_EDID) |
32 | u16 ax; | 32 | u16 ax, cx, di; |
33 | u16 mode; | 33 | u16 mode; |
34 | addr_t mode_ptr; | 34 | addr_t mode_ptr; |
35 | struct mode_info *mi; | 35 | struct mode_info *mi; |
@@ -39,9 +39,11 @@ static int vesa_probe(void) | |||
39 | 39 | ||
40 | vginfo.signature = VBE2_MAGIC; | 40 | vginfo.signature = VBE2_MAGIC; |
41 | 41 | ||
42 | /* Optimistically assume a VESA BIOS is register-clean... */ | ||
43 | ax = 0x4f00; | 42 | ax = 0x4f00; |
44 | asm("int $0x10" : "+a" (ax), "=m" (vginfo) : "D" (&vginfo)); | 43 | di = (size_t)&vginfo; |
44 | asm(INT10 | ||
45 | : "+a" (ax), "+D" (di), "=m" (vginfo) | ||
46 | : : "ebx", "ecx", "edx", "esi"); | ||
45 | 47 | ||
46 | if (ax != 0x004f || | 48 | if (ax != 0x004f || |
47 | vginfo.signature != VESA_MAGIC || | 49 | vginfo.signature != VESA_MAGIC || |
@@ -64,9 +66,11 @@ static int vesa_probe(void) | |||
64 | memset(&vminfo, 0, sizeof vminfo); /* Just in case... */ | 66 | memset(&vminfo, 0, sizeof vminfo); /* Just in case... */ |
65 | 67 | ||
66 | ax = 0x4f01; | 68 | ax = 0x4f01; |
67 | asm("int $0x10" | 69 | cx = mode; |
68 | : "+a" (ax), "=m" (vminfo) | 70 | di = (size_t)&vminfo; |
69 | : "c" (mode), "D" (&vminfo)); | 71 | asm(INT10 |
72 | : "+a" (ax), "+c" (cx), "+D" (di), "=m" (vminfo) | ||
73 | : : "ebx", "edx", "esi"); | ||
70 | 74 | ||
71 | if (ax != 0x004f) | 75 | if (ax != 0x004f) |
72 | continue; | 76 | continue; |
@@ -102,16 +106,18 @@ static int vesa_probe(void) | |||
102 | 106 | ||
103 | static int vesa_set_mode(struct mode_info *mode) | 107 | static int vesa_set_mode(struct mode_info *mode) |
104 | { | 108 | { |
105 | u16 ax; | 109 | u16 ax, bx, cx, di; |
106 | int is_graphic; | 110 | int is_graphic; |
107 | u16 vesa_mode = mode->mode - VIDEO_FIRST_VESA; | 111 | u16 vesa_mode = mode->mode - VIDEO_FIRST_VESA; |
108 | 112 | ||
109 | memset(&vminfo, 0, sizeof vminfo); /* Just in case... */ | 113 | memset(&vminfo, 0, sizeof vminfo); /* Just in case... */ |
110 | 114 | ||
111 | ax = 0x4f01; | 115 | ax = 0x4f01; |
112 | asm("int $0x10" | 116 | cx = vesa_mode; |
113 | : "+a" (ax), "=m" (vminfo) | 117 | di = (size_t)&vminfo; |
114 | : "c" (vesa_mode), "D" (&vminfo)); | 118 | asm(INT10 |
119 | : "+a" (ax), "+c" (cx), "+D" (di), "=m" (vminfo) | ||
120 | : : "ebx", "edx", "esi"); | ||
115 | 121 | ||
116 | if (ax != 0x004f) | 122 | if (ax != 0x004f) |
117 | return -1; | 123 | return -1; |
@@ -129,9 +135,11 @@ static int vesa_set_mode(struct mode_info *mode) | |||
129 | 135 | ||
130 | 136 | ||
131 | ax = 0x4f02; | 137 | ax = 0x4f02; |
132 | asm volatile("int $0x10" | 138 | bx = vesa_mode; |
133 | : "+a" (ax) | 139 | di = 0; |
134 | : "b" (vesa_mode), "D" (0)); | 140 | asm volatile(INT10 |
141 | : "+a" (ax), "+b" (bx), "+D" (di) | ||
142 | : : "ecx", "edx", "esi"); | ||
135 | 143 | ||
136 | if (ax != 0x004f) | 144 | if (ax != 0x004f) |
137 | return -1; | 145 | return -1; |
diff --git a/arch/i386/kernel/alternative.c b/arch/i386/kernel/alternative.c index 9f4ac8b02de4..bd72d94e713e 100644 --- a/arch/i386/kernel/alternative.c +++ b/arch/i386/kernel/alternative.c | |||
@@ -445,8 +445,6 @@ void __kprobes text_poke(void *addr, unsigned char *opcode, int len) | |||
445 | { | 445 | { |
446 | memcpy(addr, opcode, len); | 446 | memcpy(addr, opcode, len); |
447 | sync_core(); | 447 | sync_core(); |
448 | /* Not strictly needed, but can speed CPU recovery up. Ignore cross cacheline | 448 | /* Could also do a CLFLUSH here to speed up CPU recovery; but |
449 | case. */ | 449 | that causes hangs on some VIA CPUs. */ |
450 | if (cpu_has_clflush) | ||
451 | asm("clflush (%0) " :: "r" (addr) : "memory"); | ||
452 | } | 450 | } |
diff --git a/arch/i386/kernel/cpu/intel_cacheinfo.c b/arch/i386/kernel/cpu/intel_cacheinfo.c index d5a456d27d82..db6c25aa5776 100644 --- a/arch/i386/kernel/cpu/intel_cacheinfo.c +++ b/arch/i386/kernel/cpu/intel_cacheinfo.c | |||
@@ -515,7 +515,7 @@ static int __cpuinit detect_cache_attributes(unsigned int cpu) | |||
515 | 515 | ||
516 | cpuid4_info[cpu] = kzalloc( | 516 | cpuid4_info[cpu] = kzalloc( |
517 | sizeof(struct _cpuid4_info) * num_cache_leaves, GFP_KERNEL); | 517 | sizeof(struct _cpuid4_info) * num_cache_leaves, GFP_KERNEL); |
518 | if (unlikely(cpuid4_info[cpu] == NULL)) | 518 | if (cpuid4_info[cpu] == NULL) |
519 | return -ENOMEM; | 519 | return -ENOMEM; |
520 | 520 | ||
521 | oldmask = current->cpus_allowed; | 521 | oldmask = current->cpus_allowed; |
@@ -748,6 +748,8 @@ static void __cpuinit cache_remove_dev(struct sys_device * sys_dev) | |||
748 | unsigned int cpu = sys_dev->id; | 748 | unsigned int cpu = sys_dev->id; |
749 | unsigned long i; | 749 | unsigned long i; |
750 | 750 | ||
751 | if (cpuid4_info[cpu] == NULL) | ||
752 | return; | ||
751 | for (i = 0; i < num_cache_leaves; i++) { | 753 | for (i = 0; i < num_cache_leaves; i++) { |
752 | cache_remove_shared_cpu_map(cpu, i); | 754 | cache_remove_shared_cpu_map(cpu, i); |
753 | kobject_unregister(&(INDEX_KOBJECT_PTR(cpu,i)->kobj)); | 755 | kobject_unregister(&(INDEX_KOBJECT_PTR(cpu,i)->kobj)); |
diff --git a/arch/i386/kernel/cpu/perfctr-watchdog.c b/arch/i386/kernel/cpu/perfctr-watchdog.c index 4be488e73bee..93fecd4b03de 100644 --- a/arch/i386/kernel/cpu/perfctr-watchdog.c +++ b/arch/i386/kernel/cpu/perfctr-watchdog.c | |||
@@ -263,8 +263,8 @@ static int setup_k7_watchdog(unsigned nmi_hz) | |||
263 | unsigned int evntsel; | 263 | unsigned int evntsel; |
264 | struct nmi_watchdog_ctlblk *wd = &__get_cpu_var(nmi_watchdog_ctlblk); | 264 | struct nmi_watchdog_ctlblk *wd = &__get_cpu_var(nmi_watchdog_ctlblk); |
265 | 265 | ||
266 | perfctr_msr = MSR_K7_PERFCTR0; | 266 | perfctr_msr = wd_ops->perfctr; |
267 | evntsel_msr = MSR_K7_EVNTSEL0; | 267 | evntsel_msr = wd_ops->evntsel; |
268 | 268 | ||
269 | wrmsrl(perfctr_msr, 0UL); | 269 | wrmsrl(perfctr_msr, 0UL); |
270 | 270 | ||
@@ -343,8 +343,8 @@ static int setup_p6_watchdog(unsigned nmi_hz) | |||
343 | unsigned int evntsel; | 343 | unsigned int evntsel; |
344 | struct nmi_watchdog_ctlblk *wd = &__get_cpu_var(nmi_watchdog_ctlblk); | 344 | struct nmi_watchdog_ctlblk *wd = &__get_cpu_var(nmi_watchdog_ctlblk); |
345 | 345 | ||
346 | perfctr_msr = MSR_P6_PERFCTR0; | 346 | perfctr_msr = wd_ops->perfctr; |
347 | evntsel_msr = MSR_P6_EVNTSEL0; | 347 | evntsel_msr = wd_ops->evntsel; |
348 | 348 | ||
349 | /* KVM doesn't implement this MSR */ | 349 | /* KVM doesn't implement this MSR */ |
350 | if (wrmsr_safe(perfctr_msr, 0, 0) < 0) | 350 | if (wrmsr_safe(perfctr_msr, 0, 0) < 0) |
@@ -569,8 +569,8 @@ static int setup_intel_arch_watchdog(unsigned nmi_hz) | |||
569 | (ebx & ARCH_PERFMON_UNHALTED_CORE_CYCLES_PRESENT)) | 569 | (ebx & ARCH_PERFMON_UNHALTED_CORE_CYCLES_PRESENT)) |
570 | return 0; | 570 | return 0; |
571 | 571 | ||
572 | perfctr_msr = MSR_ARCH_PERFMON_PERFCTR1; | 572 | perfctr_msr = wd_ops->perfctr; |
573 | evntsel_msr = MSR_ARCH_PERFMON_EVENTSEL1; | 573 | evntsel_msr = wd_ops->evntsel; |
574 | 574 | ||
575 | wrmsrl(perfctr_msr, 0UL); | 575 | wrmsrl(perfctr_msr, 0UL); |
576 | 576 | ||
@@ -605,6 +605,16 @@ static struct wd_ops intel_arch_wd_ops = { | |||
605 | .evntsel = MSR_ARCH_PERFMON_EVENTSEL1, | 605 | .evntsel = MSR_ARCH_PERFMON_EVENTSEL1, |
606 | }; | 606 | }; |
607 | 607 | ||
608 | static struct wd_ops coreduo_wd_ops = { | ||
609 | .reserve = single_msr_reserve, | ||
610 | .unreserve = single_msr_unreserve, | ||
611 | .setup = setup_intel_arch_watchdog, | ||
612 | .rearm = p6_rearm, | ||
613 | .stop = single_msr_stop_watchdog, | ||
614 | .perfctr = MSR_ARCH_PERFMON_PERFCTR0, | ||
615 | .evntsel = MSR_ARCH_PERFMON_EVENTSEL0, | ||
616 | }; | ||
617 | |||
608 | static void probe_nmi_watchdog(void) | 618 | static void probe_nmi_watchdog(void) |
609 | { | 619 | { |
610 | switch (boot_cpu_data.x86_vendor) { | 620 | switch (boot_cpu_data.x86_vendor) { |
@@ -615,6 +625,12 @@ static void probe_nmi_watchdog(void) | |||
615 | wd_ops = &k7_wd_ops; | 625 | wd_ops = &k7_wd_ops; |
616 | break; | 626 | break; |
617 | case X86_VENDOR_INTEL: | 627 | case X86_VENDOR_INTEL: |
628 | /* Work around Core Duo (Yonah) errata AE49 where perfctr1 | ||
629 | doesn't have a working enable bit. */ | ||
630 | if (boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model == 14) { | ||
631 | wd_ops = &coreduo_wd_ops; | ||
632 | break; | ||
633 | } | ||
618 | if (cpu_has(&boot_cpu_data, X86_FEATURE_ARCH_PERFMON)) { | 634 | if (cpu_has(&boot_cpu_data, X86_FEATURE_ARCH_PERFMON)) { |
619 | wd_ops = &intel_arch_wd_ops; | 635 | wd_ops = &intel_arch_wd_ops; |
620 | break; | 636 | break; |
diff --git a/arch/i386/kernel/nmi.c b/arch/i386/kernel/nmi.c index 8c1c965eb2a8..c7227e2180f8 100644 --- a/arch/i386/kernel/nmi.c +++ b/arch/i386/kernel/nmi.c | |||
@@ -115,12 +115,12 @@ static int __init check_nmi_watchdog(void) | |||
115 | atomic_dec(&nmi_active); | 115 | atomic_dec(&nmi_active); |
116 | } | 116 | } |
117 | } | 117 | } |
118 | endflag = 1; | ||
118 | if (!atomic_read(&nmi_active)) { | 119 | if (!atomic_read(&nmi_active)) { |
119 | kfree(prev_nmi_count); | 120 | kfree(prev_nmi_count); |
120 | atomic_set(&nmi_active, -1); | 121 | atomic_set(&nmi_active, -1); |
121 | return -1; | 122 | return -1; |
122 | } | 123 | } |
123 | endflag = 1; | ||
124 | printk("OK.\n"); | 124 | printk("OK.\n"); |
125 | 125 | ||
126 | /* now that we know it works we can reduce NMI frequency to | 126 | /* now that we know it works we can reduce NMI frequency to |
diff --git a/arch/i386/kernel/ptrace.c b/arch/i386/kernel/ptrace.c index 0c8f00e69c4d..7c1b92522e95 100644 --- a/arch/i386/kernel/ptrace.c +++ b/arch/i386/kernel/ptrace.c | |||
@@ -274,7 +274,6 @@ static void clear_singlestep(struct task_struct *child) | |||
274 | void ptrace_disable(struct task_struct *child) | 274 | void ptrace_disable(struct task_struct *child) |
275 | { | 275 | { |
276 | clear_singlestep(child); | 276 | clear_singlestep(child); |
277 | clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); | ||
278 | clear_tsk_thread_flag(child, TIF_SYSCALL_EMU); | 277 | clear_tsk_thread_flag(child, TIF_SYSCALL_EMU); |
279 | } | 278 | } |
280 | 279 | ||
diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c index cfffe3dd9e83..47b0bef335bd 100644 --- a/arch/i386/kernel/traps.c +++ b/arch/i386/kernel/traps.c | |||
@@ -100,36 +100,45 @@ asmlinkage void machine_check(void); | |||
100 | int kstack_depth_to_print = 24; | 100 | int kstack_depth_to_print = 24; |
101 | static unsigned int code_bytes = 64; | 101 | static unsigned int code_bytes = 64; |
102 | 102 | ||
103 | static inline int valid_stack_ptr(struct thread_info *tinfo, void *p) | 103 | static inline int valid_stack_ptr(struct thread_info *tinfo, void *p, unsigned size) |
104 | { | 104 | { |
105 | return p > (void *)tinfo && | 105 | return p > (void *)tinfo && |
106 | p < (void *)tinfo + THREAD_SIZE - 3; | 106 | p <= (void *)tinfo + THREAD_SIZE - size; |
107 | } | 107 | } |
108 | 108 | ||
109 | /* The form of the top of the frame on the stack */ | ||
110 | struct stack_frame { | ||
111 | struct stack_frame *next_frame; | ||
112 | unsigned long return_address; | ||
113 | }; | ||
114 | |||
109 | static inline unsigned long print_context_stack(struct thread_info *tinfo, | 115 | static inline unsigned long print_context_stack(struct thread_info *tinfo, |
110 | unsigned long *stack, unsigned long ebp, | 116 | unsigned long *stack, unsigned long ebp, |
111 | struct stacktrace_ops *ops, void *data) | 117 | struct stacktrace_ops *ops, void *data) |
112 | { | 118 | { |
113 | unsigned long addr; | ||
114 | |||
115 | #ifdef CONFIG_FRAME_POINTER | 119 | #ifdef CONFIG_FRAME_POINTER |
116 | while (valid_stack_ptr(tinfo, (void *)ebp)) { | 120 | struct stack_frame *frame = (struct stack_frame *)ebp; |
117 | unsigned long new_ebp; | 121 | while (valid_stack_ptr(tinfo, frame, sizeof(*frame))) { |
118 | addr = *(unsigned long *)(ebp + 4); | 122 | struct stack_frame *next; |
123 | unsigned long addr; | ||
124 | |||
125 | addr = frame->return_address; | ||
119 | ops->address(data, addr); | 126 | ops->address(data, addr); |
120 | /* | 127 | /* |
121 | * break out of recursive entries (such as | 128 | * break out of recursive entries (such as |
122 | * end_of_stack_stop_unwind_function). Also, | 129 | * end_of_stack_stop_unwind_function). Also, |
123 | * we can never allow a frame pointer to | 130 | * we can never allow a frame pointer to |
124 | * move downwards! | 131 | * move downwards! |
125 | */ | 132 | */ |
126 | new_ebp = *(unsigned long *)ebp; | 133 | next = frame->next_frame; |
127 | if (new_ebp <= ebp) | 134 | if (next <= frame) |
128 | break; | 135 | break; |
129 | ebp = new_ebp; | 136 | frame = next; |
130 | } | 137 | } |
131 | #else | 138 | #else |
132 | while (valid_stack_ptr(tinfo, stack)) { | 139 | while (valid_stack_ptr(tinfo, stack, sizeof(*stack))) { |
140 | unsigned long addr; | ||
141 | |||
133 | addr = *stack++; | 142 | addr = *stack++; |
134 | if (__kernel_text_address(addr)) | 143 | if (__kernel_text_address(addr)) |
135 | ops->address(data, addr); | 144 | ops->address(data, addr); |
diff --git a/arch/i386/mach-generic/Makefile b/arch/i386/mach-generic/Makefile index 77fbc9f64fbc..6914485c0d85 100644 --- a/arch/i386/mach-generic/Makefile +++ b/arch/i386/mach-generic/Makefile | |||
@@ -2,6 +2,6 @@ | |||
2 | # Makefile for the generic architecture | 2 | # Makefile for the generic architecture |
3 | # | 3 | # |
4 | 4 | ||
5 | EXTRA_CFLAGS += -I../kernel | 5 | EXTRA_CFLAGS := -Iarch/i386/kernel |
6 | 6 | ||
7 | obj-y := probe.o summit.o bigsmp.o es7000.o default.o ../mach-es7000/ | 7 | obj-y := probe.o summit.o bigsmp.o es7000.o default.o ../mach-es7000/ |
diff --git a/arch/i386/mach-voyager/Makefile b/arch/i386/mach-voyager/Makefile index f24d29651318..33b74cf0dd22 100644 --- a/arch/i386/mach-voyager/Makefile +++ b/arch/i386/mach-voyager/Makefile | |||
@@ -2,7 +2,7 @@ | |||
2 | # Makefile for the linux kernel. | 2 | # Makefile for the linux kernel. |
3 | # | 3 | # |
4 | 4 | ||
5 | EXTRA_CFLAGS += -I../kernel | 5 | EXTRA_CFLAGS := -Iarch/i386/kernel |
6 | obj-y := setup.o voyager_basic.o voyager_thread.o | 6 | obj-y := setup.o voyager_basic.o voyager_thread.o |
7 | 7 | ||
8 | obj-$(CONFIG_SMP) += voyager_smp.o voyager_cat.o | 8 | obj-$(CONFIG_SMP) += voyager_smp.o voyager_cat.o |
diff --git a/arch/i386/mm/highmem.c b/arch/i386/mm/highmem.c index ad8d86cc683e..1c3bf95f7356 100644 --- a/arch/i386/mm/highmem.c +++ b/arch/i386/mm/highmem.c | |||
@@ -34,17 +34,16 @@ void *kmap_atomic_prot(struct page *page, enum km_type type, pgprot_t prot) | |||
34 | /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ | 34 | /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ |
35 | pagefault_disable(); | 35 | pagefault_disable(); |
36 | 36 | ||
37 | idx = type + KM_TYPE_NR*smp_processor_id(); | ||
38 | BUG_ON(!pte_none(*(kmap_pte-idx))); | ||
39 | |||
40 | if (!PageHighMem(page)) | 37 | if (!PageHighMem(page)) |
41 | return page_address(page); | 38 | return page_address(page); |
42 | 39 | ||
40 | idx = type + KM_TYPE_NR*smp_processor_id(); | ||
43 | vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); | 41 | vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); |
42 | BUG_ON(!pte_none(*(kmap_pte-idx))); | ||
44 | set_pte(kmap_pte-idx, mk_pte(page, prot)); | 43 | set_pte(kmap_pte-idx, mk_pte(page, prot)); |
45 | arch_flush_lazy_mmu_mode(); | 44 | arch_flush_lazy_mmu_mode(); |
46 | 45 | ||
47 | return (void*) vaddr; | 46 | return (void *)vaddr; |
48 | } | 47 | } |
49 | 48 | ||
50 | void *kmap_atomic(struct page *page, enum km_type type) | 49 | void *kmap_atomic(struct page *page, enum km_type type) |
diff --git a/arch/i386/mm/hugetlbpage.c b/arch/i386/mm/hugetlbpage.c index efdf95ac8031..6c06d9c0488e 100644 --- a/arch/i386/mm/hugetlbpage.c +++ b/arch/i386/mm/hugetlbpage.c | |||
@@ -367,7 +367,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr, | |||
367 | return -ENOMEM; | 367 | return -ENOMEM; |
368 | 368 | ||
369 | if (flags & MAP_FIXED) { | 369 | if (flags & MAP_FIXED) { |
370 | if (prepare_hugepage_range(addr, len, pgoff)) | 370 | if (prepare_hugepage_range(addr, len)) |
371 | return -EINVAL; | 371 | return -EINVAL; |
372 | return addr; | 372 | return addr; |
373 | } | 373 | } |
diff --git a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c index 665db063a40a..8434f2323b87 100644 --- a/arch/i386/pci/irq.c +++ b/arch/i386/pci/irq.c | |||
@@ -550,6 +550,7 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route | |||
550 | case PCI_DEVICE_ID_INTEL_ICH9_3: | 550 | case PCI_DEVICE_ID_INTEL_ICH9_3: |
551 | case PCI_DEVICE_ID_INTEL_ICH9_4: | 551 | case PCI_DEVICE_ID_INTEL_ICH9_4: |
552 | case PCI_DEVICE_ID_INTEL_ICH9_5: | 552 | case PCI_DEVICE_ID_INTEL_ICH9_5: |
553 | case PCI_DEVICE_ID_INTEL_TOLAPAI_0: | ||
553 | r->name = "PIIX/ICH"; | 554 | r->name = "PIIX/ICH"; |
554 | r->get = pirq_piix_get; | 555 | r->get = pirq_piix_get; |
555 | r->set = pirq_piix_set; | 556 | r->set = pirq_piix_set; |
diff --git a/arch/i386/pci/pcbios.c b/arch/i386/pci/pcbios.c index 5f5193401bea..10ac8c316c46 100644 --- a/arch/i386/pci/pcbios.c +++ b/arch/i386/pci/pcbios.c | |||
@@ -412,7 +412,7 @@ struct irq_routing_options { | |||
412 | u16 segment; | 412 | u16 segment; |
413 | } __attribute__((packed)); | 413 | } __attribute__((packed)); |
414 | 414 | ||
415 | struct irq_routing_table * __devinit pcibios_get_irq_routing_table(void) | 415 | struct irq_routing_table * pcibios_get_irq_routing_table(void) |
416 | { | 416 | { |
417 | struct irq_routing_options opt; | 417 | struct irq_routing_options opt; |
418 | struct irq_routing_table *rt = NULL; | 418 | struct irq_routing_table *rt = NULL; |