diff options
Diffstat (limited to 'include')
53 files changed, 178 insertions, 123 deletions
diff --git a/include/acpi/processor.h b/include/acpi/processor.h index f9f987f8e661..ec3ffdadb4d2 100644 --- a/include/acpi/processor.h +++ b/include/acpi/processor.h | |||
@@ -232,7 +232,7 @@ struct acpi_processor_errata { | |||
232 | 232 | ||
233 | extern int acpi_processor_preregister_performance(struct | 233 | extern int acpi_processor_preregister_performance(struct |
234 | acpi_processor_performance | 234 | acpi_processor_performance |
235 | **performance); | 235 | *performance); |
236 | 236 | ||
237 | extern int acpi_processor_register_performance(struct acpi_processor_performance | 237 | extern int acpi_processor_register_performance(struct acpi_processor_performance |
238 | *performance, unsigned int cpu); | 238 | *performance, unsigned int cpu); |
diff --git a/include/asm-alpha/fcntl.h b/include/asm-alpha/fcntl.h index 87f2cf459e26..25da0017ec87 100644 --- a/include/asm-alpha/fcntl.h +++ b/include/asm-alpha/fcntl.h | |||
@@ -16,6 +16,7 @@ | |||
16 | #define O_LARGEFILE 0400000 /* will be set by the kernel on every open */ | 16 | #define O_LARGEFILE 0400000 /* will be set by the kernel on every open */ |
17 | #define O_DIRECT 02000000 /* direct disk access - should check with OSF/1 */ | 17 | #define O_DIRECT 02000000 /* direct disk access - should check with OSF/1 */ |
18 | #define O_NOATIME 04000000 | 18 | #define O_NOATIME 04000000 |
19 | #define O_CLOEXEC 010000000 /* set close_on_exec */ | ||
19 | 20 | ||
20 | #define F_GETLK 7 | 21 | #define F_GETLK 7 |
21 | #define F_SETLK 8 | 22 | #define F_SETLK 8 |
diff --git a/include/asm-arm/pgtable-nommu.h b/include/asm-arm/pgtable-nommu.h index b186bc820e30..33c83dd87965 100644 --- a/include/asm-arm/pgtable-nommu.h +++ b/include/asm-arm/pgtable-nommu.h | |||
@@ -74,7 +74,6 @@ static inline int pte_file(pte_t pte) { return 0; } | |||
74 | * These would be in other places but having them here reduces the diffs. | 74 | * These would be in other places but having them here reduces the diffs. |
75 | */ | 75 | */ |
76 | extern unsigned int kobjsize(const void *objp); | 76 | extern unsigned int kobjsize(const void *objp); |
77 | extern int is_in_rom(unsigned long); | ||
78 | 77 | ||
79 | /* | 78 | /* |
80 | * No page table caches to initialise. | 79 | * No page table caches to initialise. |
diff --git a/include/asm-avr32/io.h b/include/asm-avr32/io.h index e30d4b3bd836..64bb92bb6773 100644 --- a/include/asm-avr32/io.h +++ b/include/asm-avr32/io.h | |||
@@ -255,6 +255,8 @@ static inline void memset_io(volatile void __iomem *addr, unsigned char val, | |||
255 | memset((void __force *)addr, val, count); | 255 | memset((void __force *)addr, val, count); |
256 | } | 256 | } |
257 | 257 | ||
258 | #define mmiowb() | ||
259 | |||
258 | #define IO_SPACE_LIMIT 0xffffffff | 260 | #define IO_SPACE_LIMIT 0xffffffff |
259 | 261 | ||
260 | extern void __iomem *__ioremap(unsigned long offset, size_t size, | 262 | extern void __iomem *__ioremap(unsigned long offset, size_t size, |
diff --git a/include/asm-avr32/pgalloc.h b/include/asm-avr32/pgalloc.h index bb82e70cde8d..0e680f47209f 100644 --- a/include/asm-avr32/pgalloc.h +++ b/include/asm-avr32/pgalloc.h | |||
@@ -27,13 +27,7 @@ static __inline__ void pmd_populate(struct mm_struct *mm, pmd_t *pmd, | |||
27 | */ | 27 | */ |
28 | static __inline__ pgd_t *pgd_alloc(struct mm_struct *mm) | 28 | static __inline__ pgd_t *pgd_alloc(struct mm_struct *mm) |
29 | { | 29 | { |
30 | unsigned int pgd_size = (USER_PTRS_PER_PGD * sizeof(pgd_t)); | 30 | return kcalloc(USER_PTRS_PER_PGD, sizeof(pgd_t), GFP_KERNEL); |
31 | pgd_t *pgd = kmalloc(pgd_size, GFP_KERNEL); | ||
32 | |||
33 | if (pgd) | ||
34 | memset(pgd, 0, pgd_size); | ||
35 | |||
36 | return pgd; | ||
37 | } | 31 | } |
38 | 32 | ||
39 | static inline void pgd_free(pgd_t *pgd) | 33 | static inline void pgd_free(pgd_t *pgd) |
@@ -44,18 +38,9 @@ static inline void pgd_free(pgd_t *pgd) | |||
44 | static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, | 38 | static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, |
45 | unsigned long address) | 39 | unsigned long address) |
46 | { | 40 | { |
47 | int count = 0; | ||
48 | pte_t *pte; | 41 | pte_t *pte; |
49 | 42 | ||
50 | do { | 43 | pte = (pte_t *)get_zeroed_page(GFP_KERNEL | __GFP_REPEAT); |
51 | pte = (pte_t *) __get_free_page(GFP_KERNEL | __GFP_REPEAT); | ||
52 | if (pte) | ||
53 | clear_page(pte); | ||
54 | else { | ||
55 | current->state = TASK_UNINTERRUPTIBLE; | ||
56 | schedule_timeout(HZ); | ||
57 | } | ||
58 | } while (!pte && (count++ < 10)); | ||
59 | 44 | ||
60 | return pte; | 45 | return pte; |
61 | } | 46 | } |
@@ -63,18 +48,9 @@ static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, | |||
63 | static inline struct page *pte_alloc_one(struct mm_struct *mm, | 48 | static inline struct page *pte_alloc_one(struct mm_struct *mm, |
64 | unsigned long address) | 49 | unsigned long address) |
65 | { | 50 | { |
66 | int count = 0; | ||
67 | struct page *pte; | 51 | struct page *pte; |
68 | 52 | ||
69 | do { | 53 | pte = alloc_page(GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO); |
70 | pte = alloc_pages(GFP_KERNEL, 0); | ||
71 | if (pte) | ||
72 | clear_page(page_address(pte)); | ||
73 | else { | ||
74 | current->state = TASK_UNINTERRUPTIBLE; | ||
75 | schedule_timeout(HZ); | ||
76 | } | ||
77 | } while (!pte && (count++ < 10)); | ||
78 | 54 | ||
79 | return pte; | 55 | return pte; |
80 | } | 56 | } |
diff --git a/include/asm-avr32/pgtable.h b/include/asm-avr32/pgtable.h index c07bdd10b891..018f6e2a0242 100644 --- a/include/asm-avr32/pgtable.h +++ b/include/asm-avr32/pgtable.h | |||
@@ -32,8 +32,6 @@ | |||
32 | #define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE) | 32 | #define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE) |
33 | #define FIRST_USER_ADDRESS 0 | 33 | #define FIRST_USER_ADDRESS 0 |
34 | 34 | ||
35 | #define PTE_PHYS_MASK 0x1ffff000 | ||
36 | |||
37 | #ifndef __ASSEMBLY__ | 35 | #ifndef __ASSEMBLY__ |
38 | extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; | 36 | extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; |
39 | extern void paging_init(void); | 37 | extern void paging_init(void); |
@@ -265,7 +263,7 @@ static inline pte_t pte_mkyoung(pte_t pte) | |||
265 | * trivial. | 263 | * trivial. |
266 | */ | 264 | */ |
267 | #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) | 265 | #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) |
268 | #define pte_page(x) phys_to_page(pte_val(x) & PTE_PHYS_MASK) | 266 | #define pte_page(x) (pfn_to_page(pte_pfn(x))) |
269 | 267 | ||
270 | /* | 268 | /* |
271 | * Mark the prot value as uncacheable and unbufferable | 269 | * Mark the prot value as uncacheable and unbufferable |
diff --git a/include/asm-frv/unistd.h b/include/asm-frv/unistd.h index 7306c71a8926..cd84f1771e34 100644 --- a/include/asm-frv/unistd.h +++ b/include/asm-frv/unistd.h | |||
@@ -330,10 +330,11 @@ | |||
330 | #define __NR_signalfd 321 | 330 | #define __NR_signalfd 321 |
331 | #define __NR_timerfd 322 | 331 | #define __NR_timerfd 322 |
332 | #define __NR_eventfd 323 | 332 | #define __NR_eventfd 323 |
333 | #define __NR_fallocate 324 | ||
333 | 334 | ||
334 | #ifdef __KERNEL__ | 335 | #ifdef __KERNEL__ |
335 | 336 | ||
336 | #define NR_syscalls 324 | 337 | #define NR_syscalls 325 |
337 | 338 | ||
338 | #define __ARCH_WANT_IPC_PARSE_VERSION | 339 | #define __ARCH_WANT_IPC_PARSE_VERSION |
339 | /* #define __ARCH_WANT_OLD_READDIR */ | 340 | /* #define __ARCH_WANT_OLD_READDIR */ |
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h index f605e8d0eed3..5f0d797d33fd 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _ASM_GENERIC_PGTABLE_H | 2 | #define _ASM_GENERIC_PGTABLE_H |
3 | 3 | ||
4 | #ifndef __ASSEMBLY__ | 4 | #ifndef __ASSEMBLY__ |
5 | #ifdef CONFIG_MMU | ||
5 | 6 | ||
6 | #ifndef __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS | 7 | #ifndef __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS |
7 | /* | 8 | /* |
@@ -133,41 +134,6 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addres | |||
133 | #endif | 134 | #endif |
134 | 135 | ||
135 | /* | 136 | /* |
136 | * A facility to provide lazy MMU batching. This allows PTE updates and | ||
137 | * page invalidations to be delayed until a call to leave lazy MMU mode | ||
138 | * is issued. Some architectures may benefit from doing this, and it is | ||
139 | * beneficial for both shadow and direct mode hypervisors, which may batch | ||
140 | * the PTE updates which happen during this window. Note that using this | ||
141 | * interface requires that read hazards be removed from the code. A read | ||
142 | * hazard could result in the direct mode hypervisor case, since the actual | ||
143 | * write to the page tables may not yet have taken place, so reads though | ||
144 | * a raw PTE pointer after it has been modified are not guaranteed to be | ||
145 | * up to date. This mode can only be entered and left under the protection of | ||
146 | * the page table locks for all page tables which may be modified. In the UP | ||
147 | * case, this is required so that preemption is disabled, and in the SMP case, | ||
148 | * it must synchronize the delayed page table writes properly on other CPUs. | ||
149 | */ | ||
150 | #ifndef __HAVE_ARCH_ENTER_LAZY_MMU_MODE | ||
151 | #define arch_enter_lazy_mmu_mode() do {} while (0) | ||
152 | #define arch_leave_lazy_mmu_mode() do {} while (0) | ||
153 | #define arch_flush_lazy_mmu_mode() do {} while (0) | ||
154 | #endif | ||
155 | |||
156 | /* | ||
157 | * A facility to provide batching of the reload of page tables with the | ||
158 | * actual context switch code for paravirtualized guests. By convention, | ||
159 | * only one of the lazy modes (CPU, MMU) should be active at any given | ||
160 | * time, entry should never be nested, and entry and exits should always | ||
161 | * be paired. This is for sanity of maintaining and reasoning about the | ||
162 | * kernel code. | ||
163 | */ | ||
164 | #ifndef __HAVE_ARCH_ENTER_LAZY_CPU_MODE | ||
165 | #define arch_enter_lazy_cpu_mode() do {} while (0) | ||
166 | #define arch_leave_lazy_cpu_mode() do {} while (0) | ||
167 | #define arch_flush_lazy_cpu_mode() do {} while (0) | ||
168 | #endif | ||
169 | |||
170 | /* | ||
171 | * When walking page tables, get the address of the next boundary, | 137 | * When walking page tables, get the address of the next boundary, |
172 | * or the end address of the range if that comes earlier. Although no | 138 | * or the end address of the range if that comes earlier. Although no |
173 | * vma end wraps to 0, rounded up __boundary may wrap to 0 throughout. | 139 | * vma end wraps to 0, rounded up __boundary may wrap to 0 throughout. |
@@ -233,6 +199,43 @@ static inline int pmd_none_or_clear_bad(pmd_t *pmd) | |||
233 | } | 199 | } |
234 | return 0; | 200 | return 0; |
235 | } | 201 | } |
202 | #endif /* CONFIG_MMU */ | ||
203 | |||
204 | /* | ||
205 | * A facility to provide lazy MMU batching. This allows PTE updates and | ||
206 | * page invalidations to be delayed until a call to leave lazy MMU mode | ||
207 | * is issued. Some architectures may benefit from doing this, and it is | ||
208 | * beneficial for both shadow and direct mode hypervisors, which may batch | ||
209 | * the PTE updates which happen during this window. Note that using this | ||
210 | * interface requires that read hazards be removed from the code. A read | ||
211 | * hazard could result in the direct mode hypervisor case, since the actual | ||
212 | * write to the page tables may not yet have taken place, so reads though | ||
213 | * a raw PTE pointer after it has been modified are not guaranteed to be | ||
214 | * up to date. This mode can only be entered and left under the protection of | ||
215 | * the page table locks for all page tables which may be modified. In the UP | ||
216 | * case, this is required so that preemption is disabled, and in the SMP case, | ||
217 | * it must synchronize the delayed page table writes properly on other CPUs. | ||
218 | */ | ||
219 | #ifndef __HAVE_ARCH_ENTER_LAZY_MMU_MODE | ||
220 | #define arch_enter_lazy_mmu_mode() do {} while (0) | ||
221 | #define arch_leave_lazy_mmu_mode() do {} while (0) | ||
222 | #define arch_flush_lazy_mmu_mode() do {} while (0) | ||
223 | #endif | ||
224 | |||
225 | /* | ||
226 | * A facility to provide batching of the reload of page tables with the | ||
227 | * actual context switch code for paravirtualized guests. By convention, | ||
228 | * only one of the lazy modes (CPU, MMU) should be active at any given | ||
229 | * time, entry should never be nested, and entry and exits should always | ||
230 | * be paired. This is for sanity of maintaining and reasoning about the | ||
231 | * kernel code. | ||
232 | */ | ||
233 | #ifndef __HAVE_ARCH_ENTER_LAZY_CPU_MODE | ||
234 | #define arch_enter_lazy_cpu_mode() do {} while (0) | ||
235 | #define arch_leave_lazy_cpu_mode() do {} while (0) | ||
236 | #define arch_flush_lazy_cpu_mode() do {} while (0) | ||
237 | #endif | ||
238 | |||
236 | #endif /* !__ASSEMBLY__ */ | 239 | #endif /* !__ASSEMBLY__ */ |
237 | 240 | ||
238 | #endif /* _ASM_GENERIC_PGTABLE_H */ | 241 | #endif /* _ASM_GENERIC_PGTABLE_H */ |
diff --git a/include/asm-i386/apic.h b/include/asm-i386/apic.h index 1e8f6f252dd3..4091b33dcb10 100644 --- a/include/asm-i386/apic.h +++ b/include/asm-i386/apic.h | |||
@@ -116,6 +116,8 @@ extern void enable_NMI_through_LVT0 (void * dummy); | |||
116 | extern int timer_over_8254; | 116 | extern int timer_over_8254; |
117 | extern int local_apic_timer_c2_ok; | 117 | extern int local_apic_timer_c2_ok; |
118 | 118 | ||
119 | extern int local_apic_timer_disabled; | ||
120 | |||
119 | #else /* !CONFIG_X86_LOCAL_APIC */ | 121 | #else /* !CONFIG_X86_LOCAL_APIC */ |
120 | static inline void lapic_shutdown(void) { } | 122 | static inline void lapic_shutdown(void) { } |
121 | 123 | ||
diff --git a/include/asm-i386/cpufeature.h b/include/asm-i386/cpufeature.h index c961c03cf1e2..7b3aa28ebc6e 100644 --- a/include/asm-i386/cpufeature.h +++ b/include/asm-i386/cpufeature.h | |||
@@ -79,7 +79,7 @@ | |||
79 | #define X86_FEATURE_ARCH_PERFMON (3*32+11) /* Intel Architectural PerfMon */ | 79 | #define X86_FEATURE_ARCH_PERFMON (3*32+11) /* Intel Architectural PerfMon */ |
80 | #define X86_FEATURE_PEBS (3*32+12) /* Precise-Event Based Sampling */ | 80 | #define X86_FEATURE_PEBS (3*32+12) /* Precise-Event Based Sampling */ |
81 | #define X86_FEATURE_BTS (3*32+13) /* Branch Trace Store */ | 81 | #define X86_FEATURE_BTS (3*32+13) /* Branch Trace Store */ |
82 | #define X86_FEATURE_LAPIC_TIMER_BROKEN (3*32+ 14) /* lapic timer broken in C1 */ | 82 | /* 14 free */ |
83 | #define X86_FEATURE_SYNC_RDTSC (3*32+15) /* RDTSC synchronizes the CPU */ | 83 | #define X86_FEATURE_SYNC_RDTSC (3*32+15) /* RDTSC synchronizes the CPU */ |
84 | #define X86_FEATURE_REP_GOOD (3*32+16) /* rep microcode works well on this CPU */ | 84 | #define X86_FEATURE_REP_GOOD (3*32+16) /* rep microcode works well on this CPU */ |
85 | 85 | ||
diff --git a/include/asm-i386/paravirt.h b/include/asm-i386/paravirt.h index 7df88be2dd9e..9fa3fa9e62d1 100644 --- a/include/asm-i386/paravirt.h +++ b/include/asm-i386/paravirt.h | |||
@@ -47,7 +47,8 @@ struct paravirt_ops | |||
47 | * The patch function should return the number of bytes of code | 47 | * The patch function should return the number of bytes of code |
48 | * generated, as we nop pad the rest in generic code. | 48 | * generated, as we nop pad the rest in generic code. |
49 | */ | 49 | */ |
50 | unsigned (*patch)(u8 type, u16 clobber, void *firstinsn, unsigned len); | 50 | unsigned (*patch)(u8 type, u16 clobber, void *insnbuf, |
51 | unsigned long addr, unsigned len); | ||
51 | 52 | ||
52 | /* Basic arch-specific setup */ | 53 | /* Basic arch-specific setup */ |
53 | void (*arch_setup)(void); | 54 | void (*arch_setup)(void); |
@@ -253,13 +254,16 @@ extern struct paravirt_ops paravirt_ops; | |||
253 | 254 | ||
254 | unsigned paravirt_patch_nop(void); | 255 | unsigned paravirt_patch_nop(void); |
255 | unsigned paravirt_patch_ignore(unsigned len); | 256 | unsigned paravirt_patch_ignore(unsigned len); |
256 | unsigned paravirt_patch_call(void *target, u16 tgt_clobbers, | 257 | unsigned paravirt_patch_call(void *insnbuf, |
257 | void *site, u16 site_clobbers, | 258 | const void *target, u16 tgt_clobbers, |
259 | unsigned long addr, u16 site_clobbers, | ||
258 | unsigned len); | 260 | unsigned len); |
259 | unsigned paravirt_patch_jmp(void *target, void *site, unsigned len); | 261 | unsigned paravirt_patch_jmp(const void *target, void *insnbuf, |
260 | unsigned paravirt_patch_default(u8 type, u16 clobbers, void *site, unsigned len); | 262 | unsigned long addr, unsigned len); |
263 | unsigned paravirt_patch_default(u8 type, u16 clobbers, void *insnbuf, | ||
264 | unsigned long addr, unsigned len); | ||
261 | 265 | ||
262 | unsigned paravirt_patch_insns(void *site, unsigned len, | 266 | unsigned paravirt_patch_insns(void *insnbuf, unsigned len, |
263 | const char *start, const char *end); | 267 | const char *start, const char *end); |
264 | 268 | ||
265 | int paravirt_disable_iospace(void); | 269 | int paravirt_disable_iospace(void); |
diff --git a/include/asm-i386/pci.h b/include/asm-i386/pci.h index d790343e9982..4fcacc711385 100644 --- a/include/asm-i386/pci.h +++ b/include/asm-i386/pci.h | |||
@@ -8,6 +8,9 @@ struct pci_sysdata { | |||
8 | int node; /* NUMA node */ | 8 | int node; /* NUMA node */ |
9 | }; | 9 | }; |
10 | 10 | ||
11 | /* scan a bus after allocating a pci_sysdata for it */ | ||
12 | extern struct pci_bus *pci_scan_bus_with_sysdata(int busno); | ||
13 | |||
11 | #include <linux/mm.h> /* for struct page */ | 14 | #include <linux/mm.h> /* for struct page */ |
12 | 15 | ||
13 | /* Can be used to override the logic in pci_scan_bus for skipping | 16 | /* Can be used to override the logic in pci_scan_bus for skipping |
diff --git a/include/asm-ia64/atomic.h b/include/asm-ia64/atomic.h index 1fc3b83325da..50c2b83fd5a0 100644 --- a/include/asm-ia64/atomic.h +++ b/include/asm-ia64/atomic.h | |||
@@ -55,7 +55,7 @@ ia64_atomic64_add (__s64 i, atomic64_t *v) | |||
55 | 55 | ||
56 | do { | 56 | do { |
57 | CMPXCHG_BUGCHECK(v); | 57 | CMPXCHG_BUGCHECK(v); |
58 | old = atomic_read(v); | 58 | old = atomic64_read(v); |
59 | new = old + i; | 59 | new = old + i; |
60 | } while (ia64_cmpxchg(acq, v, old, new, sizeof(atomic64_t)) != old); | 60 | } while (ia64_cmpxchg(acq, v, old, new, sizeof(atomic64_t)) != old); |
61 | return new; | 61 | return new; |
@@ -83,7 +83,7 @@ ia64_atomic64_sub (__s64 i, atomic64_t *v) | |||
83 | 83 | ||
84 | do { | 84 | do { |
85 | CMPXCHG_BUGCHECK(v); | 85 | CMPXCHG_BUGCHECK(v); |
86 | old = atomic_read(v); | 86 | old = atomic64_read(v); |
87 | new = old - i; | 87 | new = old - i; |
88 | } while (ia64_cmpxchg(acq, v, old, new, sizeof(atomic64_t)) != old); | 88 | } while (ia64_cmpxchg(acq, v, old, new, sizeof(atomic64_t)) != old); |
89 | return new; | 89 | return new; |
diff --git a/include/asm-ia64/hw_irq.h b/include/asm-ia64/hw_irq.h index efa1b8f7251d..bba5baa3c7fc 100644 --- a/include/asm-ia64/hw_irq.h +++ b/include/asm-ia64/hw_irq.h | |||
@@ -124,6 +124,11 @@ static inline void ia64_resend_irq(unsigned int vector) | |||
124 | extern irq_desc_t irq_desc[NR_IRQS]; | 124 | extern irq_desc_t irq_desc[NR_IRQS]; |
125 | 125 | ||
126 | #ifndef CONFIG_IA64_GENERIC | 126 | #ifndef CONFIG_IA64_GENERIC |
127 | static inline ia64_vector __ia64_irq_to_vector(int irq) | ||
128 | { | ||
129 | return irq_cfg[irq].vector; | ||
130 | } | ||
131 | |||
127 | static inline unsigned int | 132 | static inline unsigned int |
128 | __ia64_local_vector_to_irq (ia64_vector vec) | 133 | __ia64_local_vector_to_irq (ia64_vector vec) |
129 | { | 134 | { |
@@ -145,7 +150,7 @@ __ia64_local_vector_to_irq (ia64_vector vec) | |||
145 | static inline ia64_vector | 150 | static inline ia64_vector |
146 | irq_to_vector (int irq) | 151 | irq_to_vector (int irq) |
147 | { | 152 | { |
148 | return irq_cfg[irq].vector; | 153 | return platform_irq_to_vector(irq); |
149 | } | 154 | } |
150 | 155 | ||
151 | /* | 156 | /* |
diff --git a/include/asm-ia64/machvec.h b/include/asm-ia64/machvec.h index 5cf8bf1e805e..c201a2020aa4 100644 --- a/include/asm-ia64/machvec.h +++ b/include/asm-ia64/machvec.h | |||
@@ -30,6 +30,7 @@ typedef void ia64_mv_send_ipi_t (int, int, int, int); | |||
30 | typedef void ia64_mv_timer_interrupt_t (int, void *); | 30 | typedef void ia64_mv_timer_interrupt_t (int, void *); |
31 | typedef void ia64_mv_global_tlb_purge_t (struct mm_struct *, unsigned long, unsigned long, unsigned long); | 31 | typedef void ia64_mv_global_tlb_purge_t (struct mm_struct *, unsigned long, unsigned long, unsigned long); |
32 | typedef void ia64_mv_tlb_migrate_finish_t (struct mm_struct *); | 32 | typedef void ia64_mv_tlb_migrate_finish_t (struct mm_struct *); |
33 | typedef u8 ia64_mv_irq_to_vector (int); | ||
33 | typedef unsigned int ia64_mv_local_vector_to_irq (u8); | 34 | typedef unsigned int ia64_mv_local_vector_to_irq (u8); |
34 | typedef char *ia64_mv_pci_get_legacy_mem_t (struct pci_bus *); | 35 | typedef char *ia64_mv_pci_get_legacy_mem_t (struct pci_bus *); |
35 | typedef int ia64_mv_pci_legacy_read_t (struct pci_bus *, u16 port, u32 *val, | 36 | typedef int ia64_mv_pci_legacy_read_t (struct pci_bus *, u16 port, u32 *val, |
@@ -145,6 +146,7 @@ extern void machvec_tlb_migrate_finish (struct mm_struct *); | |||
145 | # define platform_dma_sync_sg_for_device ia64_mv.dma_sync_sg_for_device | 146 | # define platform_dma_sync_sg_for_device ia64_mv.dma_sync_sg_for_device |
146 | # define platform_dma_mapping_error ia64_mv.dma_mapping_error | 147 | # define platform_dma_mapping_error ia64_mv.dma_mapping_error |
147 | # define platform_dma_supported ia64_mv.dma_supported | 148 | # define platform_dma_supported ia64_mv.dma_supported |
149 | # define platform_irq_to_vector ia64_mv.irq_to_vector | ||
148 | # define platform_local_vector_to_irq ia64_mv.local_vector_to_irq | 150 | # define platform_local_vector_to_irq ia64_mv.local_vector_to_irq |
149 | # define platform_pci_get_legacy_mem ia64_mv.pci_get_legacy_mem | 151 | # define platform_pci_get_legacy_mem ia64_mv.pci_get_legacy_mem |
150 | # define platform_pci_legacy_read ia64_mv.pci_legacy_read | 152 | # define platform_pci_legacy_read ia64_mv.pci_legacy_read |
@@ -198,6 +200,7 @@ struct ia64_machine_vector { | |||
198 | ia64_mv_dma_sync_sg_for_device *dma_sync_sg_for_device; | 200 | ia64_mv_dma_sync_sg_for_device *dma_sync_sg_for_device; |
199 | ia64_mv_dma_mapping_error *dma_mapping_error; | 201 | ia64_mv_dma_mapping_error *dma_mapping_error; |
200 | ia64_mv_dma_supported *dma_supported; | 202 | ia64_mv_dma_supported *dma_supported; |
203 | ia64_mv_irq_to_vector *irq_to_vector; | ||
201 | ia64_mv_local_vector_to_irq *local_vector_to_irq; | 204 | ia64_mv_local_vector_to_irq *local_vector_to_irq; |
202 | ia64_mv_pci_get_legacy_mem_t *pci_get_legacy_mem; | 205 | ia64_mv_pci_get_legacy_mem_t *pci_get_legacy_mem; |
203 | ia64_mv_pci_legacy_read_t *pci_legacy_read; | 206 | ia64_mv_pci_legacy_read_t *pci_legacy_read; |
@@ -247,6 +250,7 @@ struct ia64_machine_vector { | |||
247 | platform_dma_sync_sg_for_device, \ | 250 | platform_dma_sync_sg_for_device, \ |
248 | platform_dma_mapping_error, \ | 251 | platform_dma_mapping_error, \ |
249 | platform_dma_supported, \ | 252 | platform_dma_supported, \ |
253 | platform_irq_to_vector, \ | ||
250 | platform_local_vector_to_irq, \ | 254 | platform_local_vector_to_irq, \ |
251 | platform_pci_get_legacy_mem, \ | 255 | platform_pci_get_legacy_mem, \ |
252 | platform_pci_legacy_read, \ | 256 | platform_pci_legacy_read, \ |
@@ -366,6 +370,9 @@ extern ia64_mv_dma_supported swiotlb_dma_supported; | |||
366 | #ifndef platform_dma_supported | 370 | #ifndef platform_dma_supported |
367 | # define platform_dma_supported swiotlb_dma_supported | 371 | # define platform_dma_supported swiotlb_dma_supported |
368 | #endif | 372 | #endif |
373 | #ifndef platform_irq_to_vector | ||
374 | # define platform_irq_to_vector __ia64_irq_to_vector | ||
375 | #endif | ||
369 | #ifndef platform_local_vector_to_irq | 376 | #ifndef platform_local_vector_to_irq |
370 | # define platform_local_vector_to_irq __ia64_local_vector_to_irq | 377 | # define platform_local_vector_to_irq __ia64_local_vector_to_irq |
371 | #endif | 378 | #endif |
diff --git a/include/asm-ia64/machvec_init.h b/include/asm-ia64/machvec_init.h index 2d36f6840f0b..7f21249fba3f 100644 --- a/include/asm-ia64/machvec_init.h +++ b/include/asm-ia64/machvec_init.h | |||
@@ -2,6 +2,7 @@ | |||
2 | 2 | ||
3 | extern ia64_mv_send_ipi_t ia64_send_ipi; | 3 | extern ia64_mv_send_ipi_t ia64_send_ipi; |
4 | extern ia64_mv_global_tlb_purge_t ia64_global_tlb_purge; | 4 | extern ia64_mv_global_tlb_purge_t ia64_global_tlb_purge; |
5 | extern ia64_mv_irq_to_vector __ia64_irq_to_vector; | ||
5 | extern ia64_mv_local_vector_to_irq __ia64_local_vector_to_irq; | 6 | extern ia64_mv_local_vector_to_irq __ia64_local_vector_to_irq; |
6 | extern ia64_mv_pci_get_legacy_mem_t ia64_pci_get_legacy_mem; | 7 | extern ia64_mv_pci_get_legacy_mem_t ia64_pci_get_legacy_mem; |
7 | extern ia64_mv_pci_legacy_read_t ia64_pci_legacy_read; | 8 | extern ia64_mv_pci_legacy_read_t ia64_pci_legacy_read; |
diff --git a/include/asm-ia64/machvec_sn2.h b/include/asm-ia64/machvec_sn2.h index eaa2fce0fecd..61439a7f5b08 100644 --- a/include/asm-ia64/machvec_sn2.h +++ b/include/asm-ia64/machvec_sn2.h | |||
@@ -35,6 +35,7 @@ extern ia64_mv_send_ipi_t sn2_send_IPI; | |||
35 | extern ia64_mv_timer_interrupt_t sn_timer_interrupt; | 35 | extern ia64_mv_timer_interrupt_t sn_timer_interrupt; |
36 | extern ia64_mv_global_tlb_purge_t sn2_global_tlb_purge; | 36 | extern ia64_mv_global_tlb_purge_t sn2_global_tlb_purge; |
37 | extern ia64_mv_tlb_migrate_finish_t sn_tlb_migrate_finish; | 37 | extern ia64_mv_tlb_migrate_finish_t sn_tlb_migrate_finish; |
38 | extern ia64_mv_irq_to_vector sn_irq_to_vector; | ||
38 | extern ia64_mv_local_vector_to_irq sn_local_vector_to_irq; | 39 | extern ia64_mv_local_vector_to_irq sn_local_vector_to_irq; |
39 | extern ia64_mv_pci_get_legacy_mem_t sn_pci_get_legacy_mem; | 40 | extern ia64_mv_pci_get_legacy_mem_t sn_pci_get_legacy_mem; |
40 | extern ia64_mv_pci_legacy_read_t sn_pci_legacy_read; | 41 | extern ia64_mv_pci_legacy_read_t sn_pci_legacy_read; |
@@ -104,6 +105,7 @@ extern ia64_mv_pci_fixup_bus_t sn_pci_fixup_bus; | |||
104 | #define platform_readw_relaxed __sn_readw_relaxed | 105 | #define platform_readw_relaxed __sn_readw_relaxed |
105 | #define platform_readl_relaxed __sn_readl_relaxed | 106 | #define platform_readl_relaxed __sn_readl_relaxed |
106 | #define platform_readq_relaxed __sn_readq_relaxed | 107 | #define platform_readq_relaxed __sn_readq_relaxed |
108 | #define platform_irq_to_vector sn_irq_to_vector | ||
107 | #define platform_local_vector_to_irq sn_local_vector_to_irq | 109 | #define platform_local_vector_to_irq sn_local_vector_to_irq |
108 | #define platform_pci_get_legacy_mem sn_pci_get_legacy_mem | 110 | #define platform_pci_get_legacy_mem sn_pci_get_legacy_mem |
109 | #define platform_pci_legacy_read sn_pci_legacy_read | 111 | #define platform_pci_legacy_read sn_pci_legacy_read |
diff --git a/include/asm-powerpc/dma-mapping.h b/include/asm-powerpc/dma-mapping.h index f6bd804d9090..744d6bb24116 100644 --- a/include/asm-powerpc/dma-mapping.h +++ b/include/asm-powerpc/dma-mapping.h | |||
@@ -95,7 +95,7 @@ static inline int dma_set_mask(struct device *dev, u64 dma_mask) | |||
95 | return -EIO; | 95 | return -EIO; |
96 | if (dma_ops->set_dma_mask != NULL) | 96 | if (dma_ops->set_dma_mask != NULL) |
97 | return dma_ops->set_dma_mask(dev, dma_mask); | 97 | return dma_ops->set_dma_mask(dev, dma_mask); |
98 | if (!dev->dma_mask || !dma_supported(dev, *dev->dma_mask)) | 98 | if (!dev->dma_mask || !dma_supported(dev, dma_mask)) |
99 | return -EIO; | 99 | return -EIO; |
100 | *dev->dma_mask = dma_mask; | 100 | *dev->dma_mask = dma_mask; |
101 | return 0; | 101 | return 0; |
diff --git a/include/asm-powerpc/spu_priv1.h b/include/asm-powerpc/spu_priv1.h index 7e78f6a1ab8b..0f37c7c90820 100644 --- a/include/asm-powerpc/spu_priv1.h +++ b/include/asm-powerpc/spu_priv1.h | |||
@@ -178,6 +178,7 @@ struct spu_management_ops { | |||
178 | int (*enumerate_spus)(int (*fn)(void *data)); | 178 | int (*enumerate_spus)(int (*fn)(void *data)); |
179 | int (*create_spu)(struct spu *spu, void *data); | 179 | int (*create_spu)(struct spu *spu, void *data); |
180 | int (*destroy_spu)(struct spu *spu); | 180 | int (*destroy_spu)(struct spu *spu); |
181 | int (*init_affinity)(void); | ||
181 | }; | 182 | }; |
182 | 183 | ||
183 | extern const struct spu_management_ops* spu_management_ops; | 184 | extern const struct spu_management_ops* spu_management_ops; |
@@ -200,6 +201,12 @@ spu_destroy_spu (struct spu *spu) | |||
200 | return spu_management_ops->destroy_spu(spu); | 201 | return spu_management_ops->destroy_spu(spu); |
201 | } | 202 | } |
202 | 203 | ||
204 | static inline int | ||
205 | spu_init_affinity (void) | ||
206 | { | ||
207 | return spu_management_ops->init_affinity(); | ||
208 | } | ||
209 | |||
203 | /* | 210 | /* |
204 | * The declarations folowing are put here for convenience | 211 | * The declarations folowing are put here for convenience |
205 | * and only intended to be used by the platform setup code. | 212 | * and only intended to be used by the platform setup code. |
diff --git a/include/asm-sparc/fcntl.h b/include/asm-sparc/fcntl.h index 7bbdfc77accd..5ec546349fc8 100644 --- a/include/asm-sparc/fcntl.h +++ b/include/asm-sparc/fcntl.h | |||
@@ -32,5 +32,6 @@ | |||
32 | #define __ARCH_FLOCK_PAD short __unused; | 32 | #define __ARCH_FLOCK_PAD short __unused; |
33 | #define __ARCH_FLOCK64_PAD short __unused; | 33 | #define __ARCH_FLOCK64_PAD short __unused; |
34 | 34 | ||
35 | #include <asm-generic/fcntl.h> | ||
35 | 36 | ||
36 | #endif | 37 | #endif |
diff --git a/include/asm-sparc/prom.h b/include/asm-sparc/prom.h index 350676c589f9..71f2a1998324 100644 --- a/include/asm-sparc/prom.h +++ b/include/asm-sparc/prom.h | |||
@@ -67,6 +67,7 @@ extern int of_set_property(struct device_node *node, const char *name, void *val | |||
67 | extern int of_getintprop_default(struct device_node *np, | 67 | extern int of_getintprop_default(struct device_node *np, |
68 | const char *name, | 68 | const char *name, |
69 | int def); | 69 | int def); |
70 | extern int of_find_in_proplist(const char *list, const char *match, int len); | ||
70 | 71 | ||
71 | extern void prom_build_devicetree(void); | 72 | extern void prom_build_devicetree(void); |
72 | 73 | ||
diff --git a/include/asm-sparc/sbus.h b/include/asm-sparc/sbus.h index d036e4419d79..27d076c46964 100644 --- a/include/asm-sparc/sbus.h +++ b/include/asm-sparc/sbus.h | |||
@@ -68,7 +68,6 @@ struct sbus_dev { | |||
68 | /* This struct describes the SBus(s) found on this machine. */ | 68 | /* This struct describes the SBus(s) found on this machine. */ |
69 | struct sbus_bus { | 69 | struct sbus_bus { |
70 | struct of_device ofdev; | 70 | struct of_device ofdev; |
71 | void *iommu; /* Opaque IOMMU cookie */ | ||
72 | struct sbus_dev *devices; /* Link to devices on this SBus */ | 71 | struct sbus_dev *devices; /* Link to devices on this SBus */ |
73 | struct sbus_bus *next; /* next SBus, if more than one SBus */ | 72 | struct sbus_bus *next; /* next SBus, if more than one SBus */ |
74 | int prom_node; /* PROM device tree node for this SBus */ | 73 | int prom_node; /* PROM device tree node for this SBus */ |
diff --git a/include/asm-sparc/sfp-machine.h b/include/asm-sparc/sfp-machine.h index ecfc86a4a725..266a42b8f99f 100644 --- a/include/asm-sparc/sfp-machine.h +++ b/include/asm-sparc/sfp-machine.h | |||
@@ -203,4 +203,10 @@ extern struct task_struct *last_task_used_math; | |||
203 | #define FP_INHIBIT_RESULTS ((last_task_used_math->thread.fsr >> 23) & _fex) | 203 | #define FP_INHIBIT_RESULTS ((last_task_used_math->thread.fsr >> 23) & _fex) |
204 | #endif | 204 | #endif |
205 | 205 | ||
206 | #ifdef CONFIG_SMP | ||
207 | #define FP_TRAPPING_EXCEPTIONS ((current->thread.fsr >> 23) & 0x1f) | ||
208 | #else | ||
209 | #define FP_TRAPPING_EXCEPTIONS ((last_task_used_math->thread.fsr >> 23) & 0x1f) | ||
210 | #endif | ||
211 | |||
206 | #endif | 212 | #endif |
diff --git a/include/asm-sparc64/elf.h b/include/asm-sparc64/elf.h index 303d85e2f82e..8653e8665009 100644 --- a/include/asm-sparc64/elf.h +++ b/include/asm-sparc64/elf.h | |||
@@ -70,6 +70,7 @@ | |||
70 | #define HWCAP_SPARC_V9 16 | 70 | #define HWCAP_SPARC_V9 16 |
71 | #define HWCAP_SPARC_ULTRA3 32 | 71 | #define HWCAP_SPARC_ULTRA3 32 |
72 | #define HWCAP_SPARC_BLKINIT 64 | 72 | #define HWCAP_SPARC_BLKINIT 64 |
73 | #define HWCAP_SPARC_N2 128 | ||
73 | 74 | ||
74 | /* | 75 | /* |
75 | * These are used to set parameters in the core dumps. | 76 | * These are used to set parameters in the core dumps. |
@@ -155,8 +156,13 @@ static inline unsigned int sparc64_elf_hwcap(void) | |||
155 | 156 | ||
156 | if (tlb_type == cheetah || tlb_type == cheetah_plus) | 157 | if (tlb_type == cheetah || tlb_type == cheetah_plus) |
157 | cap |= HWCAP_SPARC_ULTRA3; | 158 | cap |= HWCAP_SPARC_ULTRA3; |
158 | else if (tlb_type == hypervisor) | 159 | else if (tlb_type == hypervisor) { |
159 | cap |= HWCAP_SPARC_BLKINIT; | 160 | if (sun4v_chip_type == SUN4V_CHIP_NIAGARA1 || |
161 | sun4v_chip_type == SUN4V_CHIP_NIAGARA2) | ||
162 | cap |= HWCAP_SPARC_BLKINIT; | ||
163 | if (sun4v_chip_type == SUN4V_CHIP_NIAGARA2) | ||
164 | cap |= HWCAP_SPARC_N2; | ||
165 | } | ||
160 | 166 | ||
161 | return cap; | 167 | return cap; |
162 | } | 168 | } |
diff --git a/include/asm-sparc64/oplib.h b/include/asm-sparc64/oplib.h index 3f23c5dc5f21..86dc5c018a19 100644 --- a/include/asm-sparc64/oplib.h +++ b/include/asm-sparc64/oplib.h | |||
@@ -1,8 +1,7 @@ | |||
1 | /* $Id: oplib.h,v 1.14 2001/12/19 00:29:51 davem Exp $ | 1 | /* oplib.h: Describes the interface and available routines in the |
2 | * oplib.h: Describes the interface and available routines in the | ||
3 | * Linux Prom library. | 2 | * Linux Prom library. |
4 | * | 3 | * |
5 | * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) | 4 | * Copyright (C) 1995, 2007 David S. Miller (davem@davemloft.net) |
6 | * Copyright (C) 1996 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 5 | * Copyright (C) 1996 Jakub Jelinek (jj@sunsite.mff.cuni.cz) |
7 | */ | 6 | */ |
8 | 7 | ||
@@ -31,8 +30,10 @@ extern int prom_chosen_node; | |||
31 | extern const char prom_peer_name[]; | 30 | extern const char prom_peer_name[]; |
32 | extern const char prom_compatible_name[]; | 31 | extern const char prom_compatible_name[]; |
33 | extern const char prom_root_compatible[]; | 32 | extern const char prom_root_compatible[]; |
33 | extern const char prom_cpu_compatible[]; | ||
34 | extern const char prom_finddev_name[]; | 34 | extern const char prom_finddev_name[]; |
35 | extern const char prom_chosen_path[]; | 35 | extern const char prom_chosen_path[]; |
36 | extern const char prom_cpu_path[]; | ||
36 | extern const char prom_getprop_name[]; | 37 | extern const char prom_getprop_name[]; |
37 | extern const char prom_mmu_name[]; | 38 | extern const char prom_mmu_name[]; |
38 | extern const char prom_callmethod_name[]; | 39 | extern const char prom_callmethod_name[]; |
diff --git a/include/asm-sparc64/prom.h b/include/asm-sparc64/prom.h index 31dcb92fbae0..07843f9f05df 100644 --- a/include/asm-sparc64/prom.h +++ b/include/asm-sparc64/prom.h | |||
@@ -76,6 +76,7 @@ extern int of_set_property(struct device_node *node, const char *name, void *val | |||
76 | extern int of_getintprop_default(struct device_node *np, | 76 | extern int of_getintprop_default(struct device_node *np, |
77 | const char *name, | 77 | const char *name, |
78 | int def); | 78 | int def); |
79 | extern int of_find_in_proplist(const char *list, const char *match, int len); | ||
79 | 80 | ||
80 | extern void prom_build_devicetree(void); | 81 | extern void prom_build_devicetree(void); |
81 | 82 | ||
diff --git a/include/asm-sparc64/sfp-machine.h b/include/asm-sparc64/sfp-machine.h index 89d42431efb5..c9331b02d9c8 100644 --- a/include/asm-sparc64/sfp-machine.h +++ b/include/asm-sparc64/sfp-machine.h | |||
@@ -88,4 +88,6 @@ | |||
88 | 88 | ||
89 | #define FP_INHIBIT_RESULTS ((current_thread_info()->xfsr[0] >> 23) & _fex) | 89 | #define FP_INHIBIT_RESULTS ((current_thread_info()->xfsr[0] >> 23) & _fex) |
90 | 90 | ||
91 | #define FP_TRAPPING_EXCEPTIONS ((current_thread_info()->xfsr[0] >> 23) & 0x1f) | ||
92 | |||
91 | #endif | 93 | #endif |
diff --git a/include/asm-sparc64/spitfire.h b/include/asm-sparc64/spitfire.h index 23ad8a7987ad..cf7807813e85 100644 --- a/include/asm-sparc64/spitfire.h +++ b/include/asm-sparc64/spitfire.h | |||
@@ -38,6 +38,11 @@ | |||
38 | 38 | ||
39 | #define L1DCACHE_SIZE 0x4000 | 39 | #define L1DCACHE_SIZE 0x4000 |
40 | 40 | ||
41 | #define SUN4V_CHIP_INVALID 0x00 | ||
42 | #define SUN4V_CHIP_NIAGARA1 0x01 | ||
43 | #define SUN4V_CHIP_NIAGARA2 0x02 | ||
44 | #define SUN4V_CHIP_UNKNOWN 0xff | ||
45 | |||
41 | #ifndef __ASSEMBLY__ | 46 | #ifndef __ASSEMBLY__ |
42 | 47 | ||
43 | enum ultra_tlb_layout { | 48 | enum ultra_tlb_layout { |
@@ -49,6 +54,8 @@ enum ultra_tlb_layout { | |||
49 | 54 | ||
50 | extern enum ultra_tlb_layout tlb_type; | 55 | extern enum ultra_tlb_layout tlb_type; |
51 | 56 | ||
57 | extern int sun4v_chip_type; | ||
58 | |||
52 | extern int cheetah_pcache_forced_on; | 59 | extern int cheetah_pcache_forced_on; |
53 | extern void cheetah_enable_pcache(void); | 60 | extern void cheetah_enable_pcache(void); |
54 | 61 | ||
diff --git a/include/asm-sparc64/xor.h b/include/asm-sparc64/xor.h index 8ce3f1813e28..a0233884fc94 100644 --- a/include/asm-sparc64/xor.h +++ b/include/asm-sparc64/xor.h | |||
@@ -63,4 +63,8 @@ static struct xor_block_template xor_block_niagara = { | |||
63 | 63 | ||
64 | /* For VIS for everything except Niagara. */ | 64 | /* For VIS for everything except Niagara. */ |
65 | #define XOR_SELECT_TEMPLATE(FASTEST) \ | 65 | #define XOR_SELECT_TEMPLATE(FASTEST) \ |
66 | (tlb_type == hypervisor ? &xor_block_niagara : &xor_block_VIS) | 66 | ((tlb_type == hypervisor && \ |
67 | (sun4v_chip_type == SUN4V_CHIP_NIAGARA1 || \ | ||
68 | sun4v_chip_type == SUN4V_CHIP_NIAGARA2)) ? \ | ||
69 | &xor_block_niagara : \ | ||
70 | &xor_block_VIS) | ||
diff --git a/include/asm-x86_64/pci.h b/include/asm-x86_64/pci.h index 88926eb44f5c..5da8cb0c0599 100644 --- a/include/asm-x86_64/pci.h +++ b/include/asm-x86_64/pci.h | |||
@@ -10,6 +10,8 @@ struct pci_sysdata { | |||
10 | void* iommu; /* IOMMU private data */ | 10 | void* iommu; /* IOMMU private data */ |
11 | }; | 11 | }; |
12 | 12 | ||
13 | extern struct pci_bus *pci_scan_bus_with_sysdata(int busno); | ||
14 | |||
13 | #ifdef CONFIG_CALGARY_IOMMU | 15 | #ifdef CONFIG_CALGARY_IOMMU |
14 | static inline void* pci_iommu(struct pci_bus *bus) | 16 | static inline void* pci_iommu(struct pci_bus *bus) |
15 | { | 17 | { |
diff --git a/include/linux/bio.h b/include/linux/bio.h index 4d85262b4fa4..1ddef34f43c3 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h | |||
@@ -24,6 +24,8 @@ | |||
24 | #include <linux/mempool.h> | 24 | #include <linux/mempool.h> |
25 | #include <linux/ioprio.h> | 25 | #include <linux/ioprio.h> |
26 | 26 | ||
27 | #ifdef CONFIG_BLOCK | ||
28 | |||
27 | /* Platforms may set this to teach the BIO layer about IOMMU hardware. */ | 29 | /* Platforms may set this to teach the BIO layer about IOMMU hardware. */ |
28 | #include <asm/io.h> | 30 | #include <asm/io.h> |
29 | 31 | ||
@@ -361,4 +363,5 @@ static inline char *__bio_kmap_irq(struct bio *bio, unsigned short idx, | |||
361 | __bio_kmap_irq((bio), (bio)->bi_idx, (flags)) | 363 | __bio_kmap_irq((bio), (bio)->bi_idx, (flags)) |
362 | #define bio_kunmap_irq(buf,flags) __bio_kunmap_irq(buf, flags) | 364 | #define bio_kunmap_irq(buf,flags) __bio_kunmap_irq(buf, flags) |
363 | 365 | ||
366 | #endif /* CONFIG_BLOCK */ | ||
364 | #endif /* __LINUX_BIO_H */ | 367 | #endif /* __LINUX_BIO_H */ |
diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h index 90874a5d7d78..7b5d56b82b59 100644 --- a/include/linux/blktrace_api.h +++ b/include/linux/blktrace_api.h | |||
@@ -105,7 +105,7 @@ struct blk_io_trace { | |||
105 | */ | 105 | */ |
106 | struct blk_io_trace_remap { | 106 | struct blk_io_trace_remap { |
107 | __be32 device; | 107 | __be32 device; |
108 | u32 __pad; | 108 | __be32 device_from; |
109 | __be64 sector; | 109 | __be64 sector; |
110 | }; | 110 | }; |
111 | 111 | ||
@@ -272,6 +272,7 @@ static inline void blk_add_trace_remap(struct request_queue *q, struct bio *bio, | |||
272 | return; | 272 | return; |
273 | 273 | ||
274 | r.device = cpu_to_be32(dev); | 274 | r.device = cpu_to_be32(dev); |
275 | r.device_from = cpu_to_be32(bio->bi_bdev->bd_dev); | ||
275 | r.sector = cpu_to_be64(to); | 276 | r.sector = cpu_to_be64(to); |
276 | 277 | ||
277 | __blk_add_trace(bt, from, bio->bi_size, bio->bi_rw, BLK_TA_REMAP, !bio_flagged(bio, BIO_UPTODATE), sizeof(r), &r); | 278 | __blk_add_trace(bt, from, bio->bi_size, bio->bi_rw, BLK_TA_REMAP, !bio_flagged(bio, BIO_UPTODATE), sizeof(r), &r); |
diff --git a/include/linux/bsg.h b/include/linux/bsg.h index 102dc096e1cb..60e377b520f8 100644 --- a/include/linux/bsg.h +++ b/include/linux/bsg.h | |||
@@ -15,14 +15,18 @@ struct sg_io_v4 { | |||
15 | 15 | ||
16 | __u32 request_len; /* [i] in bytes */ | 16 | __u32 request_len; /* [i] in bytes */ |
17 | __u64 request; /* [i], [*i] {SCSI: cdb} */ | 17 | __u64 request; /* [i], [*i] {SCSI: cdb} */ |
18 | __u64 request_tag; /* [i] {SCSI: task tag (only if flagged)} */ | ||
18 | __u32 request_attr; /* [i] {SCSI: task attribute} */ | 19 | __u32 request_attr; /* [i] {SCSI: task attribute} */ |
19 | __u32 request_tag; /* [i] {SCSI: task tag (only if flagged)} */ | ||
20 | __u32 request_priority; /* [i] {SCSI: task priority} */ | 20 | __u32 request_priority; /* [i] {SCSI: task priority} */ |
21 | __u32 request_extra; /* [i] {spare, for padding} */ | ||
21 | __u32 max_response_len; /* [i] in bytes */ | 22 | __u32 max_response_len; /* [i] in bytes */ |
22 | __u64 response; /* [i], [*o] {SCSI: (auto)sense data} */ | 23 | __u64 response; /* [i], [*o] {SCSI: (auto)sense data} */ |
23 | 24 | ||
24 | /* "din_" for data in (from device); "dout_" for data out (to device) */ | 25 | /* "dout_": data out (to device); "din_": data in (from device) */ |
26 | __u32 dout_iovec_count; /* [i] 0 -> "flat" dout transfer else | ||
27 | dout_xfer points to array of iovec */ | ||
25 | __u32 dout_xfer_len; /* [i] bytes to be transferred to device */ | 28 | __u32 dout_xfer_len; /* [i] bytes to be transferred to device */ |
29 | __u32 din_iovec_count; /* [i] 0 -> "flat" din transfer */ | ||
26 | __u32 din_xfer_len; /* [i] bytes to be transferred from device */ | 30 | __u32 din_xfer_len; /* [i] bytes to be transferred from device */ |
27 | __u64 dout_xferp; /* [i], [*i] */ | 31 | __u64 dout_xferp; /* [i], [*i] */ |
28 | __u64 din_xferp; /* [i], [*o] */ | 32 | __u64 din_xferp; /* [i], [*o] */ |
@@ -39,8 +43,9 @@ struct sg_io_v4 { | |||
39 | __u32 info; /* [o] additional information */ | 43 | __u32 info; /* [o] additional information */ |
40 | __u32 duration; /* [o] time to complete, in milliseconds */ | 44 | __u32 duration; /* [o] time to complete, in milliseconds */ |
41 | __u32 response_len; /* [o] bytes of response actually written */ | 45 | __u32 response_len; /* [o] bytes of response actually written */ |
42 | __s32 din_resid; /* [o] actual_din_xfer_len - din_xfer_len */ | 46 | __s32 din_resid; /* [o] din_xfer_len - actual_din_xfer_len */ |
43 | __u32 generated_tag; /* [o] {SCSI: task tag that transport chose} */ | 47 | __s32 dout_resid; /* [o] dout_xfer_len - actual_dout_xfer_len */ |
48 | __u64 generated_tag; /* [o] {SCSI: transport generated task tag} */ | ||
44 | __u32 spare_out; /* [o] */ | 49 | __u32 spare_out; /* [o] */ |
45 | 50 | ||
46 | __u32 padding; | 51 | __u32 padding; |
diff --git a/include/linux/clockchips.h b/include/linux/clockchips.h index e0bd46eb2414..def5a659b8a5 100644 --- a/include/linux/clockchips.h +++ b/include/linux/clockchips.h | |||
@@ -123,7 +123,6 @@ extern void clockevents_exchange_device(struct clock_event_device *old, | |||
123 | extern void clockevents_set_mode(struct clock_event_device *dev, | 123 | extern void clockevents_set_mode(struct clock_event_device *dev, |
124 | enum clock_event_mode mode); | 124 | enum clock_event_mode mode); |
125 | extern int clockevents_register_notifier(struct notifier_block *nb); | 125 | extern int clockevents_register_notifier(struct notifier_block *nb); |
126 | extern void clockevents_unregister_notifier(struct notifier_block *nb); | ||
127 | extern int clockevents_program_event(struct clock_event_device *dev, | 126 | extern int clockevents_program_event(struct clock_event_device *dev, |
128 | ktime_t expires, ktime_t now); | 127 | ktime_t expires, ktime_t now); |
129 | 128 | ||
diff --git a/include/linux/cpu.h b/include/linux/cpu.h index c2236bbff412..1d5ded0836ee 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h | |||
@@ -41,8 +41,6 @@ extern void cpu_remove_sysdev_attr(struct sysdev_attribute *attr); | |||
41 | extern int cpu_add_sysdev_attr_group(struct attribute_group *attrs); | 41 | extern int cpu_add_sysdev_attr_group(struct attribute_group *attrs); |
42 | extern void cpu_remove_sysdev_attr_group(struct attribute_group *attrs); | 42 | extern void cpu_remove_sysdev_attr_group(struct attribute_group *attrs); |
43 | 43 | ||
44 | extern struct sysdev_attribute attr_sched_mc_power_savings; | ||
45 | extern struct sysdev_attribute attr_sched_smt_power_savings; | ||
46 | extern int sched_create_sysfs_power_savings_entries(struct sysdev_class *cls); | 44 | extern int sched_create_sysfs_power_savings_entries(struct sysdev_class *cls); |
47 | 45 | ||
48 | #ifdef CONFIG_HOTPLUG_CPU | 46 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 6bf139562947..16421f662a7a 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -1659,7 +1659,6 @@ extern int sb_min_blocksize(struct super_block *, int); | |||
1659 | extern int generic_file_mmap(struct file *, struct vm_area_struct *); | 1659 | extern int generic_file_mmap(struct file *, struct vm_area_struct *); |
1660 | extern int generic_file_readonly_mmap(struct file *, struct vm_area_struct *); | 1660 | extern int generic_file_readonly_mmap(struct file *, struct vm_area_struct *); |
1661 | extern int file_read_actor(read_descriptor_t * desc, struct page *page, unsigned long offset, unsigned long size); | 1661 | extern int file_read_actor(read_descriptor_t * desc, struct page *page, unsigned long offset, unsigned long size); |
1662 | extern int file_send_actor(read_descriptor_t * desc, struct page *page, unsigned long offset, unsigned long size); | ||
1663 | int generic_write_checks(struct file *file, loff_t *pos, size_t *count, int isblk); | 1662 | int generic_write_checks(struct file *file, loff_t *pos, size_t *count, int isblk); |
1664 | extern ssize_t generic_file_aio_read(struct kiocb *, const struct iovec *, unsigned long, loff_t); | 1663 | extern ssize_t generic_file_aio_read(struct kiocb *, const struct iovec *, unsigned long, loff_t); |
1665 | extern ssize_t generic_file_aio_write(struct kiocb *, const struct iovec *, unsigned long, loff_t); | 1664 | extern ssize_t generic_file_aio_write(struct kiocb *, const struct iovec *, unsigned long, loff_t); |
diff --git a/include/linux/init.h b/include/linux/init.h index 1a4a283d19a9..74b1f43bf982 100644 --- a/include/linux/init.h +++ b/include/linux/init.h | |||
@@ -43,7 +43,7 @@ | |||
43 | #define __init __attribute__ ((__section__ (".init.text"))) __cold | 43 | #define __init __attribute__ ((__section__ (".init.text"))) __cold |
44 | #define __initdata __attribute__ ((__section__ (".init.data"))) | 44 | #define __initdata __attribute__ ((__section__ (".init.data"))) |
45 | #define __exitdata __attribute__ ((__section__(".exit.data"))) | 45 | #define __exitdata __attribute__ ((__section__(".exit.data"))) |
46 | #define __exit_call __attribute_used__ __attribute__ ((__section__ (".exitcall.exit"))) __cold | 46 | #define __exit_call __attribute_used__ __attribute__ ((__section__ (".exitcall.exit"))) |
47 | 47 | ||
48 | /* modpost check for section mismatches during the kernel build. | 48 | /* modpost check for section mismatches during the kernel build. |
49 | * A section mismatch happens when there are references from a | 49 | * A section mismatch happens when there are references from a |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 4300bb462d29..f592df74b3cf 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
@@ -224,9 +224,9 @@ extern void hex_dump_to_buffer(const void *buf, size_t len, | |||
224 | char *linebuf, size_t linebuflen, bool ascii); | 224 | char *linebuf, size_t linebuflen, bool ascii); |
225 | extern void print_hex_dump(const char *level, const char *prefix_str, | 225 | extern void print_hex_dump(const char *level, const char *prefix_str, |
226 | int prefix_type, int rowsize, int groupsize, | 226 | int prefix_type, int rowsize, int groupsize, |
227 | void *buf, size_t len, bool ascii); | 227 | const void *buf, size_t len, bool ascii); |
228 | extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type, | 228 | extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type, |
229 | void *buf, size_t len); | 229 | const void *buf, size_t len); |
230 | #define hex_asc(x) "0123456789abcdef"[x] | 230 | #define hex_asc(x) "0123456789abcdef"[x] |
231 | 231 | ||
232 | #ifdef DEBUG | 232 | #ifdef DEBUG |
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 2ada8ee316b3..4dc5fa8be781 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h | |||
@@ -159,7 +159,8 @@ struct ap_device_id { | |||
159 | 159 | ||
160 | #define AP_DEVICE_ID_MATCH_DEVICE_TYPE 0x01 | 160 | #define AP_DEVICE_ID_MATCH_DEVICE_TYPE 0x01 |
161 | 161 | ||
162 | #define ACPI_ID_LEN 9 | 162 | #define ACPI_ID_LEN 16 /* only 9 bytes needed here, 16 bytes are used */ |
163 | /* to workaround crosscompile issues */ | ||
163 | 164 | ||
164 | struct acpi_device_id { | 165 | struct acpi_device_id { |
165 | __u8 id[ACPI_ID_LEN]; | 166 | __u8 id[ACPI_ID_LEN]; |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 4a616d73cc25..e679b2751665 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -1131,6 +1131,8 @@ extern void dev_seq_stop(struct seq_file *seq, void *v); | |||
1131 | 1131 | ||
1132 | extern void linkwatch_run_queue(void); | 1132 | extern void linkwatch_run_queue(void); |
1133 | 1133 | ||
1134 | extern int netdev_compute_features(unsigned long all, unsigned long one); | ||
1135 | |||
1134 | static inline int net_gso_ok(int features, int gso_type) | 1136 | static inline int net_gso_ok(int features, int gso_type) |
1135 | { | 1137 | { |
1136 | int feature = gso_type << NETIF_F_GSO_SHIFT; | 1138 | int feature = gso_type << NETIF_F_GSO_SHIFT; |
diff --git a/include/linux/netfilter/Kbuild b/include/linux/netfilter/Kbuild index 43397a414cd6..ab57cb7d7c61 100644 --- a/include/linux/netfilter/Kbuild +++ b/include/linux/netfilter/Kbuild | |||
@@ -28,6 +28,7 @@ header-y += xt_policy.h | |||
28 | header-y += xt_realm.h | 28 | header-y += xt_realm.h |
29 | header-y += xt_sctp.h | 29 | header-y += xt_sctp.h |
30 | header-y += xt_state.h | 30 | header-y += xt_state.h |
31 | header-y += xt_statistic.h | ||
31 | header-y += xt_string.h | 32 | header-y += xt_string.h |
32 | header-y += xt_tcpmss.h | 33 | header-y += xt_tcpmss.h |
33 | header-y += xt_tcpudp.h | 34 | header-y += xt_tcpudp.h |
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 9ba4aec37c50..157dcb055b5c 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
@@ -71,7 +71,7 @@ struct nfs_access_entry { | |||
71 | 71 | ||
72 | struct nfs4_state; | 72 | struct nfs4_state; |
73 | struct nfs_open_context { | 73 | struct nfs_open_context { |
74 | struct kref kref; | 74 | atomic_t count; |
75 | struct path path; | 75 | struct path path; |
76 | struct rpc_cred *cred; | 76 | struct rpc_cred *cred; |
77 | struct nfs4_state *state; | 77 | struct nfs4_state *state; |
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index 28e3664fdf1b..cd13a78c5db8 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h | |||
@@ -75,7 +75,6 @@ struct proc_dir_entry { | |||
75 | write_proc_t *write_proc; | 75 | write_proc_t *write_proc; |
76 | atomic_t count; /* use count */ | 76 | atomic_t count; /* use count */ |
77 | int deleted; /* delete flag */ | 77 | int deleted; /* delete flag */ |
78 | void *set; | ||
79 | int pde_users; /* number of callers into module in progress */ | 78 | int pde_users; /* number of callers into module in progress */ |
80 | spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */ | 79 | spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */ |
81 | struct completion *pde_unload_completion; | 80 | struct completion *pde_unload_completion; |
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index c6b7485eac7c..fe17d7d750c2 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
@@ -281,7 +281,6 @@ extern void FASTCALL(call_rcu(struct rcu_head *head, | |||
281 | extern void FASTCALL(call_rcu_bh(struct rcu_head *head, | 281 | extern void FASTCALL(call_rcu_bh(struct rcu_head *head, |
282 | void (*func)(struct rcu_head *head))); | 282 | void (*func)(struct rcu_head *head))); |
283 | extern void synchronize_rcu(void); | 283 | extern void synchronize_rcu(void); |
284 | void synchronize_idle(void); | ||
285 | extern void rcu_barrier(void); | 284 | extern void rcu_barrier(void); |
286 | 285 | ||
287 | #endif /* __KERNEL__ */ | 286 | #endif /* __KERNEL__ */ |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 17249fae5014..682ef87da6eb 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -139,7 +139,7 @@ struct cfs_rq; | |||
139 | extern void proc_sched_show_task(struct task_struct *p, struct seq_file *m); | 139 | extern void proc_sched_show_task(struct task_struct *p, struct seq_file *m); |
140 | extern void proc_sched_set_task(struct task_struct *p); | 140 | extern void proc_sched_set_task(struct task_struct *p); |
141 | extern void | 141 | extern void |
142 | print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq, u64 now); | 142 | print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq); |
143 | #else | 143 | #else |
144 | static inline void | 144 | static inline void |
145 | proc_sched_show_task(struct task_struct *p, struct seq_file *m) | 145 | proc_sched_show_task(struct task_struct *p, struct seq_file *m) |
@@ -149,7 +149,7 @@ static inline void proc_sched_set_task(struct task_struct *p) | |||
149 | { | 149 | { |
150 | } | 150 | } |
151 | static inline void | 151 | static inline void |
152 | print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq, u64 now) | 152 | print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq) |
153 | { | 153 | { |
154 | } | 154 | } |
155 | #endif | 155 | #endif |
@@ -855,26 +855,24 @@ struct sched_domain; | |||
855 | struct sched_class { | 855 | struct sched_class { |
856 | struct sched_class *next; | 856 | struct sched_class *next; |
857 | 857 | ||
858 | void (*enqueue_task) (struct rq *rq, struct task_struct *p, | 858 | void (*enqueue_task) (struct rq *rq, struct task_struct *p, int wakeup); |
859 | int wakeup, u64 now); | 859 | void (*dequeue_task) (struct rq *rq, struct task_struct *p, int sleep); |
860 | void (*dequeue_task) (struct rq *rq, struct task_struct *p, | ||
861 | int sleep, u64 now); | ||
862 | void (*yield_task) (struct rq *rq, struct task_struct *p); | 860 | void (*yield_task) (struct rq *rq, struct task_struct *p); |
863 | 861 | ||
864 | void (*check_preempt_curr) (struct rq *rq, struct task_struct *p); | 862 | void (*check_preempt_curr) (struct rq *rq, struct task_struct *p); |
865 | 863 | ||
866 | struct task_struct * (*pick_next_task) (struct rq *rq, u64 now); | 864 | struct task_struct * (*pick_next_task) (struct rq *rq); |
867 | void (*put_prev_task) (struct rq *rq, struct task_struct *p, u64 now); | 865 | void (*put_prev_task) (struct rq *rq, struct task_struct *p); |
868 | 866 | ||
869 | int (*load_balance) (struct rq *this_rq, int this_cpu, | 867 | unsigned long (*load_balance) (struct rq *this_rq, int this_cpu, |
870 | struct rq *busiest, | 868 | struct rq *busiest, |
871 | unsigned long max_nr_move, unsigned long max_load_move, | 869 | unsigned long max_nr_move, unsigned long max_load_move, |
872 | struct sched_domain *sd, enum cpu_idle_type idle, | 870 | struct sched_domain *sd, enum cpu_idle_type idle, |
873 | int *all_pinned, unsigned long *total_load_moved); | 871 | int *all_pinned, int *this_best_prio); |
874 | 872 | ||
875 | void (*set_curr_task) (struct rq *rq); | 873 | void (*set_curr_task) (struct rq *rq); |
876 | void (*task_tick) (struct rq *rq, struct task_struct *p); | 874 | void (*task_tick) (struct rq *rq, struct task_struct *p); |
877 | void (*task_new) (struct rq *rq, struct task_struct *p, u64 now); | 875 | void (*task_new) (struct rq *rq, struct task_struct *p); |
878 | }; | 876 | }; |
879 | 877 | ||
880 | struct load_weight { | 878 | struct load_weight { |
diff --git a/include/linux/tty.h b/include/linux/tty.h index 691a1748d9d2..6570719eafdf 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h | |||
@@ -274,6 +274,8 @@ struct tty_struct { | |||
274 | #define TTY_PTY_LOCK 16 /* pty private */ | 274 | #define TTY_PTY_LOCK 16 /* pty private */ |
275 | #define TTY_NO_WRITE_SPLIT 17 /* Preserve write boundaries to driver */ | 275 | #define TTY_NO_WRITE_SPLIT 17 /* Preserve write boundaries to driver */ |
276 | #define TTY_HUPPED 18 /* Post driver->hangup() */ | 276 | #define TTY_HUPPED 18 /* Post driver->hangup() */ |
277 | #define TTY_FLUSHING 19 /* Flushing to ldisc in progress */ | ||
278 | #define TTY_FLUSHPENDING 20 /* Queued buffer flush pending */ | ||
277 | 279 | ||
278 | #define TTY_WRITE_FLUSH(tty) tty_write_flush((tty)) | 280 | #define TTY_WRITE_FLUSH(tty) tty_write_flush((tty)) |
279 | 281 | ||
diff --git a/include/math-emu/op-common.h b/include/math-emu/op-common.h index 93780abd01bc..bb46e7645d53 100644 --- a/include/math-emu/op-common.h +++ b/include/math-emu/op-common.h | |||
@@ -145,13 +145,16 @@ do { \ | |||
145 | { \ | 145 | { \ |
146 | X##_e = 1; \ | 146 | X##_e = 1; \ |
147 | _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \ | 147 | _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \ |
148 | FP_SET_EXCEPTION(FP_EX_INEXACT); \ | ||
148 | } \ | 149 | } \ |
149 | else \ | 150 | else \ |
150 | { \ | 151 | { \ |
151 | X##_e = 0; \ | 152 | X##_e = 0; \ |
152 | _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \ | 153 | _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \ |
153 | FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \ | ||
154 | } \ | 154 | } \ |
155 | if ((FP_CUR_EXCEPTIONS & FP_EX_INEXACT) || \ | ||
156 | (FP_TRAPPING_EXCEPTIONS & FP_EX_UNDERFLOW)) \ | ||
157 | FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \ | ||
155 | } \ | 158 | } \ |
156 | else \ | 159 | else \ |
157 | { \ | 160 | { \ |
diff --git a/include/math-emu/soft-fp.h b/include/math-emu/soft-fp.h index d02eb64a865b..a0721ef5c2f9 100644 --- a/include/math-emu/soft-fp.h +++ b/include/math-emu/soft-fp.h | |||
@@ -97,12 +97,19 @@ | |||
97 | #define FP_INHIBIT_RESULTS 0 | 97 | #define FP_INHIBIT_RESULTS 0 |
98 | #endif | 98 | #endif |
99 | 99 | ||
100 | #ifndef FP_TRAPPING_EXCEPTIONS | ||
101 | #define FP_TRAPPING_EXCPETIONS 0 | ||
102 | #endif | ||
103 | |||
100 | #define FP_SET_EXCEPTION(ex) \ | 104 | #define FP_SET_EXCEPTION(ex) \ |
101 | _fex |= (ex) | 105 | _fex |= (ex) |
102 | 106 | ||
103 | #define FP_UNSET_EXCEPTION(ex) \ | 107 | #define FP_UNSET_EXCEPTION(ex) \ |
104 | _fex &= ~(ex) | 108 | _fex &= ~(ex) |
105 | 109 | ||
110 | #define FP_CUR_EXCEPTIONS \ | ||
111 | (_fex) | ||
112 | |||
106 | #define FP_CLEAR_EXCEPTIONS \ | 113 | #define FP_CLEAR_EXCEPTIONS \ |
107 | _fex = 0 | 114 | _fex = 0 |
108 | 115 | ||
diff --git a/include/net/netfilter/ipv4/nf_conntrack_ipv4.h b/include/net/netfilter/ipv4/nf_conntrack_ipv4.h index 7a671603fca6..9bf059817aec 100644 --- a/include/net/netfilter/ipv4/nf_conntrack_ipv4.h +++ b/include/net/netfilter/ipv4/nf_conntrack_ipv4.h | |||
@@ -21,4 +21,6 @@ extern struct nf_conntrack_l4proto nf_conntrack_l4proto_icmp; | |||
21 | extern int nf_conntrack_ipv4_compat_init(void); | 21 | extern int nf_conntrack_ipv4_compat_init(void); |
22 | extern void nf_conntrack_ipv4_compat_fini(void); | 22 | extern void nf_conntrack_ipv4_compat_fini(void); |
23 | 23 | ||
24 | extern void need_ipv4_conntrack(void); | ||
25 | |||
24 | #endif /*_NF_CONNTRACK_IPV4_H*/ | 26 | #endif /*_NF_CONNTRACK_IPV4_H*/ |
diff --git a/include/rdma/ib_mad.h b/include/rdma/ib_mad.h index 30712ddd8a5e..8ec3799e42e1 100644 --- a/include/rdma/ib_mad.h +++ b/include/rdma/ib_mad.h | |||
@@ -39,6 +39,8 @@ | |||
39 | #if !defined( IB_MAD_H ) | 39 | #if !defined( IB_MAD_H ) |
40 | #define IB_MAD_H | 40 | #define IB_MAD_H |
41 | 41 | ||
42 | #include <linux/list.h> | ||
43 | |||
42 | #include <rdma/ib_verbs.h> | 44 | #include <rdma/ib_verbs.h> |
43 | 45 | ||
44 | /* Management base version */ | 46 | /* Management base version */ |
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index 0627a6aa282a..4bea182d7116 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h | |||
@@ -46,6 +46,8 @@ | |||
46 | #include <linux/mm.h> | 46 | #include <linux/mm.h> |
47 | #include <linux/dma-mapping.h> | 47 | #include <linux/dma-mapping.h> |
48 | #include <linux/kref.h> | 48 | #include <linux/kref.h> |
49 | #include <linux/list.h> | ||
50 | #include <linux/rwsem.h> | ||
49 | 51 | ||
50 | #include <asm/atomic.h> | 52 | #include <asm/atomic.h> |
51 | #include <asm/scatterlist.h> | 53 | #include <asm/scatterlist.h> |
@@ -731,11 +733,6 @@ struct ib_udata { | |||
731 | size_t outlen; | 733 | size_t outlen; |
732 | }; | 734 | }; |
733 | 735 | ||
734 | #define IB_UMEM_MAX_PAGE_CHUNK \ | ||
735 | ((PAGE_SIZE - offsetof(struct ib_umem_chunk, page_list)) / \ | ||
736 | ((void *) &((struct ib_umem_chunk *) 0)->page_list[1] - \ | ||
737 | (void *) &((struct ib_umem_chunk *) 0)->page_list[0])) | ||
738 | |||
739 | struct ib_pd { | 736 | struct ib_pd { |
740 | struct ib_device *device; | 737 | struct ib_device *device; |
741 | struct ib_uobject *uobject; | 738 | struct ib_uobject *uobject; |
diff --git a/include/scsi/scsi_driver.h b/include/scsi/scsi_driver.h index 02e26c1672bf..3465f31a21c4 100644 --- a/include/scsi/scsi_driver.h +++ b/include/scsi/scsi_driver.h | |||
@@ -13,8 +13,6 @@ struct scsi_driver { | |||
13 | 13 | ||
14 | int (*init_command)(struct scsi_cmnd *); | 14 | int (*init_command)(struct scsi_cmnd *); |
15 | void (*rescan)(struct device *); | 15 | void (*rescan)(struct device *); |
16 | int (*issue_flush)(struct device *, sector_t *); | ||
17 | int (*prepare_flush)(struct request_queue *, struct request *); | ||
18 | }; | 16 | }; |
19 | #define to_scsi_driver(drv) \ | 17 | #define to_scsi_driver(drv) \ |
20 | container_of((drv), struct scsi_driver, gendrv) | 18 | container_of((drv), struct scsi_driver, gendrv) |
diff --git a/include/scsi/sd.h b/include/scsi/sd.h index 78583fee0ab2..ce02ad1f5185 100644 --- a/include/scsi/sd.h +++ b/include/scsi/sd.h | |||
@@ -56,8 +56,6 @@ static int sd_suspend(struct device *dev, pm_message_t state); | |||
56 | static int sd_resume(struct device *dev); | 56 | static int sd_resume(struct device *dev); |
57 | static void sd_rescan(struct device *); | 57 | static void sd_rescan(struct device *); |
58 | static int sd_init_command(struct scsi_cmnd *); | 58 | static int sd_init_command(struct scsi_cmnd *); |
59 | static int sd_issue_flush(struct device *, sector_t *); | ||
60 | static void sd_prepare_flush(struct request_queue *, struct request *); | ||
61 | static void sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer); | 59 | static void sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer); |
62 | static void scsi_disk_release(struct class_device *cdev); | 60 | static void scsi_disk_release(struct class_device *cdev); |
63 | static void sd_print_sense_hdr(struct scsi_disk *, struct scsi_sense_hdr *); | 61 | static void sd_print_sense_hdr(struct scsi_disk *, struct scsi_sense_hdr *); |