diff options
Diffstat (limited to 'include')
80 files changed, 479 insertions, 365 deletions
diff --git a/include/acpi/processor.h b/include/acpi/processor.h index cdc8004cfd12..06480bcabfdc 100644 --- a/include/acpi/processor.h +++ b/include/acpi/processor.h | |||
@@ -32,9 +32,11 @@ | |||
32 | #define DOMAIN_COORD_TYPE_SW_ANY 0xfd | 32 | #define DOMAIN_COORD_TYPE_SW_ANY 0xfd |
33 | #define DOMAIN_COORD_TYPE_HW_ALL 0xfe | 33 | #define DOMAIN_COORD_TYPE_HW_ALL 0xfe |
34 | 34 | ||
35 | #define ACPI_CSTATE_SYSTEMIO (0) | 35 | #define ACPI_CSTATE_SYSTEMIO 0 |
36 | #define ACPI_CSTATE_FFH (1) | 36 | #define ACPI_CSTATE_FFH 1 |
37 | #define ACPI_CSTATE_HALT (2) | 37 | #define ACPI_CSTATE_HALT 2 |
38 | |||
39 | #define ACPI_CX_DESC_LEN 32 | ||
38 | 40 | ||
39 | /* Power Management */ | 41 | /* Power Management */ |
40 | 42 | ||
@@ -74,6 +76,7 @@ struct acpi_processor_cx { | |||
74 | u64 time; | 76 | u64 time; |
75 | struct acpi_processor_cx_policy promotion; | 77 | struct acpi_processor_cx_policy promotion; |
76 | struct acpi_processor_cx_policy demotion; | 78 | struct acpi_processor_cx_policy demotion; |
79 | char desc[ACPI_CX_DESC_LEN]; | ||
77 | }; | 80 | }; |
78 | 81 | ||
79 | struct acpi_processor_power { | 82 | struct acpi_processor_power { |
diff --git a/include/asm-m68knommu/cacheflush.h b/include/asm-m68knommu/cacheflush.h index 29bc0aad2ebc..87e5dc0413b4 100644 --- a/include/asm-m68knommu/cacheflush.h +++ b/include/asm-m68knommu/cacheflush.h | |||
@@ -54,28 +54,28 @@ static inline void __flush_cache_all(void) | |||
54 | #if defined(CONFIG_M527x) || defined(CONFIG_M528x) | 54 | #if defined(CONFIG_M527x) || defined(CONFIG_M528x) |
55 | __asm__ __volatile__ ( | 55 | __asm__ __volatile__ ( |
56 | "movel #0x81000200, %%d0\n\t" | 56 | "movel #0x81000200, %%d0\n\t" |
57 | "movec %%d0, %%CACR\n\t" | 57 | "movec %%d0, %%CACR\n\t" |
58 | "nop\n\t" | 58 | "nop\n\t" |
59 | : : : "d0" ); | 59 | : : : "d0" ); |
60 | #endif /* CONFIG_M527x || CONFIG_M528x */ | 60 | #endif /* CONFIG_M527x || CONFIG_M528x */ |
61 | #if defined(CONFIG_M5206) || defined(CONFIG_M5206e) || defined(CONFIG_M5272) | 61 | #if defined(CONFIG_M5206) || defined(CONFIG_M5206e) || defined(CONFIG_M5272) |
62 | __asm__ __volatile__ ( | 62 | __asm__ __volatile__ ( |
63 | "movel #0x81000100, %%d0\n\t" | 63 | "movel #0x81000100, %%d0\n\t" |
64 | "movec %%d0, %%CACR\n\t" | 64 | "movec %%d0, %%CACR\n\t" |
65 | "nop\n\t" | 65 | "nop\n\t" |
66 | : : : "d0" ); | 66 | : : : "d0" ); |
67 | #endif /* CONFIG_M5206 || CONFIG_M5206e || CONFIG_M5272 */ | 67 | #endif /* CONFIG_M5206 || CONFIG_M5206e || CONFIG_M5272 */ |
68 | #ifdef CONFIG_M5249 | 68 | #ifdef CONFIG_M5249 |
69 | __asm__ __volatile__ ( | 69 | __asm__ __volatile__ ( |
70 | "movel #0xa1000200, %%d0\n\t" | 70 | "movel #0xa1000200, %%d0\n\t" |
71 | "movec %%d0, %%CACR\n\t" | 71 | "movec %%d0, %%CACR\n\t" |
72 | "nop\n\t" | 72 | "nop\n\t" |
73 | : : : "d0" ); | 73 | : : : "d0" ); |
74 | #endif /* CONFIG_M5249 */ | 74 | #endif /* CONFIG_M5249 */ |
75 | #ifdef CONFIG_M532x | 75 | #ifdef CONFIG_M532x |
76 | __asm__ __volatile__ ( | 76 | __asm__ __volatile__ ( |
77 | "movel #0x81000200, %%d0\n\t" | 77 | "movel #0x81000200, %%d0\n\t" |
78 | "movec %%d0, %%CACR\n\t" | 78 | "movec %%d0, %%CACR\n\t" |
79 | "nop\n\t" | 79 | "nop\n\t" |
80 | : : : "d0" ); | 80 | : : : "d0" ); |
81 | #endif /* CONFIG_M532x */ | 81 | #endif /* CONFIG_M532x */ |
diff --git a/include/asm-m68knommu/system.h b/include/asm-m68knommu/system.h index 039ab3f81732..64c64432bbb8 100644 --- a/include/asm-m68knommu/system.h +++ b/include/asm-m68knommu/system.h | |||
@@ -104,7 +104,7 @@ asmlinkage void resume(void); | |||
104 | #define mb() asm volatile ("" : : :"memory") | 104 | #define mb() asm volatile ("" : : :"memory") |
105 | #define rmb() asm volatile ("" : : :"memory") | 105 | #define rmb() asm volatile ("" : : :"memory") |
106 | #define wmb() asm volatile ("" : : :"memory") | 106 | #define wmb() asm volatile ("" : : :"memory") |
107 | #define set_mb(var, value) do { xchg(&var, value); } while (0) | 107 | #define set_mb(var, value) ({ (var) = (value); wmb(); }) |
108 | 108 | ||
109 | #ifdef CONFIG_SMP | 109 | #ifdef CONFIG_SMP |
110 | #define smp_mb() mb() | 110 | #define smp_mb() mb() |
diff --git a/include/asm-mn10300/highmem.h b/include/asm-mn10300/highmem.h index 383c0c42982e..5256854c0453 100644 --- a/include/asm-mn10300/highmem.h +++ b/include/asm-mn10300/highmem.h | |||
@@ -42,8 +42,8 @@ extern void __init kmap_init(void); | |||
42 | #define PKMAP_NR(virt) ((virt - PKMAP_BASE) >> PAGE_SHIFT) | 42 | #define PKMAP_NR(virt) ((virt - PKMAP_BASE) >> PAGE_SHIFT) |
43 | #define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT)) | 43 | #define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT)) |
44 | 44 | ||
45 | extern unsigned long __fastcall kmap_high(struct page *page); | 45 | extern unsigned long kmap_high(struct page *page); |
46 | extern void __fastcall kunmap_high(struct page *page); | 46 | extern void kunmap_high(struct page *page); |
47 | 47 | ||
48 | static inline unsigned long kmap(struct page *page) | 48 | static inline unsigned long kmap(struct page *page) |
49 | { | 49 | { |
diff --git a/include/asm-mn10300/linkage.h b/include/asm-mn10300/linkage.h index 29a32e467523..dda3002a5dfa 100644 --- a/include/asm-mn10300/linkage.h +++ b/include/asm-mn10300/linkage.h | |||
@@ -13,8 +13,6 @@ | |||
13 | 13 | ||
14 | /* don't override anything */ | 14 | /* don't override anything */ |
15 | #define asmlinkage | 15 | #define asmlinkage |
16 | #define FASTCALL(x) x | ||
17 | #define fastcall | ||
18 | 16 | ||
19 | #define __ALIGN .align 4,0xcb | 17 | #define __ALIGN .align 4,0xcb |
20 | #define __ALIGN_STR ".align 4,0xcb" | 18 | #define __ALIGN_STR ".align 4,0xcb" |
diff --git a/include/asm-powerpc/systbl.h b/include/asm-powerpc/systbl.h index e996521fb3a6..ae7085c65692 100644 --- a/include/asm-powerpc/systbl.h +++ b/include/asm-powerpc/systbl.h | |||
@@ -309,8 +309,10 @@ SYSCALL_SPU(getcpu) | |||
309 | COMPAT_SYS(epoll_pwait) | 309 | COMPAT_SYS(epoll_pwait) |
310 | COMPAT_SYS_SPU(utimensat) | 310 | COMPAT_SYS_SPU(utimensat) |
311 | COMPAT_SYS_SPU(signalfd) | 311 | COMPAT_SYS_SPU(signalfd) |
312 | SYSCALL(ni_syscall) | 312 | SYSCALL_SPU(timerfd_create) |
313 | SYSCALL_SPU(eventfd) | 313 | SYSCALL_SPU(eventfd) |
314 | COMPAT_SYS_SPU(sync_file_range2) | 314 | COMPAT_SYS_SPU(sync_file_range2) |
315 | COMPAT_SYS(fallocate) | 315 | COMPAT_SYS(fallocate) |
316 | SYSCALL(subpage_prot) | 316 | SYSCALL(subpage_prot) |
317 | COMPAT_SYS_SPU(timerfd_settime) | ||
318 | COMPAT_SYS_SPU(timerfd_gettime) | ||
diff --git a/include/asm-powerpc/unistd.h b/include/asm-powerpc/unistd.h index fedc4b8e49e2..ce91bb662063 100644 --- a/include/asm-powerpc/unistd.h +++ b/include/asm-powerpc/unistd.h | |||
@@ -328,15 +328,17 @@ | |||
328 | #define __NR_epoll_pwait 303 | 328 | #define __NR_epoll_pwait 303 |
329 | #define __NR_utimensat 304 | 329 | #define __NR_utimensat 304 |
330 | #define __NR_signalfd 305 | 330 | #define __NR_signalfd 305 |
331 | #define __NR_timerfd 306 | 331 | #define __NR_timerfd_create 306 |
332 | #define __NR_eventfd 307 | 332 | #define __NR_eventfd 307 |
333 | #define __NR_sync_file_range2 308 | 333 | #define __NR_sync_file_range2 308 |
334 | #define __NR_fallocate 309 | 334 | #define __NR_fallocate 309 |
335 | #define __NR_subpage_prot 310 | 335 | #define __NR_subpage_prot 310 |
336 | #define __NR_timerfd_settime 311 | ||
337 | #define __NR_timerfd_gettime 312 | ||
336 | 338 | ||
337 | #ifdef __KERNEL__ | 339 | #ifdef __KERNEL__ |
338 | 340 | ||
339 | #define __NR_syscalls 311 | 341 | #define __NR_syscalls 313 |
340 | 342 | ||
341 | #define __NR__exit __NR_exit | 343 | #define __NR__exit __NR_exit |
342 | #define NR_syscalls __NR_syscalls | 344 | #define NR_syscalls __NR_syscalls |
diff --git a/include/asm-ppc/page.h b/include/asm-ppc/page.h index ad4c5a1bc9d6..37e4756b6b2d 100644 --- a/include/asm-ppc/page.h +++ b/include/asm-ppc/page.h | |||
@@ -125,6 +125,8 @@ extern __inline__ int get_order(unsigned long size) | |||
125 | return 32 - lz; | 125 | return 32 - lz; |
126 | } | 126 | } |
127 | 127 | ||
128 | typedef struct page *pgtable_t; | ||
129 | |||
128 | #endif /* __ASSEMBLY__ */ | 130 | #endif /* __ASSEMBLY__ */ |
129 | 131 | ||
130 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ | 132 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ |
diff --git a/include/asm-sh/bugs.h b/include/asm-sh/bugs.h index def8128b8b78..cfda7d5bf026 100644 --- a/include/asm-sh/bugs.h +++ b/include/asm-sh/bugs.h | |||
@@ -39,7 +39,7 @@ static void __init check_bugs(void) | |||
39 | *p++ = '4'; | 39 | *p++ = '4'; |
40 | *p++ = 'a'; | 40 | *p++ = 'a'; |
41 | break; | 41 | break; |
42 | case CPU_SH7343 ... CPU_SH7722: | 42 | case CPU_SH7343 ... CPU_SH7366: |
43 | *p++ = '4'; | 43 | *p++ = '4'; |
44 | *p++ = 'a'; | 44 | *p++ = 'a'; |
45 | *p++ = 'l'; | 45 | *p++ = 'l'; |
diff --git a/include/asm-sh/cpu-sh4/freq.h b/include/asm-sh/cpu-sh4/freq.h index 1ac10b9a078f..ec028c649215 100644 --- a/include/asm-sh/cpu-sh4/freq.h +++ b/include/asm-sh/cpu-sh4/freq.h | |||
@@ -10,12 +10,14 @@ | |||
10 | #ifndef __ASM_CPU_SH4_FREQ_H | 10 | #ifndef __ASM_CPU_SH4_FREQ_H |
11 | #define __ASM_CPU_SH4_FREQ_H | 11 | #define __ASM_CPU_SH4_FREQ_H |
12 | 12 | ||
13 | #if defined(CONFIG_CPU_SUBTYPE_SH7722) | 13 | #if defined(CONFIG_CPU_SUBTYPE_SH7722) || defined(CONFIG_CPU_SUBTYPE_SH7366) |
14 | #define FRQCR 0xa4150000 | 14 | #define FRQCR 0xa4150000 |
15 | #define VCLKCR 0xa4150004 | 15 | #define VCLKCR 0xa4150004 |
16 | #define SCLKACR 0xa4150008 | 16 | #define SCLKACR 0xa4150008 |
17 | #define SCLKBCR 0xa415000c | 17 | #define SCLKBCR 0xa415000c |
18 | #if defined(CONFIG_CPU_SUBTYPE_SH7722) | ||
18 | #define IrDACLKCR 0xa4150010 | 19 | #define IrDACLKCR 0xa4150010 |
20 | #endif | ||
19 | #elif defined(CONFIG_CPU_SUBTYPE_SH7763) || \ | 21 | #elif defined(CONFIG_CPU_SUBTYPE_SH7763) || \ |
20 | defined(CONFIG_CPU_SUBTYPE_SH7780) | 22 | defined(CONFIG_CPU_SUBTYPE_SH7780) |
21 | #define FRQCR 0xffc80000 | 23 | #define FRQCR 0xffc80000 |
diff --git a/include/asm-sh/cpu-sh5/cacheflush.h b/include/asm-sh/cpu-sh5/cacheflush.h index 98edb5b1da32..5a11f0b7e66a 100644 --- a/include/asm-sh/cpu-sh5/cacheflush.h +++ b/include/asm-sh/cpu-sh5/cacheflush.h | |||
@@ -3,15 +3,13 @@ | |||
3 | 3 | ||
4 | #ifndef __ASSEMBLY__ | 4 | #ifndef __ASSEMBLY__ |
5 | 5 | ||
6 | #include <asm/page.h> | ||
7 | |||
8 | struct vm_area_struct; | 6 | struct vm_area_struct; |
9 | struct page; | 7 | struct page; |
10 | struct mm_struct; | 8 | struct mm_struct; |
11 | 9 | ||
12 | extern void flush_cache_all(void); | 10 | extern void flush_cache_all(void); |
13 | extern void flush_cache_mm(struct mm_struct *mm); | 11 | extern void flush_cache_mm(struct mm_struct *mm); |
14 | extern void flush_cache_sigtramp(unsigned long start, unsigned long end); | 12 | extern void flush_cache_sigtramp(unsigned long vaddr); |
15 | extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start, | 13 | extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start, |
16 | unsigned long end); | 14 | unsigned long end); |
17 | extern void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn); | 15 | extern void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn); |
@@ -27,7 +25,7 @@ extern void flush_icache_user_range(struct vm_area_struct *vma, | |||
27 | #define flush_dcache_mmap_unlock(mapping) do { } while (0) | 25 | #define flush_dcache_mmap_unlock(mapping) do { } while (0) |
28 | 26 | ||
29 | #define flush_icache_page(vma, page) do { } while (0) | 27 | #define flush_icache_page(vma, page) do { } while (0) |
30 | #define p3_cache_init() do { } while (0) | 28 | void p3_cache_init(void); |
31 | 29 | ||
32 | #endif /* __ASSEMBLY__ */ | 30 | #endif /* __ASSEMBLY__ */ |
33 | 31 | ||
diff --git a/include/asm-sh/cpu-sh5/mmu_context.h b/include/asm-sh/cpu-sh5/mmu_context.h index df857fc09960..68a1d2cff457 100644 --- a/include/asm-sh/cpu-sh5/mmu_context.h +++ b/include/asm-sh/cpu-sh5/mmu_context.h | |||
@@ -16,12 +16,6 @@ | |||
16 | /* This has to be a common function because the next location to fill | 16 | /* This has to be a common function because the next location to fill |
17 | * information is shared. */ | 17 | * information is shared. */ |
18 | extern void __do_tlb_refill(unsigned long address, unsigned long long is_text_not_data, pte_t *pte); | 18 | extern void __do_tlb_refill(unsigned long address, unsigned long long is_text_not_data, pte_t *pte); |
19 | |||
20 | /* Profiling counter. */ | ||
21 | #ifdef CONFIG_SH64_PROC_TLB | ||
22 | extern unsigned long long calls_to_do_fast_page_fault; | ||
23 | #endif | ||
24 | |||
25 | #endif /* __ASSEMBLY__ */ | 19 | #endif /* __ASSEMBLY__ */ |
26 | 20 | ||
27 | #endif /* __ASM_SH_CPU_SH5_MMU_CONTEXT_H */ | 21 | #endif /* __ASM_SH_CPU_SH5_MMU_CONTEXT_H */ |
diff --git a/include/asm-sh/hp6xx.h b/include/asm-sh/hp6xx.h index 53ca5643d9c7..0d4165a32dcd 100644 --- a/include/asm-sh/hp6xx.h +++ b/include/asm-sh/hp6xx.h | |||
@@ -10,9 +10,9 @@ | |||
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #define HP680_BTN_IRQ 32 /* IRQ0_IRQ */ | 13 | #define HP680_BTN_IRQ 32 /* IRQ0_IRQ */ |
14 | #define HP680_TS_IRQ 35 /* IRQ3_IRQ */ | 14 | #define HP680_TS_IRQ 35 /* IRQ3_IRQ */ |
15 | #define HP680_HD64461_IRQ 36 /* IRQ4_IRQ */ | 15 | #define HP680_HD64461_IRQ 36 /* IRQ4_IRQ */ |
16 | 16 | ||
17 | #define DAC_LCD_BRIGHTNESS 0 | 17 | #define DAC_LCD_BRIGHTNESS 0 |
18 | #define DAC_SPEAKER_VOLUME 1 | 18 | #define DAC_SPEAKER_VOLUME 1 |
@@ -55,26 +55,4 @@ | |||
55 | #define PJDR 0xa4000130 | 55 | #define PJDR 0xa4000130 |
56 | #define PKDR 0xa4000132 | 56 | #define PKDR 0xa4000132 |
57 | 57 | ||
58 | static inline void hp6xx_led_red(int on) | ||
59 | { | ||
60 | u16 v16; | ||
61 | v16 = ctrl_inw(CONFIG_HD64461_IOBASE + HD64461_GPBDR - 0x10000); | ||
62 | if (on) | ||
63 | ctrl_outw(v16 & (~HD64461_GPBDR_LED_RED), CONFIG_HD64461_IOBASE + HD64461_GPBDR - 0x10000); | ||
64 | else | ||
65 | ctrl_outw(v16 | HD64461_GPBDR_LED_RED, CONFIG_HD64461_IOBASE + HD64461_GPBDR - 0x10000); | ||
66 | } | ||
67 | |||
68 | static inline void hp6xx_led_green(int on) | ||
69 | { | ||
70 | u8 v8; | ||
71 | |||
72 | v8 = ctrl_inb(PKDR); | ||
73 | if (on) | ||
74 | ctrl_outb(v8 & (~PKDR_LED_GREEN), PKDR); | ||
75 | else | ||
76 | ctrl_outb(v8 | PKDR_LED_GREEN, PKDR); | ||
77 | } | ||
78 | |||
79 | |||
80 | #endif /* __ASM_SH_HP6XX_H */ | 58 | #endif /* __ASM_SH_HP6XX_H */ |
diff --git a/include/asm-sh/io.h b/include/asm-sh/io.h index 94900c089519..356e50d06745 100644 --- a/include/asm-sh/io.h +++ b/include/asm-sh/io.h | |||
@@ -38,6 +38,7 @@ | |||
38 | */ | 38 | */ |
39 | #define __IO_PREFIX generic | 39 | #define __IO_PREFIX generic |
40 | #include <asm/io_generic.h> | 40 | #include <asm/io_generic.h> |
41 | #include <asm/io_trapped.h> | ||
41 | 42 | ||
42 | #define maybebadio(port) \ | 43 | #define maybebadio(port) \ |
43 | printk(KERN_ERR "bad PC-like io %s:%u for port 0x%lx at 0x%08x\n", \ | 44 | printk(KERN_ERR "bad PC-like io %s:%u for port 0x%lx at 0x%08x\n", \ |
@@ -181,13 +182,13 @@ __BUILD_MEMORY_STRING(w, u16) | |||
181 | #define iowrite32(v,a) writel((v),(a)) | 182 | #define iowrite32(v,a) writel((v),(a)) |
182 | #define iowrite32be(v,a) __raw_writel(cpu_to_be32((v)),(a)) | 183 | #define iowrite32be(v,a) __raw_writel(cpu_to_be32((v)),(a)) |
183 | 184 | ||
184 | #define ioread8_rep(a,d,c) insb((a),(d),(c)) | 185 | #define ioread8_rep(a, d, c) readsb((a), (d), (c)) |
185 | #define ioread16_rep(a,d,c) insw((a),(d),(c)) | 186 | #define ioread16_rep(a, d, c) readsw((a), (d), (c)) |
186 | #define ioread32_rep(a,d,c) insl((a),(d),(c)) | 187 | #define ioread32_rep(a, d, c) readsl((a), (d), (c)) |
187 | 188 | ||
188 | #define iowrite8_rep(a,s,c) outsb((a),(s),(c)) | 189 | #define iowrite8_rep(a, s, c) writesb((a), (s), (c)) |
189 | #define iowrite16_rep(a,s,c) outsw((a),(s),(c)) | 190 | #define iowrite16_rep(a, s, c) writesw((a), (s), (c)) |
190 | #define iowrite32_rep(a,s,c) outsl((a),(s),(c)) | 191 | #define iowrite32_rep(a, s, c) writesl((a), (s), (c)) |
191 | 192 | ||
192 | #define mmiowb() wmb() /* synco on SH-4A, otherwise a nop */ | 193 | #define mmiowb() wmb() /* synco on SH-4A, otherwise a nop */ |
193 | 194 | ||
@@ -207,6 +208,8 @@ static inline void __set_io_port_base(unsigned long pbase) | |||
207 | generic_io_base = pbase; | 208 | generic_io_base = pbase; |
208 | } | 209 | } |
209 | 210 | ||
211 | #define __ioport_map(p, n) sh_mv.mv_ioport_map((p), (n)) | ||
212 | |||
210 | /* We really want to try and get these to memcpy etc */ | 213 | /* We really want to try and get these to memcpy etc */ |
211 | extern void memcpy_fromio(void *, volatile void __iomem *, unsigned long); | 214 | extern void memcpy_fromio(void *, volatile void __iomem *, unsigned long); |
212 | extern void memcpy_toio(volatile void __iomem *, const void *, unsigned long); | 215 | extern void memcpy_toio(volatile void __iomem *, const void *, unsigned long); |
@@ -309,7 +312,14 @@ __ioremap_mode(unsigned long offset, unsigned long size, unsigned long flags) | |||
309 | { | 312 | { |
310 | #ifdef CONFIG_SUPERH32 | 313 | #ifdef CONFIG_SUPERH32 |
311 | unsigned long last_addr = offset + size - 1; | 314 | unsigned long last_addr = offset + size - 1; |
315 | #endif | ||
316 | void __iomem *ret; | ||
312 | 317 | ||
318 | ret = __ioremap_trapped(offset, size); | ||
319 | if (ret) | ||
320 | return ret; | ||
321 | |||
322 | #ifdef CONFIG_SUPERH32 | ||
313 | /* | 323 | /* |
314 | * For P1 and P2 space this is trivial, as everything is already | 324 | * For P1 and P2 space this is trivial, as everything is already |
315 | * mapped. Uncached access for P1 addresses are done through P2. | 325 | * mapped. Uncached access for P1 addresses are done through P2. |
diff --git a/include/asm-sh/io_trapped.h b/include/asm-sh/io_trapped.h new file mode 100644 index 000000000000..f1251d4f0ba9 --- /dev/null +++ b/include/asm-sh/io_trapped.h | |||
@@ -0,0 +1,58 @@ | |||
1 | #ifndef __ASM_SH_IO_TRAPPED_H | ||
2 | #define __ASM_SH_IO_TRAPPED_H | ||
3 | |||
4 | #include <linux/list.h> | ||
5 | #include <linux/ioport.h> | ||
6 | #include <asm/page.h> | ||
7 | |||
8 | #define IO_TRAPPED_MAGIC 0xfeedbeef | ||
9 | |||
10 | struct trapped_io { | ||
11 | unsigned int magic; | ||
12 | struct resource *resource; | ||
13 | unsigned int num_resources; | ||
14 | unsigned int minimum_bus_width; | ||
15 | struct list_head list; | ||
16 | void __iomem *virt_base; | ||
17 | } __aligned(PAGE_SIZE); | ||
18 | |||
19 | #ifdef CONFIG_IO_TRAPPED | ||
20 | int register_trapped_io(struct trapped_io *tiop); | ||
21 | int handle_trapped_io(struct pt_regs *regs, unsigned long address); | ||
22 | |||
23 | void __iomem *match_trapped_io_handler(struct list_head *list, | ||
24 | unsigned long offset, | ||
25 | unsigned long size); | ||
26 | |||
27 | #ifdef CONFIG_HAS_IOMEM | ||
28 | extern struct list_head trapped_mem; | ||
29 | |||
30 | static inline void __iomem * | ||
31 | __ioremap_trapped(unsigned long offset, unsigned long size) | ||
32 | { | ||
33 | return match_trapped_io_handler(&trapped_mem, offset, size); | ||
34 | } | ||
35 | #else | ||
36 | #define __ioremap_trapped(offset, size) NULL | ||
37 | #endif | ||
38 | |||
39 | #ifdef CONFIG_HAS_IOPORT | ||
40 | extern struct list_head trapped_io; | ||
41 | |||
42 | static inline void __iomem * | ||
43 | __ioport_map_trapped(unsigned long offset, unsigned long size) | ||
44 | { | ||
45 | return match_trapped_io_handler(&trapped_io, offset, size); | ||
46 | } | ||
47 | #else | ||
48 | #define __ioport_map_trapped(offset, size) NULL | ||
49 | #endif | ||
50 | |||
51 | #else | ||
52 | #define register_trapped_io(tiop) (-1) | ||
53 | #define handle_trapped_io(tiop, address) 0 | ||
54 | #define __ioremap_trapped(offset, size) NULL | ||
55 | #define __ioport_map_trapped(offset, size) NULL | ||
56 | #endif | ||
57 | |||
58 | #endif /* __ASM_SH_IO_TRAPPED_H */ | ||
diff --git a/include/asm-sh/ioctls.h b/include/asm-sh/ioctls.h index 35805df010a0..c212c371a4a5 100644 --- a/include/asm-sh/ioctls.h +++ b/include/asm-sh/ioctls.h | |||
@@ -78,6 +78,10 @@ | |||
78 | #define TIOCSBRK _IO('T', 39) /* 0x5427 */ /* BSD compatibility */ | 78 | #define TIOCSBRK _IO('T', 39) /* 0x5427 */ /* BSD compatibility */ |
79 | #define TIOCCBRK _IO('T', 40) /* 0x5428 */ /* BSD compatibility */ | 79 | #define TIOCCBRK _IO('T', 40) /* 0x5428 */ /* BSD compatibility */ |
80 | #define TIOCGSID _IOR('T', 41, pid_t) /* 0x5429 */ /* Return the session ID of FD */ | 80 | #define TIOCGSID _IOR('T', 41, pid_t) /* 0x5429 */ /* Return the session ID of FD */ |
81 | #define TCGETS2 _IOR('T', 42, struct termios2) | ||
82 | #define TCSETS2 _IOW('T', 43, struct termios2) | ||
83 | #define TCSETSW2 _IOW('T', 44, struct termios2) | ||
84 | #define TCSETSF2 _IOW('T', 45, struct termios2) | ||
81 | #define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ | 85 | #define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ |
82 | #define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */ | 86 | #define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */ |
83 | 87 | ||
diff --git a/include/asm-sh/irq.h b/include/asm-sh/irq.h index 11850f65c922..ca66e5df69dc 100644 --- a/include/asm-sh/irq.h +++ b/include/asm-sh/irq.h | |||
@@ -50,4 +50,8 @@ extern void irq_ctx_exit(int cpu); | |||
50 | # define irq_ctx_exit(cpu) do { } while (0) | 50 | # define irq_ctx_exit(cpu) do { } while (0) |
51 | #endif | 51 | #endif |
52 | 52 | ||
53 | #ifdef CONFIG_CPU_SH5 | ||
54 | #include <asm/cpu/irq.h> | ||
55 | #endif | ||
56 | |||
53 | #endif /* __ASM_SH_IRQ_H */ | 57 | #endif /* __ASM_SH_IRQ_H */ |
diff --git a/include/asm-sh/mmu_context_64.h b/include/asm-sh/mmu_context_64.h index 020be744b088..9649f1c07caf 100644 --- a/include/asm-sh/mmu_context_64.h +++ b/include/asm-sh/mmu_context_64.h | |||
@@ -66,6 +66,9 @@ static inline void set_asid(unsigned long asid) | |||
66 | : "=r" (sr), "=r" (pc) : "0" (sr)); | 66 | : "=r" (sr), "=r" (pc) : "0" (sr)); |
67 | } | 67 | } |
68 | 68 | ||
69 | /* arch/sh/kernel/cpu/sh5/entry.S */ | ||
70 | extern unsigned long switch_and_save_asid(unsigned long new_asid); | ||
71 | |||
69 | /* No spare register to twiddle, so use a software cache */ | 72 | /* No spare register to twiddle, so use a software cache */ |
70 | extern pgd_t *mmu_pdtp_cache; | 73 | extern pgd_t *mmu_pdtp_cache; |
71 | 74 | ||
diff --git a/include/asm-sh/page.h b/include/asm-sh/page.h index 134562dc8c45..304c30b5d947 100644 --- a/include/asm-sh/page.h +++ b/include/asm-sh/page.h | |||
@@ -55,11 +55,14 @@ extern void clear_page(void *to); | |||
55 | extern void copy_page(void *to, void *from); | 55 | extern void copy_page(void *to, void *from); |
56 | 56 | ||
57 | #if !defined(CONFIG_CACHE_OFF) && defined(CONFIG_MMU) && \ | 57 | #if !defined(CONFIG_CACHE_OFF) && defined(CONFIG_MMU) && \ |
58 | (defined(CONFIG_CPU_SH4) || defined(CONFIG_SH7705_CACHE_32KB)) | 58 | (defined(CONFIG_CPU_SH5) || defined(CONFIG_CPU_SH4) || \ |
59 | defined(CONFIG_SH7705_CACHE_32KB)) | ||
59 | struct page; | 60 | struct page; |
60 | struct vm_area_struct; | 61 | struct vm_area_struct; |
61 | extern void clear_user_page(void *to, unsigned long address, struct page *page); | 62 | extern void clear_user_page(void *to, unsigned long address, struct page *page); |
62 | #ifdef CONFIG_CPU_SH4 | 63 | extern void copy_user_page(void *to, void *from, unsigned long address, |
64 | struct page *page); | ||
65 | #if defined(CONFIG_CPU_SH4) | ||
63 | extern void copy_user_highpage(struct page *to, struct page *from, | 66 | extern void copy_user_highpage(struct page *to, struct page *from, |
64 | unsigned long vaddr, struct vm_area_struct *vma); | 67 | unsigned long vaddr, struct vm_area_struct *vma); |
65 | #define __HAVE_ARCH_COPY_USER_HIGHPAGE | 68 | #define __HAVE_ARCH_COPY_USER_HIGHPAGE |
diff --git a/include/asm-sh/pgtable_64.h b/include/asm-sh/pgtable_64.h index 972211671c9a..f9dd9d311441 100644 --- a/include/asm-sh/pgtable_64.h +++ b/include/asm-sh/pgtable_64.h | |||
@@ -138,6 +138,14 @@ static __inline__ void pmd_set(pmd_t *pmdp,pte_t *ptep) | |||
138 | #endif | 138 | #endif |
139 | 139 | ||
140 | /* | 140 | /* |
141 | * Stub out _PAGE_SZHUGE if we don't have a good definition for it, | ||
142 | * to make pte_mkhuge() happy. | ||
143 | */ | ||
144 | #ifndef _PAGE_SZHUGE | ||
145 | # define _PAGE_SZHUGE (0) | ||
146 | #endif | ||
147 | |||
148 | /* | ||
141 | * Default flags for a Kernel page. | 149 | * Default flags for a Kernel page. |
142 | * This is fundametally also SHARED because the main use of this define | 150 | * This is fundametally also SHARED because the main use of this define |
143 | * (other than for PGD/PMD entries) is for the VMALLOC pool which is | 151 | * (other than for PGD/PMD entries) is for the VMALLOC pool which is |
@@ -179,6 +187,11 @@ static __inline__ void pmd_set(pmd_t *pmdp,pte_t *ptep) | |||
179 | _PAGE_WRITE | _PAGE_EXECUTE) | 187 | _PAGE_WRITE | _PAGE_EXECUTE) |
180 | #define PAGE_KERNEL __pgprot(_KERNPG_TABLE) | 188 | #define PAGE_KERNEL __pgprot(_KERNPG_TABLE) |
181 | 189 | ||
190 | #define PAGE_KERNEL_NOCACHE \ | ||
191 | __pgprot(_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | \ | ||
192 | _PAGE_EXECUTE | _PAGE_ACCESSED | \ | ||
193 | _PAGE_DIRTY | _PAGE_SHARED) | ||
194 | |||
182 | /* Make it a device mapping for maximum safety (e.g. for mapping device | 195 | /* Make it a device mapping for maximum safety (e.g. for mapping device |
183 | registers into user-space via /dev/map). */ | 196 | registers into user-space via /dev/map). */ |
184 | #define pgprot_noncached(x) __pgprot(((x).pgprot & ~(_PAGE_CACHABLE)) | _PAGE_DEVICE) | 197 | #define pgprot_noncached(x) __pgprot(((x).pgprot & ~(_PAGE_CACHABLE)) | _PAGE_DEVICE) |
diff --git a/include/asm-sh/processor.h b/include/asm-sh/processor.h index c9b14161f73d..19fe47c1ca17 100644 --- a/include/asm-sh/processor.h +++ b/include/asm-sh/processor.h | |||
@@ -33,7 +33,7 @@ enum cpu_type { | |||
33 | CPU_SH7763, CPU_SH7770, CPU_SH7780, CPU_SH7781, CPU_SH7785, CPU_SHX3, | 33 | CPU_SH7763, CPU_SH7770, CPU_SH7780, CPU_SH7781, CPU_SH7785, CPU_SHX3, |
34 | 34 | ||
35 | /* SH4AL-DSP types */ | 35 | /* SH4AL-DSP types */ |
36 | CPU_SH7343, CPU_SH7722, | 36 | CPU_SH7343, CPU_SH7722, CPU_SH7366, |
37 | 37 | ||
38 | /* SH-5 types */ | 38 | /* SH-5 types */ |
39 | CPU_SH5_101, CPU_SH5_103, | 39 | CPU_SH5_101, CPU_SH5_103, |
diff --git a/include/asm-sh/r7780rp.h b/include/asm-sh/r7780rp.h index bdecea0840a0..1770460a4616 100644 --- a/include/asm-sh/r7780rp.h +++ b/include/asm-sh/r7780rp.h | |||
@@ -195,7 +195,4 @@ unsigned char *highlander_init_irq_r7780mp(void); | |||
195 | unsigned char *highlander_init_irq_r7780rp(void); | 195 | unsigned char *highlander_init_irq_r7780rp(void); |
196 | unsigned char *highlander_init_irq_r7785rp(void); | 196 | unsigned char *highlander_init_irq_r7785rp(void); |
197 | 197 | ||
198 | #define __IO_PREFIX r7780rp | ||
199 | #include <asm/io_generic.h> | ||
200 | |||
201 | #endif /* __ASM_SH_RENESAS_R7780RP */ | 198 | #endif /* __ASM_SH_RENESAS_R7780RP */ |
diff --git a/include/asm-sh/rts7751r2d.h b/include/asm-sh/rts7751r2d.h index 83b9c111f171..0a800157b826 100644 --- a/include/asm-sh/rts7751r2d.h +++ b/include/asm-sh/rts7751r2d.h | |||
@@ -67,7 +67,4 @@ | |||
67 | void init_rts7751r2d_IRQ(void); | 67 | void init_rts7751r2d_IRQ(void); |
68 | int rts7751r2d_irq_demux(int); | 68 | int rts7751r2d_irq_demux(int); |
69 | 69 | ||
70 | #define __IO_PREFIX rts7751r2d | ||
71 | #include <asm/io_generic.h> | ||
72 | |||
73 | #endif /* __ASM_SH_RENESAS_RTS7751R2D */ | 70 | #endif /* __ASM_SH_RENESAS_RTS7751R2D */ |
diff --git a/include/asm-sh/system.h b/include/asm-sh/system.h index 772cd1a0a674..5145aa2a0ce9 100644 --- a/include/asm-sh/system.h +++ b/include/asm-sh/system.h | |||
@@ -182,6 +182,11 @@ BUILD_TRAP_HANDLER(fpu_state_restore); | |||
182 | 182 | ||
183 | #define arch_align_stack(x) (x) | 183 | #define arch_align_stack(x) (x) |
184 | 184 | ||
185 | struct mem_access { | ||
186 | unsigned long (*from)(void *dst, const void *src, unsigned long cnt); | ||
187 | unsigned long (*to)(void *dst, const void *src, unsigned long cnt); | ||
188 | }; | ||
189 | |||
185 | #ifdef CONFIG_SUPERH32 | 190 | #ifdef CONFIG_SUPERH32 |
186 | # include "system_32.h" | 191 | # include "system_32.h" |
187 | #else | 192 | #else |
diff --git a/include/asm-sh/system_32.h b/include/asm-sh/system_32.h index 7ff08d956ba8..f11bcf0855ed 100644 --- a/include/asm-sh/system_32.h +++ b/include/asm-sh/system_32.h | |||
@@ -96,4 +96,7 @@ do { \ | |||
96 | : "=&r" (__dummy)); \ | 96 | : "=&r" (__dummy)); \ |
97 | } while (0) | 97 | } while (0) |
98 | 98 | ||
99 | int handle_unaligned_access(opcode_t instruction, struct pt_regs *regs, | ||
100 | struct mem_access *ma); | ||
101 | |||
99 | #endif /* __ASM_SH_SYSTEM_32_H */ | 102 | #endif /* __ASM_SH_SYSTEM_32_H */ |
diff --git a/include/asm-sh/termbits.h b/include/asm-sh/termbits.h index 7ee1b42eeab0..77db116948cf 100644 --- a/include/asm-sh/termbits.h +++ b/include/asm-sh/termbits.h | |||
@@ -140,6 +140,7 @@ struct ktermios { | |||
140 | #define HUPCL 0002000 | 140 | #define HUPCL 0002000 |
141 | #define CLOCAL 0004000 | 141 | #define CLOCAL 0004000 |
142 | #define CBAUDEX 0010000 | 142 | #define CBAUDEX 0010000 |
143 | #define BOTHER 0010000 | ||
143 | #define B57600 0010001 | 144 | #define B57600 0010001 |
144 | #define B115200 0010002 | 145 | #define B115200 0010002 |
145 | #define B230400 0010003 | 146 | #define B230400 0010003 |
@@ -155,10 +156,12 @@ struct ktermios { | |||
155 | #define B3000000 0010015 | 156 | #define B3000000 0010015 |
156 | #define B3500000 0010016 | 157 | #define B3500000 0010016 |
157 | #define B4000000 0010017 | 158 | #define B4000000 0010017 |
158 | #define CIBAUD 002003600000 /* input baud rate (not used) */ | 159 | #define CIBAUD 002003600000 /* input baud rate */ |
159 | #define CMSPAR 010000000000 /* mark or space (stick) parity */ | 160 | #define CMSPAR 010000000000 /* mark or space (stick) parity */ |
160 | #define CRTSCTS 020000000000 /* flow control */ | 161 | #define CRTSCTS 020000000000 /* flow control */ |
161 | 162 | ||
163 | #define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */ | ||
164 | |||
162 | /* c_lflag bits */ | 165 | /* c_lflag bits */ |
163 | #define ISIG 0000001 | 166 | #define ISIG 0000001 |
164 | #define ICANON 0000002 | 167 | #define ICANON 0000002 |
diff --git a/include/asm-sh/termios.h b/include/asm-sh/termios.h index e7c8f86ef890..0a8c793c76f2 100644 --- a/include/asm-sh/termios.h +++ b/include/asm-sh/termios.h | |||
@@ -80,8 +80,10 @@ struct termio { | |||
80 | copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \ | 80 | copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \ |
81 | }) | 81 | }) |
82 | 82 | ||
83 | #define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios)) | 83 | #define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios2)) |
84 | #define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios)) | 84 | #define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios2)) |
85 | #define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios)) | ||
86 | #define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios)) | ||
85 | 87 | ||
86 | #endif /* __KERNEL__ */ | 88 | #endif /* __KERNEL__ */ |
87 | 89 | ||
diff --git a/include/asm-sh/tlb.h b/include/asm-sh/tlb.h index 56ad1fb888a2..88ff1ae8a6b8 100644 --- a/include/asm-sh/tlb.h +++ b/include/asm-sh/tlb.h | |||
@@ -20,6 +20,7 @@ | |||
20 | */ | 20 | */ |
21 | #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) | 21 | #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) |
22 | 22 | ||
23 | #include <linux/pagemap.h> | ||
23 | #include <asm-generic/tlb.h> | 24 | #include <asm-generic/tlb.h> |
24 | 25 | ||
25 | #endif /* __ASSEMBLY__ */ | 26 | #endif /* __ASSEMBLY__ */ |
diff --git a/include/asm-sh/uaccess.h b/include/asm-sh/uaccess.h index ff24ce95b238..b3440c305b5d 100644 --- a/include/asm-sh/uaccess.h +++ b/include/asm-sh/uaccess.h | |||
@@ -1,5 +1,34 @@ | |||
1 | #ifndef __ASM_SH_UACCESS_H | ||
2 | #define __ASM_SH_UACCESS_H | ||
3 | |||
1 | #ifdef CONFIG_SUPERH32 | 4 | #ifdef CONFIG_SUPERH32 |
2 | # include "uaccess_32.h" | 5 | # include "uaccess_32.h" |
3 | #else | 6 | #else |
4 | # include "uaccess_64.h" | 7 | # include "uaccess_64.h" |
5 | #endif | 8 | #endif |
9 | |||
10 | static inline unsigned long | ||
11 | copy_from_user(void *to, const void __user *from, unsigned long n) | ||
12 | { | ||
13 | unsigned long __copy_from = (unsigned long) from; | ||
14 | __kernel_size_t __copy_size = (__kernel_size_t) n; | ||
15 | |||
16 | if (__copy_size && __access_ok(__copy_from, __copy_size)) | ||
17 | return __copy_user(to, from, __copy_size); | ||
18 | |||
19 | return __copy_size; | ||
20 | } | ||
21 | |||
22 | static inline unsigned long | ||
23 | copy_to_user(void __user *to, const void *from, unsigned long n) | ||
24 | { | ||
25 | unsigned long __copy_to = (unsigned long) to; | ||
26 | __kernel_size_t __copy_size = (__kernel_size_t) n; | ||
27 | |||
28 | if (__copy_size && __access_ok(__copy_to, __copy_size)) | ||
29 | return __copy_user(to, from, __copy_size); | ||
30 | |||
31 | return __copy_size; | ||
32 | } | ||
33 | |||
34 | #endif /* __ASM_SH_UACCESS_H */ | ||
diff --git a/include/asm-sh/uaccess_32.h b/include/asm-sh/uaccess_32.h index b6082f3c1dc4..c0318b608893 100644 --- a/include/asm-sh/uaccess_32.h +++ b/include/asm-sh/uaccess_32.h | |||
@@ -10,8 +10,8 @@ | |||
10 | * Copyright (C) 1996, 1997, 1998 by Ralf Baechle | 10 | * Copyright (C) 1996, 1997, 1998 by Ralf Baechle |
11 | * and i386 version. | 11 | * and i386 version. |
12 | */ | 12 | */ |
13 | #ifndef __ASM_SH_UACCESS_H | 13 | #ifndef __ASM_SH_UACCESS_32_H |
14 | #define __ASM_SH_UACCESS_H | 14 | #define __ASM_SH_UACCESS_32_H |
15 | 15 | ||
16 | #include <linux/errno.h> | 16 | #include <linux/errno.h> |
17 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
@@ -302,24 +302,6 @@ extern void __put_user_unknown(void); | |||
302 | /* Return the number of bytes NOT copied */ | 302 | /* Return the number of bytes NOT copied */ |
303 | __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n); | 303 | __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n); |
304 | 304 | ||
305 | #define copy_to_user(to,from,n) ({ \ | ||
306 | void *__copy_to = (void *) (to); \ | ||
307 | __kernel_size_t __copy_size = (__kernel_size_t) (n); \ | ||
308 | __kernel_size_t __copy_res; \ | ||
309 | if(__copy_size && __access_ok((unsigned long)__copy_to, __copy_size)) { \ | ||
310 | __copy_res = __copy_user(__copy_to, (void *) (from), __copy_size); \ | ||
311 | } else __copy_res = __copy_size; \ | ||
312 | __copy_res; }) | ||
313 | |||
314 | #define copy_from_user(to,from,n) ({ \ | ||
315 | void *__copy_to = (void *) (to); \ | ||
316 | void *__copy_from = (void *) (from); \ | ||
317 | __kernel_size_t __copy_size = (__kernel_size_t) (n); \ | ||
318 | __kernel_size_t __copy_res; \ | ||
319 | if(__copy_size && __access_ok((unsigned long)__copy_from, __copy_size)) { \ | ||
320 | __copy_res = __copy_user(__copy_to, __copy_from, __copy_size); \ | ||
321 | } else __copy_res = __copy_size; \ | ||
322 | __copy_res; }) | ||
323 | 305 | ||
324 | static __always_inline unsigned long | 306 | static __always_inline unsigned long |
325 | __copy_from_user(void *to, const void __user *from, unsigned long n) | 307 | __copy_from_user(void *to, const void __user *from, unsigned long n) |
@@ -507,4 +489,4 @@ struct exception_table_entry | |||
507 | 489 | ||
508 | extern int fixup_exception(struct pt_regs *regs); | 490 | extern int fixup_exception(struct pt_regs *regs); |
509 | 491 | ||
510 | #endif /* __ASM_SH_UACCESS_H */ | 492 | #endif /* __ASM_SH_UACCESS_32_H */ |
diff --git a/include/asm-sh/uaccess_64.h b/include/asm-sh/uaccess_64.h index d54ec082d25a..f956b7b316c7 100644 --- a/include/asm-sh/uaccess_64.h +++ b/include/asm-sh/uaccess_64.h | |||
@@ -202,15 +202,6 @@ extern void __put_user_unknown(void); | |||
202 | /* XXX: should be such that: 4byte and the rest. */ | 202 | /* XXX: should be such that: 4byte and the rest. */ |
203 | extern __kernel_size_t __copy_user(void *__to, const void *__from, __kernel_size_t __n); | 203 | extern __kernel_size_t __copy_user(void *__to, const void *__from, __kernel_size_t __n); |
204 | 204 | ||
205 | #define copy_to_user(to,from,n) ({ \ | ||
206 | void *__copy_to = (void *) (to); \ | ||
207 | __kernel_size_t __copy_size = (__kernel_size_t) (n); \ | ||
208 | __kernel_size_t __copy_res; \ | ||
209 | if(__copy_size && __access_ok((unsigned long)__copy_to, __copy_size)) { \ | ||
210 | __copy_res = __copy_user(__copy_to, (void *) (from), __copy_size); \ | ||
211 | } else __copy_res = __copy_size; \ | ||
212 | __copy_res; }) | ||
213 | |||
214 | #define copy_to_user_ret(to,from,n,retval) ({ \ | 205 | #define copy_to_user_ret(to,from,n,retval) ({ \ |
215 | if (copy_to_user(to,from,n)) \ | 206 | if (copy_to_user(to,from,n)) \ |
216 | return retval; \ | 207 | return retval; \ |
@@ -225,16 +216,6 @@ if (__copy_to_user(to,from,n)) \ | |||
225 | return retval; \ | 216 | return retval; \ |
226 | }) | 217 | }) |
227 | 218 | ||
228 | #define copy_from_user(to,from,n) ({ \ | ||
229 | void *__copy_to = (void *) (to); \ | ||
230 | void *__copy_from = (void *) (from); \ | ||
231 | __kernel_size_t __copy_size = (__kernel_size_t) (n); \ | ||
232 | __kernel_size_t __copy_res; \ | ||
233 | if(__copy_size && __access_ok((unsigned long)__copy_from, __copy_size)) { \ | ||
234 | __copy_res = __copy_user(__copy_to, __copy_from, __copy_size); \ | ||
235 | } else __copy_res = __copy_size; \ | ||
236 | __copy_res; }) | ||
237 | |||
238 | #define copy_from_user_ret(to,from,n,retval) ({ \ | 219 | #define copy_from_user_ret(to,from,n,retval) ({ \ |
239 | if (copy_from_user(to,from,n)) \ | 220 | if (copy_from_user(to,from,n)) \ |
240 | return retval; \ | 221 | return retval; \ |
diff --git a/include/asm-sh/unistd_32.h b/include/asm-sh/unistd_32.h index 433fd1b48fa2..0b07212ec659 100644 --- a/include/asm-sh/unistd_32.h +++ b/include/asm-sh/unistd_32.h | |||
@@ -330,11 +330,13 @@ | |||
330 | #define __NR_epoll_pwait 319 | 330 | #define __NR_epoll_pwait 319 |
331 | #define __NR_utimensat 320 | 331 | #define __NR_utimensat 320 |
332 | #define __NR_signalfd 321 | 332 | #define __NR_signalfd 321 |
333 | /* #define __NR_timerfd 322 removed */ | 333 | #define __NR_timerfd_create 322 |
334 | #define __NR_eventfd 323 | 334 | #define __NR_eventfd 323 |
335 | #define __NR_fallocate 324 | 335 | #define __NR_fallocate 324 |
336 | #define __NR_timerfd_settime 325 | ||
337 | #define __NR_timerfd_gettime 326 | ||
336 | 338 | ||
337 | #define NR_syscalls 325 | 339 | #define NR_syscalls 327 |
338 | 340 | ||
339 | #ifdef __KERNEL__ | 341 | #ifdef __KERNEL__ |
340 | 342 | ||
diff --git a/include/asm-sh/unistd_64.h b/include/asm-sh/unistd_64.h index 108d2ba897fe..9d21eab52427 100644 --- a/include/asm-sh/unistd_64.h +++ b/include/asm-sh/unistd_64.h | |||
@@ -90,7 +90,7 @@ | |||
90 | #define __NR_sigpending 73 | 90 | #define __NR_sigpending 73 |
91 | #define __NR_sethostname 74 | 91 | #define __NR_sethostname 74 |
92 | #define __NR_setrlimit 75 | 92 | #define __NR_setrlimit 75 |
93 | #define __NR_getrlimit 76 /* Back compatible 2Gig limited rlimit */ | 93 | #define __NR_getrlimit 76 /* Back compatible 2Gig limited rlimit */ |
94 | #define __NR_getrusage 77 | 94 | #define __NR_getrusage 77 |
95 | #define __NR_gettimeofday 78 | 95 | #define __NR_gettimeofday 78 |
96 | #define __NR_settimeofday 79 | 96 | #define __NR_settimeofday 79 |
@@ -370,9 +370,11 @@ | |||
370 | #define __NR_epoll_pwait 347 | 370 | #define __NR_epoll_pwait 347 |
371 | #define __NR_utimensat 348 | 371 | #define __NR_utimensat 348 |
372 | #define __NR_signalfd 349 | 372 | #define __NR_signalfd 349 |
373 | /* #define __NR_timerfd 350 removed */ | 373 | #define __NR_timerfd_create 350 |
374 | #define __NR_eventfd 351 | 374 | #define __NR_eventfd 351 |
375 | #define __NR_fallocate 352 | 375 | #define __NR_fallocate 352 |
376 | #define __NR_timerfd_settime 353 | ||
377 | #define __NR_timerfd_gettime 354 | ||
376 | 378 | ||
377 | #ifdef __KERNEL__ | 379 | #ifdef __KERNEL__ |
378 | 380 | ||
diff --git a/include/asm-x86/cacheflush.h b/include/asm-x86/cacheflush.h index 6a22212b4b20..5396c212d8c0 100644 --- a/include/asm-x86/cacheflush.h +++ b/include/asm-x86/cacheflush.h | |||
@@ -48,12 +48,15 @@ void cpa_init(void); | |||
48 | 48 | ||
49 | #ifdef CONFIG_DEBUG_RODATA | 49 | #ifdef CONFIG_DEBUG_RODATA |
50 | void mark_rodata_ro(void); | 50 | void mark_rodata_ro(void); |
51 | extern const int rodata_test_data; | ||
51 | #endif | 52 | #endif |
53 | |||
52 | #ifdef CONFIG_DEBUG_RODATA_TEST | 54 | #ifdef CONFIG_DEBUG_RODATA_TEST |
53 | void rodata_test(void); | 55 | int rodata_test(void); |
54 | #else | 56 | #else |
55 | static inline void rodata_test(void) | 57 | static inline int rodata_test(void) |
56 | { | 58 | { |
59 | return 0; | ||
57 | } | 60 | } |
58 | #endif | 61 | #endif |
59 | 62 | ||
diff --git a/include/asm-x86/kdebug.h b/include/asm-x86/kdebug.h index dd442a1632c0..99dcbafa1511 100644 --- a/include/asm-x86/kdebug.h +++ b/include/asm-x86/kdebug.h | |||
@@ -31,7 +31,6 @@ extern void show_trace(struct task_struct *t, struct pt_regs *regs, | |||
31 | unsigned long *sp, unsigned long bp); | 31 | unsigned long *sp, unsigned long bp); |
32 | extern void __show_regs(struct pt_regs *regs); | 32 | extern void __show_regs(struct pt_regs *regs); |
33 | extern void show_regs(struct pt_regs *regs); | 33 | extern void show_regs(struct pt_regs *regs); |
34 | extern void dump_pagetable(unsigned long); | ||
35 | extern unsigned long oops_begin(void); | 34 | extern unsigned long oops_begin(void); |
36 | extern void oops_end(unsigned long, struct pt_regs *, int signr); | 35 | extern void oops_end(unsigned long, struct pt_regs *, int signr); |
37 | 36 | ||
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index ddbe7efe590e..2c7e003356ac 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -203,6 +203,7 @@ extern bool wmi_has_guid(const char *guid); | |||
203 | extern int acpi_blacklisted(void); | 203 | extern int acpi_blacklisted(void); |
204 | #ifdef CONFIG_DMI | 204 | #ifdef CONFIG_DMI |
205 | extern void acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d); | 205 | extern void acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d); |
206 | extern int acpi_osi_setup(char *str); | ||
206 | #endif | 207 | #endif |
207 | 208 | ||
208 | #ifdef CONFIG_ACPI_NUMA | 209 | #ifdef CONFIG_ACPI_NUMA |
diff --git a/include/linux/aio.h b/include/linux/aio.h index 7ef8de662001..a9931e2e5624 100644 --- a/include/linux/aio.h +++ b/include/linux/aio.h | |||
@@ -206,21 +206,21 @@ struct kioctx { | |||
206 | /* prototypes */ | 206 | /* prototypes */ |
207 | extern unsigned aio_max_size; | 207 | extern unsigned aio_max_size; |
208 | 208 | ||
209 | extern ssize_t FASTCALL(wait_on_sync_kiocb(struct kiocb *iocb)); | 209 | extern ssize_t wait_on_sync_kiocb(struct kiocb *iocb); |
210 | extern int FASTCALL(aio_put_req(struct kiocb *iocb)); | 210 | extern int aio_put_req(struct kiocb *iocb); |
211 | extern void FASTCALL(kick_iocb(struct kiocb *iocb)); | 211 | extern void kick_iocb(struct kiocb *iocb); |
212 | extern int FASTCALL(aio_complete(struct kiocb *iocb, long res, long res2)); | 212 | extern int aio_complete(struct kiocb *iocb, long res, long res2); |
213 | extern void FASTCALL(__put_ioctx(struct kioctx *ctx)); | 213 | extern void __put_ioctx(struct kioctx *ctx); |
214 | struct mm_struct; | 214 | struct mm_struct; |
215 | extern void FASTCALL(exit_aio(struct mm_struct *mm)); | 215 | extern void exit_aio(struct mm_struct *mm); |
216 | extern struct kioctx *lookup_ioctx(unsigned long ctx_id); | 216 | extern struct kioctx *lookup_ioctx(unsigned long ctx_id); |
217 | extern int FASTCALL(io_submit_one(struct kioctx *ctx, | 217 | extern int io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb, |
218 | struct iocb __user *user_iocb, struct iocb *iocb)); | 218 | struct iocb *iocb); |
219 | 219 | ||
220 | /* semi private, but used by the 32bit emulations: */ | 220 | /* semi private, but used by the 32bit emulations: */ |
221 | struct kioctx *lookup_ioctx(unsigned long ctx_id); | 221 | struct kioctx *lookup_ioctx(unsigned long ctx_id); |
222 | int FASTCALL(io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb, | 222 | int io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb, |
223 | struct iocb *iocb)); | 223 | struct iocb *iocb); |
224 | 224 | ||
225 | #define get_ioctx(kioctx) do { \ | 225 | #define get_ioctx(kioctx) do { \ |
226 | BUG_ON(atomic_read(&(kioctx)->users) <= 0); \ | 226 | BUG_ON(atomic_read(&(kioctx)->users) <= 0); \ |
diff --git a/include/linux/audit.h b/include/linux/audit.h index 97153027207a..2af9ec025015 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h | |||
@@ -534,8 +534,7 @@ extern void audit_log_n_untrustedstring(struct audit_buffer *ab, | |||
534 | const char *string); | 534 | const char *string); |
535 | extern void audit_log_d_path(struct audit_buffer *ab, | 535 | extern void audit_log_d_path(struct audit_buffer *ab, |
536 | const char *prefix, | 536 | const char *prefix, |
537 | struct dentry *dentry, | 537 | struct path *path); |
538 | struct vfsmount *vfsmnt); | ||
539 | extern void audit_log_lost(const char *message); | 538 | extern void audit_log_lost(const char *message); |
540 | /* Private API (for audit.c only) */ | 539 | /* Private API (for audit.c only) */ |
541 | extern int audit_filter_user(struct netlink_skb_parms *cb, int type); | 540 | extern int audit_filter_user(struct netlink_skb_parms *cb, int type); |
@@ -552,7 +551,7 @@ extern int audit_enabled; | |||
552 | #define audit_log_hex(a,b,l) do { ; } while (0) | 551 | #define audit_log_hex(a,b,l) do { ; } while (0) |
553 | #define audit_log_untrustedstring(a,s) do { ; } while (0) | 552 | #define audit_log_untrustedstring(a,s) do { ; } while (0) |
554 | #define audit_log_n_untrustedstring(a,n,s) do { ; } while (0) | 553 | #define audit_log_n_untrustedstring(a,n,s) do { ; } while (0) |
555 | #define audit_log_d_path(b,p,d,v) do { ; } while (0) | 554 | #define audit_log_d_path(b, p, d) do { ; } while (0) |
556 | #define audit_enabled 0 | 555 | #define audit_enabled 0 |
557 | #endif | 556 | #endif |
558 | #endif | 557 | #endif |
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index e98801f06dcc..932eb02a2753 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h | |||
@@ -144,7 +144,7 @@ BUFFER_FNS(Unwritten, unwritten) | |||
144 | * Declarations | 144 | * Declarations |
145 | */ | 145 | */ |
146 | 146 | ||
147 | void FASTCALL(mark_buffer_dirty(struct buffer_head *bh)); | 147 | void mark_buffer_dirty(struct buffer_head *bh); |
148 | void init_buffer(struct buffer_head *, bh_end_io_t *, void *); | 148 | void init_buffer(struct buffer_head *, bh_end_io_t *, void *); |
149 | void set_bh_page(struct buffer_head *bh, | 149 | void set_bh_page(struct buffer_head *bh, |
150 | struct page *page, unsigned long offset); | 150 | struct page *page, unsigned long offset); |
@@ -185,8 +185,8 @@ struct buffer_head *__bread(struct block_device *, sector_t block, unsigned size | |||
185 | void invalidate_bh_lrus(void); | 185 | void invalidate_bh_lrus(void); |
186 | struct buffer_head *alloc_buffer_head(gfp_t gfp_flags); | 186 | struct buffer_head *alloc_buffer_head(gfp_t gfp_flags); |
187 | void free_buffer_head(struct buffer_head * bh); | 187 | void free_buffer_head(struct buffer_head * bh); |
188 | void FASTCALL(unlock_buffer(struct buffer_head *bh)); | 188 | void unlock_buffer(struct buffer_head *bh); |
189 | void FASTCALL(__lock_buffer(struct buffer_head *bh)); | 189 | void __lock_buffer(struct buffer_head *bh); |
190 | void ll_rw_block(int, int, struct buffer_head * bh[]); | 190 | void ll_rw_block(int, int, struct buffer_head * bh[]); |
191 | int sync_dirty_buffer(struct buffer_head *bh); | 191 | int sync_dirty_buffer(struct buffer_head *bh); |
192 | int submit_bh(int, struct buffer_head *); | 192 | int submit_bh(int, struct buffer_head *); |
diff --git a/include/linux/configfs.h b/include/linux/configfs.h index 8c6967f3fb11..4b287ad9371a 100644 --- a/include/linux/configfs.h +++ b/include/linux/configfs.h | |||
@@ -37,6 +37,7 @@ | |||
37 | 37 | ||
38 | #ifdef __KERNEL__ | 38 | #ifdef __KERNEL__ |
39 | 39 | ||
40 | #include <linux/kernel.h> | ||
40 | #include <linux/types.h> | 41 | #include <linux/types.h> |
41 | #include <linux/list.h> | 42 | #include <linux/list.h> |
42 | #include <linux/kref.h> | 43 | #include <linux/kref.h> |
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index 385d45b616db..6b72a4584086 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h | |||
@@ -19,6 +19,7 @@ | |||
19 | 19 | ||
20 | #define CPUIDLE_STATE_MAX 8 | 20 | #define CPUIDLE_STATE_MAX 8 |
21 | #define CPUIDLE_NAME_LEN 16 | 21 | #define CPUIDLE_NAME_LEN 16 |
22 | #define CPUIDLE_DESC_LEN 32 | ||
22 | 23 | ||
23 | struct cpuidle_device; | 24 | struct cpuidle_device; |
24 | 25 | ||
@@ -29,6 +30,7 @@ struct cpuidle_device; | |||
29 | 30 | ||
30 | struct cpuidle_state { | 31 | struct cpuidle_state { |
31 | char name[CPUIDLE_NAME_LEN]; | 32 | char name[CPUIDLE_NAME_LEN]; |
33 | char desc[CPUIDLE_DESC_LEN]; | ||
32 | void *driver_data; | 34 | void *driver_data; |
33 | 35 | ||
34 | unsigned int flags; | 36 | unsigned int flags; |
diff --git a/include/linux/dcache.h b/include/linux/dcache.h index c2c153f97e8f..6bd646096fa6 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <linux/rcupdate.h> | 10 | #include <linux/rcupdate.h> |
11 | 11 | ||
12 | struct nameidata; | 12 | struct nameidata; |
13 | struct path; | ||
13 | struct vfsmount; | 14 | struct vfsmount; |
14 | 15 | ||
15 | /* | 16 | /* |
@@ -300,8 +301,8 @@ extern int d_validate(struct dentry *, struct dentry *); | |||
300 | */ | 301 | */ |
301 | extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...); | 302 | extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...); |
302 | 303 | ||
303 | extern char * d_path(struct dentry *, struct vfsmount *, char *, int); | 304 | extern char *d_path(struct path *, char *, int); |
304 | 305 | ||
305 | /* Allocation counts.. */ | 306 | /* Allocation counts.. */ |
306 | 307 | ||
307 | /** | 308 | /** |
diff --git a/include/linux/dcookies.h b/include/linux/dcookies.h index 98c69ab80c84..24c806f12a6c 100644 --- a/include/linux/dcookies.h +++ b/include/linux/dcookies.h | |||
@@ -13,6 +13,7 @@ | |||
13 | #ifdef CONFIG_PROFILING | 13 | #ifdef CONFIG_PROFILING |
14 | 14 | ||
15 | #include <linux/dcache.h> | 15 | #include <linux/dcache.h> |
16 | #include <linux/path.h> | ||
16 | #include <linux/types.h> | 17 | #include <linux/types.h> |
17 | 18 | ||
18 | struct dcookie_user; | 19 | struct dcookie_user; |
@@ -43,8 +44,7 @@ void dcookie_unregister(struct dcookie_user * user); | |||
43 | * | 44 | * |
44 | * Returns 0 on success, with *cookie filled in | 45 | * Returns 0 on success, with *cookie filled in |
45 | */ | 46 | */ |
46 | int get_dcookie(struct dentry * dentry, struct vfsmount * vfsmnt, | 47 | int get_dcookie(struct path *path, unsigned long *cookie); |
47 | unsigned long * cookie); | ||
48 | 48 | ||
49 | #else | 49 | #else |
50 | 50 | ||
@@ -57,13 +57,12 @@ static inline void dcookie_unregister(struct dcookie_user * user) | |||
57 | { | 57 | { |
58 | return; | 58 | return; |
59 | } | 59 | } |
60 | 60 | ||
61 | static inline int get_dcookie(struct dentry * dentry, | 61 | static inline int get_dcookie(struct path *path, unsigned long *cookie) |
62 | struct vfsmount * vfsmnt, unsigned long * cookie) | ||
63 | { | 62 | { |
64 | return -ENOSYS; | 63 | return -ENOSYS; |
65 | } | 64 | } |
66 | 65 | ||
67 | #endif /* CONFIG_PROFILING */ | 66 | #endif /* CONFIG_PROFILING */ |
68 | 67 | ||
69 | #endif /* DCOOKIES_H */ | 68 | #endif /* DCOOKIES_H */ |
diff --git a/include/linux/dm9000.h b/include/linux/dm9000.h index 0008e2ad0c9f..a3750462f9e3 100644 --- a/include/linux/dm9000.h +++ b/include/linux/dm9000.h | |||
@@ -19,6 +19,8 @@ | |||
19 | #define DM9000_PLATF_8BITONLY (0x0001) | 19 | #define DM9000_PLATF_8BITONLY (0x0001) |
20 | #define DM9000_PLATF_16BITONLY (0x0002) | 20 | #define DM9000_PLATF_16BITONLY (0x0002) |
21 | #define DM9000_PLATF_32BITONLY (0x0004) | 21 | #define DM9000_PLATF_32BITONLY (0x0004) |
22 | #define DM9000_PLATF_EXT_PHY (0x0008) | ||
23 | #define DM9000_PLATF_NO_EEPROM (0x0010) | ||
22 | 24 | ||
23 | /* platfrom data for platfrom device structure's platfrom_data field */ | 25 | /* platfrom data for platfrom device structure's platfrom_data field */ |
24 | 26 | ||
diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h index b7558ec81ed5..25d62e6e3290 100644 --- a/include/linux/etherdevice.h +++ b/include/linux/etherdevice.h | |||
@@ -70,8 +70,7 @@ static inline int is_multicast_ether_addr(const u8 *addr) | |||
70 | } | 70 | } |
71 | 71 | ||
72 | /** | 72 | /** |
73 | * is_local_ether_addr - Determine if the Ethernet address is locally-assigned | 73 | * is_local_ether_addr - Determine if the Ethernet address is locally-assigned one (IEEE 802). |
74 | * one (IEEE 802). | ||
75 | * @addr: Pointer to a six-byte array containing the Ethernet address | 74 | * @addr: Pointer to a six-byte array containing the Ethernet address |
76 | * | 75 | * |
77 | * Return true if the address is a local address. | 76 | * Return true if the address is a local address. |
diff --git a/include/linux/file.h b/include/linux/file.h index 56023c74e9fd..7239baac81a9 100644 --- a/include/linux/file.h +++ b/include/linux/file.h | |||
@@ -59,8 +59,8 @@ struct files_struct { | |||
59 | 59 | ||
60 | extern struct kmem_cache *filp_cachep; | 60 | extern struct kmem_cache *filp_cachep; |
61 | 61 | ||
62 | extern void FASTCALL(__fput(struct file *)); | 62 | extern void __fput(struct file *); |
63 | extern void FASTCALL(fput(struct file *)); | 63 | extern void fput(struct file *); |
64 | 64 | ||
65 | struct file_operations; | 65 | struct file_operations; |
66 | struct vfsmount; | 66 | struct vfsmount; |
@@ -77,13 +77,13 @@ static inline void fput_light(struct file *file, int fput_needed) | |||
77 | fput(file); | 77 | fput(file); |
78 | } | 78 | } |
79 | 79 | ||
80 | extern struct file * FASTCALL(fget(unsigned int fd)); | 80 | extern struct file *fget(unsigned int fd); |
81 | extern struct file * FASTCALL(fget_light(unsigned int fd, int *fput_needed)); | 81 | extern struct file *fget_light(unsigned int fd, int *fput_needed); |
82 | extern void FASTCALL(set_close_on_exec(unsigned int fd, int flag)); | 82 | extern void set_close_on_exec(unsigned int fd, int flag); |
83 | extern void put_filp(struct file *); | 83 | extern void put_filp(struct file *); |
84 | extern int get_unused_fd(void); | 84 | extern int get_unused_fd(void); |
85 | extern int get_unused_fd_flags(int flags); | 85 | extern int get_unused_fd_flags(int flags); |
86 | extern void FASTCALL(put_unused_fd(unsigned int fd)); | 86 | extern void put_unused_fd(unsigned int fd); |
87 | struct kmem_cache; | 87 | struct kmem_cache; |
88 | 88 | ||
89 | extern int expand_files(struct files_struct *, int nr); | 89 | extern int expand_files(struct files_struct *, int nr); |
@@ -110,12 +110,12 @@ static inline struct file * fcheck_files(struct files_struct *files, unsigned in | |||
110 | */ | 110 | */ |
111 | #define fcheck(fd) fcheck_files(current->files, fd) | 111 | #define fcheck(fd) fcheck_files(current->files, fd) |
112 | 112 | ||
113 | extern void FASTCALL(fd_install(unsigned int fd, struct file * file)); | 113 | extern void fd_install(unsigned int fd, struct file *file); |
114 | 114 | ||
115 | struct task_struct; | 115 | struct task_struct; |
116 | 116 | ||
117 | struct files_struct *get_files_struct(struct task_struct *); | 117 | struct files_struct *get_files_struct(struct task_struct *); |
118 | void FASTCALL(put_files_struct(struct files_struct *fs)); | 118 | void put_files_struct(struct files_struct *fs); |
119 | void reset_files_struct(struct task_struct *, struct files_struct *); | 119 | void reset_files_struct(struct task_struct *, struct files_struct *); |
120 | 120 | ||
121 | extern struct kmem_cache *files_cachep; | 121 | extern struct kmem_cache *files_cachep; |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 18cfbf76ec5b..98ffb6ead434 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -1284,8 +1284,10 @@ struct super_operations { | |||
1284 | * | 1284 | * |
1285 | * I_DIRTY_SYNC Inode is dirty, but doesn't have to be written on | 1285 | * I_DIRTY_SYNC Inode is dirty, but doesn't have to be written on |
1286 | * fdatasync(). i_atime is the usual cause. | 1286 | * fdatasync(). i_atime is the usual cause. |
1287 | * I_DIRTY_DATASYNC Inode is dirty and must be written on fdatasync(), f.e. | 1287 | * I_DIRTY_DATASYNC Data-related inode changes pending. We keep track of |
1288 | * because i_size changed. | 1288 | * these changes separately from I_DIRTY_SYNC so that we |
1289 | * don't have to write inode on fdatasync() when only | ||
1290 | * mtime has changed in it. | ||
1289 | * I_DIRTY_PAGES Inode has dirty pages. Inode itself may be clean. | 1291 | * I_DIRTY_PAGES Inode has dirty pages. Inode itself may be clean. |
1290 | * I_NEW get_new_inode() sets i_state to I_LOCK|I_NEW. Both | 1292 | * I_NEW get_new_inode() sets i_state to I_LOCK|I_NEW. Both |
1291 | * are cleared by unlock_new_inode(), called from iget(). | 1293 | * are cleared by unlock_new_inode(), called from iget(). |
diff --git a/include/linux/fs_struct.h b/include/linux/fs_struct.h index 11a36ceddf73..282f54219129 100644 --- a/include/linux/fs_struct.h +++ b/include/linux/fs_struct.h | |||
@@ -1,15 +1,13 @@ | |||
1 | #ifndef _LINUX_FS_STRUCT_H | 1 | #ifndef _LINUX_FS_STRUCT_H |
2 | #define _LINUX_FS_STRUCT_H | 2 | #define _LINUX_FS_STRUCT_H |
3 | 3 | ||
4 | struct dentry; | 4 | #include <linux/path.h> |
5 | struct vfsmount; | ||
6 | 5 | ||
7 | struct fs_struct { | 6 | struct fs_struct { |
8 | atomic_t count; | 7 | atomic_t count; |
9 | rwlock_t lock; | 8 | rwlock_t lock; |
10 | int umask; | 9 | int umask; |
11 | struct dentry * root, * pwd, * altroot; | 10 | struct path root, pwd, altroot; |
12 | struct vfsmount * rootmnt, * pwdmnt, * altrootmnt; | ||
13 | }; | 11 | }; |
14 | 12 | ||
15 | #define INIT_FS { \ | 13 | #define INIT_FS { \ |
@@ -22,8 +20,8 @@ extern struct kmem_cache *fs_cachep; | |||
22 | 20 | ||
23 | extern void exit_fs(struct task_struct *); | 21 | extern void exit_fs(struct task_struct *); |
24 | extern void set_fs_altroot(void); | 22 | extern void set_fs_altroot(void); |
25 | extern void set_fs_root(struct fs_struct *, struct vfsmount *, struct dentry *); | 23 | extern void set_fs_root(struct fs_struct *, struct path *); |
26 | extern void set_fs_pwd(struct fs_struct *, struct vfsmount *, struct dentry *); | 24 | extern void set_fs_pwd(struct fs_struct *, struct path *); |
27 | extern struct fs_struct *copy_fs_struct(struct fs_struct *); | 25 | extern struct fs_struct *copy_fs_struct(struct fs_struct *); |
28 | extern void put_fs_struct(struct fs_struct *); | 26 | extern void put_fs_struct(struct fs_struct *); |
29 | 27 | ||
diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 0c6ce515185d..164be9da3c1b 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h | |||
@@ -172,8 +172,7 @@ static inline void arch_free_page(struct page *page, int order) { } | |||
172 | static inline void arch_alloc_page(struct page *page, int order) { } | 172 | static inline void arch_alloc_page(struct page *page, int order) { } |
173 | #endif | 173 | #endif |
174 | 174 | ||
175 | extern struct page * | 175 | extern struct page *__alloc_pages(gfp_t, unsigned int, struct zonelist *); |
176 | FASTCALL(__alloc_pages(gfp_t, unsigned int, struct zonelist *)); | ||
177 | 176 | ||
178 | static inline struct page *alloc_pages_node(int nid, gfp_t gfp_mask, | 177 | static inline struct page *alloc_pages_node(int nid, gfp_t gfp_mask, |
179 | unsigned int order) | 178 | unsigned int order) |
@@ -209,8 +208,8 @@ extern struct page *alloc_page_vma(gfp_t gfp_mask, | |||
209 | #endif | 208 | #endif |
210 | #define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0) | 209 | #define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0) |
211 | 210 | ||
212 | extern unsigned long FASTCALL(__get_free_pages(gfp_t gfp_mask, unsigned int order)); | 211 | extern unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order); |
213 | extern unsigned long FASTCALL(get_zeroed_page(gfp_t gfp_mask)); | 212 | extern unsigned long get_zeroed_page(gfp_t gfp_mask); |
214 | 213 | ||
215 | #define __get_free_page(gfp_mask) \ | 214 | #define __get_free_page(gfp_mask) \ |
216 | __get_free_pages((gfp_mask),0) | 215 | __get_free_pages((gfp_mask),0) |
@@ -218,10 +217,10 @@ extern unsigned long FASTCALL(get_zeroed_page(gfp_t gfp_mask)); | |||
218 | #define __get_dma_pages(gfp_mask, order) \ | 217 | #define __get_dma_pages(gfp_mask, order) \ |
219 | __get_free_pages((gfp_mask) | GFP_DMA,(order)) | 218 | __get_free_pages((gfp_mask) | GFP_DMA,(order)) |
220 | 219 | ||
221 | extern void FASTCALL(__free_pages(struct page *page, unsigned int order)); | 220 | extern void __free_pages(struct page *page, unsigned int order); |
222 | extern void FASTCALL(free_pages(unsigned long addr, unsigned int order)); | 221 | extern void free_pages(unsigned long addr, unsigned int order); |
223 | extern void FASTCALL(free_hot_page(struct page *page)); | 222 | extern void free_hot_page(struct page *page); |
224 | extern void FASTCALL(free_cold_page(struct page *page)); | 223 | extern void free_cold_page(struct page *page); |
225 | 224 | ||
226 | #define __free_page(page) __free_pages((page), 0) | 225 | #define __free_page(page) __free_pages((page), 0) |
227 | #define free_page(addr) free_pages((addr),0) | 226 | #define free_page(addr) free_pages((addr),0) |
diff --git a/include/linux/hid.h b/include/linux/hid.h index 3902690647b0..74ff57596eb1 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h | |||
@@ -528,7 +528,7 @@ int hid_set_field(struct hid_field *, unsigned, __s32); | |||
528 | int hid_input_report(struct hid_device *, int type, u8 *, int, int); | 528 | int hid_input_report(struct hid_device *, int type, u8 *, int, int); |
529 | int hidinput_find_field(struct hid_device *hid, unsigned int type, unsigned int code, struct hid_field **field); | 529 | int hidinput_find_field(struct hid_device *hid, unsigned int type, unsigned int code, struct hid_field **field); |
530 | int hidinput_mapping_quirks(struct hid_usage *, struct input_dev *, unsigned long **, int *); | 530 | int hidinput_mapping_quirks(struct hid_usage *, struct input_dev *, unsigned long **, int *); |
531 | void hidinput_event_quirks(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); | 531 | int hidinput_event_quirks(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); |
532 | int hidinput_apple_event(struct hid_device *, struct input_dev *, struct hid_usage *, __s32); | 532 | int hidinput_apple_event(struct hid_device *, struct input_dev *, struct hid_usage *, __s32); |
533 | void hid_input_field(struct hid_device *hid, struct hid_field *field, __u8 *data, int interrupt); | 533 | void hid_input_field(struct hid_device *hid, struct hid_field *field, __u8 *data, int interrupt); |
534 | void hid_output_report(struct hid_report *report, __u8 *data); | 534 | void hid_output_report(struct hid_report *report, __u8 *data); |
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index 7ca198b379af..addca4cd4f11 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h | |||
@@ -33,8 +33,8 @@ int hugetlb_reserve_pages(struct inode *inode, long from, long to); | |||
33 | void hugetlb_unreserve_pages(struct inode *inode, long offset, long freed); | 33 | void hugetlb_unreserve_pages(struct inode *inode, long offset, long freed); |
34 | 34 | ||
35 | extern unsigned long max_huge_pages; | 35 | extern unsigned long max_huge_pages; |
36 | extern unsigned long sysctl_overcommit_huge_pages; | ||
36 | extern unsigned long hugepages_treat_as_movable; | 37 | extern unsigned long hugepages_treat_as_movable; |
37 | extern unsigned long nr_overcommit_huge_pages; | ||
38 | extern const unsigned long hugetlb_zero, hugetlb_infinity; | 38 | extern const unsigned long hugetlb_zero, hugetlb_infinity; |
39 | extern int sysctl_hugetlb_shm_group; | 39 | extern int sysctl_hugetlb_shm_group; |
40 | 40 | ||
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index dea7598aeff4..f8ab4ce70564 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
@@ -273,8 +273,8 @@ asmlinkage void do_softirq(void); | |||
273 | extern void open_softirq(int nr, void (*action)(struct softirq_action*), void *data); | 273 | extern void open_softirq(int nr, void (*action)(struct softirq_action*), void *data); |
274 | extern void softirq_init(void); | 274 | extern void softirq_init(void); |
275 | #define __raise_softirq_irqoff(nr) do { or_softirq_pending(1UL << (nr)); } while (0) | 275 | #define __raise_softirq_irqoff(nr) do { or_softirq_pending(1UL << (nr)); } while (0) |
276 | extern void FASTCALL(raise_softirq_irqoff(unsigned int nr)); | 276 | extern void raise_softirq_irqoff(unsigned int nr); |
277 | extern void FASTCALL(raise_softirq(unsigned int nr)); | 277 | extern void raise_softirq(unsigned int nr); |
278 | 278 | ||
279 | 279 | ||
280 | /* Tasklets --- multithreaded analogue of BHs. | 280 | /* Tasklets --- multithreaded analogue of BHs. |
@@ -341,7 +341,7 @@ static inline void tasklet_unlock_wait(struct tasklet_struct *t) | |||
341 | #define tasklet_unlock(t) do { } while (0) | 341 | #define tasklet_unlock(t) do { } while (0) |
342 | #endif | 342 | #endif |
343 | 343 | ||
344 | extern void FASTCALL(__tasklet_schedule(struct tasklet_struct *t)); | 344 | extern void __tasklet_schedule(struct tasklet_struct *t); |
345 | 345 | ||
346 | static inline void tasklet_schedule(struct tasklet_struct *t) | 346 | static inline void tasklet_schedule(struct tasklet_struct *t) |
347 | { | 347 | { |
@@ -349,7 +349,7 @@ static inline void tasklet_schedule(struct tasklet_struct *t) | |||
349 | __tasklet_schedule(t); | 349 | __tasklet_schedule(t); |
350 | } | 350 | } |
351 | 351 | ||
352 | extern void FASTCALL(__tasklet_hi_schedule(struct tasklet_struct *t)); | 352 | extern void __tasklet_hi_schedule(struct tasklet_struct *t); |
353 | 353 | ||
354 | static inline void tasklet_hi_schedule(struct tasklet_struct *t) | 354 | static inline void tasklet_hi_schedule(struct tasklet_struct *t) |
355 | { | 355 | { |
diff --git a/include/linux/irq.h b/include/linux/irq.h index bfd9efb5cb49..176e5e790a44 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
@@ -285,7 +285,6 @@ extern void handle_bad_irq(unsigned int irq, struct irq_desc *desc); | |||
285 | 285 | ||
286 | /* | 286 | /* |
287 | * Monolithic do_IRQ implementation. | 287 | * Monolithic do_IRQ implementation. |
288 | * (is an explicit fastcall, because i386 4KSTACKS calls it from assembly) | ||
289 | */ | 288 | */ |
290 | #ifndef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ | 289 | #ifndef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ |
291 | extern unsigned int __do_IRQ(unsigned int irq); | 290 | extern unsigned int __do_IRQ(unsigned int irq); |
diff --git a/include/linux/ktime.h b/include/linux/ktime.h index 36c542b70c6d..2cd7fa73d1af 100644 --- a/include/linux/ktime.h +++ b/include/linux/ktime.h | |||
@@ -310,6 +310,8 @@ static inline ktime_t ktime_sub_us(const ktime_t kt, const u64 usec) | |||
310 | return ktime_sub_ns(kt, usec * 1000); | 310 | return ktime_sub_ns(kt, usec * 1000); |
311 | } | 311 | } |
312 | 312 | ||
313 | extern ktime_t ktime_add_safe(const ktime_t lhs, const ktime_t rhs); | ||
314 | |||
313 | /* | 315 | /* |
314 | * The resolution of the clocks. The resolution value is returned in | 316 | * The resolution of the clocks. The resolution value is returned in |
315 | * the clock_getres() system call to give application programmers an | 317 | * the clock_getres() system call to give application programmers an |
diff --git a/include/linux/linkage.h b/include/linux/linkage.h index 3faf599ea58e..0592936344c4 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h | |||
@@ -73,9 +73,4 @@ | |||
73 | #define ATTRIB_NORET __attribute__((noreturn)) | 73 | #define ATTRIB_NORET __attribute__((noreturn)) |
74 | #define NORET_AND noreturn, | 74 | #define NORET_AND noreturn, |
75 | 75 | ||
76 | #ifndef FASTCALL | ||
77 | #define FASTCALL(x) x | ||
78 | #define fastcall | ||
79 | #endif | ||
80 | |||
81 | #endif | 76 | #endif |
diff --git a/include/linux/maple.h b/include/linux/maple.h index bad9a7b319de..3f01e2bae1a1 100644 --- a/include/linux/maple.h +++ b/include/linux/maple.h | |||
@@ -7,74 +7,74 @@ extern struct bus_type maple_bus_type; | |||
7 | 7 | ||
8 | /* Maple Bus command and response codes */ | 8 | /* Maple Bus command and response codes */ |
9 | enum maple_code { | 9 | enum maple_code { |
10 | MAPLE_RESPONSE_FILEERR = -5, | 10 | MAPLE_RESPONSE_FILEERR = -5, |
11 | MAPLE_RESPONSE_AGAIN = -4, /* request should be retransmitted */ | 11 | MAPLE_RESPONSE_AGAIN = -4, /* request should be retransmitted */ |
12 | MAPLE_RESPONSE_BADCMD = -3, | 12 | MAPLE_RESPONSE_BADCMD = -3, |
13 | MAPLE_RESPONSE_BADFUNC = -2, | 13 | MAPLE_RESPONSE_BADFUNC = -2, |
14 | MAPLE_RESPONSE_NONE = -1, /* unit didn't respond at all */ | 14 | MAPLE_RESPONSE_NONE = -1, /* unit didn't respond at all */ |
15 | MAPLE_COMMAND_DEVINFO = 1, | 15 | MAPLE_COMMAND_DEVINFO = 1, |
16 | MAPLE_COMMAND_ALLINFO = 2, | 16 | MAPLE_COMMAND_ALLINFO = 2, |
17 | MAPLE_COMMAND_RESET = 3, | 17 | MAPLE_COMMAND_RESET = 3, |
18 | MAPLE_COMMAND_KILL = 4, | 18 | MAPLE_COMMAND_KILL = 4, |
19 | MAPLE_RESPONSE_DEVINFO = 5, | 19 | MAPLE_RESPONSE_DEVINFO = 5, |
20 | MAPLE_RESPONSE_ALLINFO = 6, | 20 | MAPLE_RESPONSE_ALLINFO = 6, |
21 | MAPLE_RESPONSE_OK = 7, | 21 | MAPLE_RESPONSE_OK = 7, |
22 | MAPLE_RESPONSE_DATATRF = 8, | 22 | MAPLE_RESPONSE_DATATRF = 8, |
23 | MAPLE_COMMAND_GETCOND = 9, | 23 | MAPLE_COMMAND_GETCOND = 9, |
24 | MAPLE_COMMAND_GETMINFO = 10, | 24 | MAPLE_COMMAND_GETMINFO = 10, |
25 | MAPLE_COMMAND_BREAD = 11, | 25 | MAPLE_COMMAND_BREAD = 11, |
26 | MAPLE_COMMAND_BWRITE = 12, | 26 | MAPLE_COMMAND_BWRITE = 12, |
27 | MAPLE_COMMAND_SETCOND = 14 | 27 | MAPLE_COMMAND_SETCOND = 14 |
28 | }; | 28 | }; |
29 | 29 | ||
30 | struct mapleq { | 30 | struct mapleq { |
31 | struct list_head list; | 31 | struct list_head list; |
32 | struct maple_device *dev; | 32 | struct maple_device *dev; |
33 | void *sendbuf, *recvbuf, *recvbufdcsp; | 33 | void *sendbuf, *recvbuf, *recvbufdcsp; |
34 | unsigned char length; | 34 | unsigned char length; |
35 | enum maple_code command; | 35 | enum maple_code command; |
36 | }; | 36 | }; |
37 | 37 | ||
38 | struct maple_devinfo { | 38 | struct maple_devinfo { |
39 | unsigned long function; | 39 | unsigned long function; |
40 | unsigned long function_data[3]; | 40 | unsigned long function_data[3]; |
41 | unsigned char area_code; | 41 | unsigned char area_code; |
42 | unsigned char connector_directon; | 42 | unsigned char connector_direction; |
43 | char product_name[31]; | 43 | char product_name[31]; |
44 | char product_licence[61]; | 44 | char product_licence[61]; |
45 | unsigned short standby_power; | 45 | unsigned short standby_power; |
46 | unsigned short max_power; | 46 | unsigned short max_power; |
47 | }; | 47 | }; |
48 | 48 | ||
49 | struct maple_device { | 49 | struct maple_device { |
50 | struct maple_driver *driver; | 50 | struct maple_driver *driver; |
51 | struct mapleq *mq; | 51 | struct mapleq *mq; |
52 | void *private_data; | 52 | void *private_data; |
53 | void (*callback) (struct mapleq * mq); | 53 | void (*callback) (struct mapleq * mq); |
54 | unsigned long when, interval, function; | 54 | unsigned long when, interval, function; |
55 | struct maple_devinfo devinfo; | 55 | struct maple_devinfo devinfo; |
56 | unsigned char port, unit; | 56 | unsigned char port, unit; |
57 | char product_name[32]; | 57 | char product_name[32]; |
58 | char product_licence[64]; | 58 | char product_licence[64]; |
59 | int registered; | 59 | struct device dev; |
60 | struct device dev; | ||
61 | }; | 60 | }; |
62 | 61 | ||
63 | struct maple_driver { | 62 | struct maple_driver { |
64 | unsigned long function; | 63 | unsigned long function; |
65 | int (*connect) (struct maple_device * dev); | 64 | int (*connect) (struct maple_device * dev); |
66 | void (*disconnect) (struct maple_device * dev); | 65 | void (*disconnect) (struct maple_device * dev); |
67 | struct device_driver drv; | 66 | struct device_driver drv; |
67 | int registered; | ||
68 | }; | 68 | }; |
69 | 69 | ||
70 | void maple_getcond_callback(struct maple_device *dev, | 70 | void maple_getcond_callback(struct maple_device *dev, |
71 | void (*callback) (struct mapleq * mq), | 71 | void (*callback) (struct mapleq * mq), |
72 | unsigned long interval, | 72 | unsigned long interval, |
73 | unsigned long function); | 73 | unsigned long function); |
74 | int maple_driver_register(struct device_driver *drv); | 74 | int maple_driver_register(struct device_driver *drv); |
75 | void maple_add_packet(struct mapleq *mq); | 75 | void maple_add_packet(struct mapleq *mq); |
76 | 76 | ||
77 | #define to_maple_dev(n) container_of(n, struct maple_device, dev) | 77 | #define to_maple_dev(n) container_of(n, struct maple_device, dev) |
78 | #define to_maple_driver(n) container_of(n, struct maple_driver, drv) | 78 | #define to_maple_driver(n) container_of(n, struct maple_driver, drv) |
79 | 79 | ||
80 | #endif /* __LINUX_MAPLE_H */ | 80 | #endif /* __LINUX_MAPLE_H */ |
diff --git a/include/linux/marker.h b/include/linux/marker.h index 5f36cf946bcb..5df879dc3776 100644 --- a/include/linux/marker.h +++ b/include/linux/marker.h | |||
@@ -19,16 +19,23 @@ struct marker; | |||
19 | 19 | ||
20 | /** | 20 | /** |
21 | * marker_probe_func - Type of a marker probe function | 21 | * marker_probe_func - Type of a marker probe function |
22 | * @mdata: pointer of type struct marker | 22 | * @probe_private: probe private data |
23 | * @private_data: caller site private data | 23 | * @call_private: call site private data |
24 | * @fmt: format string | 24 | * @fmt: format string |
25 | * @...: variable argument list | 25 | * @args: variable argument list pointer. Use a pointer to overcome C's |
26 | * inability to pass this around as a pointer in a portable manner in | ||
27 | * the callee otherwise. | ||
26 | * | 28 | * |
27 | * Type of marker probe functions. They receive the mdata and need to parse the | 29 | * Type of marker probe functions. They receive the mdata and need to parse the |
28 | * format string to recover the variable argument list. | 30 | * format string to recover the variable argument list. |
29 | */ | 31 | */ |
30 | typedef void marker_probe_func(const struct marker *mdata, | 32 | typedef void marker_probe_func(void *probe_private, void *call_private, |
31 | void *private_data, const char *fmt, ...); | 33 | const char *fmt, va_list *args); |
34 | |||
35 | struct marker_probe_closure { | ||
36 | marker_probe_func *func; /* Callback */ | ||
37 | void *probe_private; /* Private probe data */ | ||
38 | }; | ||
32 | 39 | ||
33 | struct marker { | 40 | struct marker { |
34 | const char *name; /* Marker name */ | 41 | const char *name; /* Marker name */ |
@@ -36,8 +43,11 @@ struct marker { | |||
36 | * variable argument list. | 43 | * variable argument list. |
37 | */ | 44 | */ |
38 | char state; /* Marker state. */ | 45 | char state; /* Marker state. */ |
39 | marker_probe_func *call;/* Probe handler function pointer */ | 46 | char ptype; /* probe type : 0 : single, 1 : multi */ |
40 | void *private; /* Private probe data */ | 47 | void (*call)(const struct marker *mdata, /* Probe wrapper */ |
48 | void *call_private, const char *fmt, ...); | ||
49 | struct marker_probe_closure single; | ||
50 | struct marker_probe_closure *multi; | ||
41 | } __attribute__((aligned(8))); | 51 | } __attribute__((aligned(8))); |
42 | 52 | ||
43 | #ifdef CONFIG_MARKERS | 53 | #ifdef CONFIG_MARKERS |
@@ -49,35 +59,31 @@ struct marker { | |||
49 | * not add unwanted padding between the beginning of the section and the | 59 | * not add unwanted padding between the beginning of the section and the |
50 | * structure. Force alignment to the same alignment as the section start. | 60 | * structure. Force alignment to the same alignment as the section start. |
51 | */ | 61 | */ |
52 | #define __trace_mark(name, call_data, format, args...) \ | 62 | #define __trace_mark(name, call_private, format, args...) \ |
53 | do { \ | 63 | do { \ |
54 | static const char __mstrtab_name_##name[] \ | 64 | static const char __mstrtab_##name[] \ |
55 | __attribute__((section("__markers_strings"))) \ | ||
56 | = #name; \ | ||
57 | static const char __mstrtab_format_##name[] \ | ||
58 | __attribute__((section("__markers_strings"))) \ | 65 | __attribute__((section("__markers_strings"))) \ |
59 | = format; \ | 66 | = #name "\0" format; \ |
60 | static struct marker __mark_##name \ | 67 | static struct marker __mark_##name \ |
61 | __attribute__((section("__markers"), aligned(8))) = \ | 68 | __attribute__((section("__markers"), aligned(8))) = \ |
62 | { __mstrtab_name_##name, __mstrtab_format_##name, \ | 69 | { __mstrtab_##name, &__mstrtab_##name[sizeof(#name)], \ |
63 | 0, __mark_empty_function, NULL }; \ | 70 | 0, 0, marker_probe_cb, \ |
71 | { __mark_empty_function, NULL}, NULL }; \ | ||
64 | __mark_check_format(format, ## args); \ | 72 | __mark_check_format(format, ## args); \ |
65 | if (unlikely(__mark_##name.state)) { \ | 73 | if (unlikely(__mark_##name.state)) { \ |
66 | preempt_disable(); \ | ||
67 | (*__mark_##name.call) \ | 74 | (*__mark_##name.call) \ |
68 | (&__mark_##name, call_data, \ | 75 | (&__mark_##name, call_private, \ |
69 | format, ## args); \ | 76 | format, ## args); \ |
70 | preempt_enable(); \ | ||
71 | } \ | 77 | } \ |
72 | } while (0) | 78 | } while (0) |
73 | 79 | ||
74 | extern void marker_update_probe_range(struct marker *begin, | 80 | extern void marker_update_probe_range(struct marker *begin, |
75 | struct marker *end, struct module *probe_module, int *refcount); | 81 | struct marker *end); |
76 | #else /* !CONFIG_MARKERS */ | 82 | #else /* !CONFIG_MARKERS */ |
77 | #define __trace_mark(name, call_data, format, args...) \ | 83 | #define __trace_mark(name, call_private, format, args...) \ |
78 | __mark_check_format(format, ## args) | 84 | __mark_check_format(format, ## args) |
79 | static inline void marker_update_probe_range(struct marker *begin, | 85 | static inline void marker_update_probe_range(struct marker *begin, |
80 | struct marker *end, struct module *probe_module, int *refcount) | 86 | struct marker *end) |
81 | { } | 87 | { } |
82 | #endif /* CONFIG_MARKERS */ | 88 | #endif /* CONFIG_MARKERS */ |
83 | 89 | ||
@@ -92,8 +98,6 @@ static inline void marker_update_probe_range(struct marker *begin, | |||
92 | #define trace_mark(name, format, args...) \ | 98 | #define trace_mark(name, format, args...) \ |
93 | __trace_mark(name, NULL, format, ## args) | 99 | __trace_mark(name, NULL, format, ## args) |
94 | 100 | ||
95 | #define MARK_MAX_FORMAT_LEN 1024 | ||
96 | |||
97 | /** | 101 | /** |
98 | * MARK_NOARGS - Format string for a marker with no argument. | 102 | * MARK_NOARGS - Format string for a marker with no argument. |
99 | */ | 103 | */ |
@@ -106,24 +110,30 @@ static inline void __printf(1, 2) __mark_check_format(const char *fmt, ...) | |||
106 | 110 | ||
107 | extern marker_probe_func __mark_empty_function; | 111 | extern marker_probe_func __mark_empty_function; |
108 | 112 | ||
113 | extern void marker_probe_cb(const struct marker *mdata, | ||
114 | void *call_private, const char *fmt, ...); | ||
115 | extern void marker_probe_cb_noarg(const struct marker *mdata, | ||
116 | void *call_private, const char *fmt, ...); | ||
117 | |||
109 | /* | 118 | /* |
110 | * Connect a probe to a marker. | 119 | * Connect a probe to a marker. |
111 | * private data pointer must be a valid allocated memory address, or NULL. | 120 | * private data pointer must be a valid allocated memory address, or NULL. |
112 | */ | 121 | */ |
113 | extern int marker_probe_register(const char *name, const char *format, | 122 | extern int marker_probe_register(const char *name, const char *format, |
114 | marker_probe_func *probe, void *private); | 123 | marker_probe_func *probe, void *probe_private); |
115 | 124 | ||
116 | /* | 125 | /* |
117 | * Returns the private data given to marker_probe_register. | 126 | * Returns the private data given to marker_probe_register. |
118 | */ | 127 | */ |
119 | extern void *marker_probe_unregister(const char *name); | 128 | extern int marker_probe_unregister(const char *name, |
129 | marker_probe_func *probe, void *probe_private); | ||
120 | /* | 130 | /* |
121 | * Unregister a marker by providing the registered private data. | 131 | * Unregister a marker by providing the registered private data. |
122 | */ | 132 | */ |
123 | extern void *marker_probe_unregister_private_data(void *private); | 133 | extern int marker_probe_unregister_private_data(marker_probe_func *probe, |
134 | void *probe_private); | ||
124 | 135 | ||
125 | extern int marker_arm(const char *name); | 136 | extern void *marker_get_private_data(const char *name, marker_probe_func *probe, |
126 | extern int marker_disarm(const char *name); | 137 | int num); |
127 | extern void *marker_get_private_data(const char *name); | ||
128 | 138 | ||
129 | #endif | 139 | #endif |
diff --git a/include/linux/mm.h b/include/linux/mm.h index e8abb3814209..26c7124b841a 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -786,7 +786,7 @@ int __set_page_dirty_nobuffers(struct page *page); | |||
786 | int __set_page_dirty_no_writeback(struct page *page); | 786 | int __set_page_dirty_no_writeback(struct page *page); |
787 | int redirty_page_for_writepage(struct writeback_control *wbc, | 787 | int redirty_page_for_writepage(struct writeback_control *wbc, |
788 | struct page *page); | 788 | struct page *page); |
789 | int FASTCALL(set_page_dirty(struct page *page)); | 789 | int set_page_dirty(struct page *page); |
790 | int set_page_dirty_lock(struct page *page); | 790 | int set_page_dirty_lock(struct page *page); |
791 | int clear_page_dirty_for_io(struct page *page); | 791 | int clear_page_dirty_for_io(struct page *page); |
792 | 792 | ||
@@ -829,7 +829,7 @@ extern void unregister_shrinker(struct shrinker *); | |||
829 | 829 | ||
830 | int vma_wants_writenotify(struct vm_area_struct *vma); | 830 | int vma_wants_writenotify(struct vm_area_struct *vma); |
831 | 831 | ||
832 | extern pte_t *FASTCALL(get_locked_pte(struct mm_struct *mm, unsigned long addr, spinlock_t **ptl)); | 832 | extern pte_t *get_locked_pte(struct mm_struct *mm, unsigned long addr, spinlock_t **ptl); |
833 | 833 | ||
834 | #ifdef __PAGETABLE_PUD_FOLDED | 834 | #ifdef __PAGETABLE_PUD_FOLDED |
835 | static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, | 835 | static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, |
diff --git a/include/linux/module.h b/include/linux/module.h index ac28e8761e84..819c4e889bf1 100644 --- a/include/linux/module.h +++ b/include/linux/module.h | |||
@@ -465,7 +465,7 @@ int unregister_module_notifier(struct notifier_block * nb); | |||
465 | 465 | ||
466 | extern void print_modules(void); | 466 | extern void print_modules(void); |
467 | 467 | ||
468 | extern void module_update_markers(struct module *probe_module, int *refcount); | 468 | extern void module_update_markers(void); |
469 | 469 | ||
470 | #else /* !CONFIG_MODULES... */ | 470 | #else /* !CONFIG_MODULES... */ |
471 | #define EXPORT_SYMBOL(sym) | 471 | #define EXPORT_SYMBOL(sym) |
@@ -567,8 +567,7 @@ static inline void print_modules(void) | |||
567 | { | 567 | { |
568 | } | 568 | } |
569 | 569 | ||
570 | static inline void module_update_markers(struct module *probe_module, | 570 | static inline void module_update_markers(void) |
571 | int *refcount) | ||
572 | { | 571 | { |
573 | } | 572 | } |
574 | 573 | ||
diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h index 8126e55c5bdc..ec624381c844 100644 --- a/include/linux/moduleparam.h +++ b/include/linux/moduleparam.h | |||
@@ -62,6 +62,16 @@ struct kparam_array | |||
62 | void *elem; | 62 | void *elem; |
63 | }; | 63 | }; |
64 | 64 | ||
65 | /* On alpha, ia64 and ppc64 relocations to global data cannot go into | ||
66 | read-only sections (which is part of respective UNIX ABI on these | ||
67 | platforms). So 'const' makes no sense and even causes compile failures | ||
68 | with some compilers. */ | ||
69 | #if defined(CONFIG_ALPHA) || defined(CONFIG_IA64) || defined(CONFIG_PPC64) | ||
70 | #define __moduleparam_const | ||
71 | #else | ||
72 | #define __moduleparam_const const | ||
73 | #endif | ||
74 | |||
65 | /* This is the fundamental function for registering boot/module | 75 | /* This is the fundamental function for registering boot/module |
66 | parameters. perm sets the visibility in sysfs: 000 means it's | 76 | parameters. perm sets the visibility in sysfs: 000 means it's |
67 | not there, read bits mean it's readable, write bits mean it's | 77 | not there, read bits mean it's readable, write bits mean it's |
@@ -71,7 +81,7 @@ struct kparam_array | |||
71 | static int __param_perm_check_##name __attribute__((unused)) = \ | 81 | static int __param_perm_check_##name __attribute__((unused)) = \ |
72 | BUILD_BUG_ON_ZERO((perm) < 0 || (perm) > 0777 || ((perm) & 2)); \ | 82 | BUILD_BUG_ON_ZERO((perm) < 0 || (perm) > 0777 || ((perm) & 2)); \ |
73 | static const char __param_str_##name[] = prefix #name; \ | 83 | static const char __param_str_##name[] = prefix #name; \ |
74 | static struct kernel_param const __param_##name \ | 84 | static struct kernel_param __moduleparam_const __param_##name \ |
75 | __used \ | 85 | __used \ |
76 | __attribute__ ((unused,__section__ ("__param"),aligned(sizeof(void *)))) \ | 86 | __attribute__ ((unused,__section__ ("__param"),aligned(sizeof(void *)))) \ |
77 | = { __param_str_##name, perm, set, get, { arg } } | 87 | = { __param_str_##name, perm, set, get, { arg } } |
diff --git a/include/linux/mutex-debug.h b/include/linux/mutex-debug.h index 2537285e1064..731d77d6e155 100644 --- a/include/linux/mutex-debug.h +++ b/include/linux/mutex-debug.h | |||
@@ -18,6 +18,6 @@ do { \ | |||
18 | __mutex_init((mutex), #mutex, &__key); \ | 18 | __mutex_init((mutex), #mutex, &__key); \ |
19 | } while (0) | 19 | } while (0) |
20 | 20 | ||
21 | extern void FASTCALL(mutex_destroy(struct mutex *lock)); | 21 | extern void mutex_destroy(struct mutex *lock); |
22 | 22 | ||
23 | #endif | 23 | #endif |
diff --git a/include/linux/namei.h b/include/linux/namei.h index 4cb4f8d2f78d..24d88e98a626 100644 --- a/include/linux/namei.h +++ b/include/linux/namei.h | |||
@@ -3,6 +3,7 @@ | |||
3 | 3 | ||
4 | #include <linux/dcache.h> | 4 | #include <linux/dcache.h> |
5 | #include <linux/linkage.h> | 5 | #include <linux/linkage.h> |
6 | #include <linux/path.h> | ||
6 | 7 | ||
7 | struct vfsmount; | 8 | struct vfsmount; |
8 | 9 | ||
@@ -15,8 +16,7 @@ struct open_intent { | |||
15 | enum { MAX_NESTED_LINKS = 8 }; | 16 | enum { MAX_NESTED_LINKS = 8 }; |
16 | 17 | ||
17 | struct nameidata { | 18 | struct nameidata { |
18 | struct dentry *dentry; | 19 | struct path path; |
19 | struct vfsmount *mnt; | ||
20 | struct qstr last; | 20 | struct qstr last; |
21 | unsigned int flags; | 21 | unsigned int flags; |
22 | int last_type; | 22 | int last_type; |
@@ -29,11 +29,6 @@ struct nameidata { | |||
29 | } intent; | 29 | } intent; |
30 | }; | 30 | }; |
31 | 31 | ||
32 | struct path { | ||
33 | struct vfsmount *mnt; | ||
34 | struct dentry *dentry; | ||
35 | }; | ||
36 | |||
37 | /* | 32 | /* |
38 | * Type of the last component on LOOKUP_PARENT | 33 | * Type of the last component on LOOKUP_PARENT |
39 | */ | 34 | */ |
@@ -62,17 +57,15 @@ enum {LAST_NORM, LAST_ROOT, LAST_DOT, LAST_DOTDOT, LAST_BIND}; | |||
62 | #define LOOKUP_ACCESS (0x0400) | 57 | #define LOOKUP_ACCESS (0x0400) |
63 | #define LOOKUP_CHDIR (0x0800) | 58 | #define LOOKUP_CHDIR (0x0800) |
64 | 59 | ||
65 | extern int FASTCALL(__user_walk(const char __user *, unsigned, struct nameidata *)); | 60 | extern int __user_walk(const char __user *, unsigned, struct nameidata *); |
66 | extern int FASTCALL(__user_walk_fd(int dfd, const char __user *, unsigned, struct nameidata *)); | 61 | extern int __user_walk_fd(int dfd, const char __user *, unsigned, struct nameidata *); |
67 | #define user_path_walk(name,nd) \ | 62 | #define user_path_walk(name,nd) \ |
68 | __user_walk_fd(AT_FDCWD, name, LOOKUP_FOLLOW, nd) | 63 | __user_walk_fd(AT_FDCWD, name, LOOKUP_FOLLOW, nd) |
69 | #define user_path_walk_link(name,nd) \ | 64 | #define user_path_walk_link(name,nd) \ |
70 | __user_walk_fd(AT_FDCWD, name, 0, nd) | 65 | __user_walk_fd(AT_FDCWD, name, 0, nd) |
71 | extern int FASTCALL(path_lookup(const char *, unsigned, struct nameidata *)); | 66 | extern int path_lookup(const char *, unsigned, struct nameidata *); |
72 | extern int vfs_path_lookup(struct dentry *, struct vfsmount *, | 67 | extern int vfs_path_lookup(struct dentry *, struct vfsmount *, |
73 | const char *, unsigned int, struct nameidata *); | 68 | const char *, unsigned int, struct nameidata *); |
74 | extern void path_release(struct nameidata *); | ||
75 | extern void path_release_on_umount(struct nameidata *); | ||
76 | 69 | ||
77 | extern int __user_path_lookup_open(const char __user *, unsigned lookup_flags, struct nameidata *nd, int open_flags); | 70 | extern int __user_path_lookup_open(const char __user *, unsigned lookup_flags, struct nameidata *nd, int open_flags); |
78 | extern int path_lookup_open(int dfd, const char *name, unsigned lookup_flags, struct nameidata *, int open_flags); | 71 | extern int path_lookup_open(int dfd, const char *name, unsigned lookup_flags, struct nameidata *, int open_flags); |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 047d432bde55..a2f003239c85 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -322,7 +322,7 @@ enum | |||
322 | NAPI_STATE_DISABLE, /* Disable pending */ | 322 | NAPI_STATE_DISABLE, /* Disable pending */ |
323 | }; | 323 | }; |
324 | 324 | ||
325 | extern void FASTCALL(__napi_schedule(struct napi_struct *n)); | 325 | extern void __napi_schedule(struct napi_struct *n); |
326 | 326 | ||
327 | static inline int napi_disable_pending(struct napi_struct *n) | 327 | static inline int napi_disable_pending(struct napi_struct *n) |
328 | { | 328 | { |
@@ -604,6 +604,10 @@ struct net_device | |||
604 | 604 | ||
605 | unsigned char broadcast[MAX_ADDR_LEN]; /* hw bcast add */ | 605 | unsigned char broadcast[MAX_ADDR_LEN]; /* hw bcast add */ |
606 | 606 | ||
607 | /* ingress path synchronizer */ | ||
608 | spinlock_t ingress_lock; | ||
609 | struct Qdisc *qdisc_ingress; | ||
610 | |||
607 | /* | 611 | /* |
608 | * Cache line mostly used on queue transmit path (qdisc) | 612 | * Cache line mostly used on queue transmit path (qdisc) |
609 | */ | 613 | */ |
@@ -617,10 +621,6 @@ struct net_device | |||
617 | /* Partially transmitted GSO packet. */ | 621 | /* Partially transmitted GSO packet. */ |
618 | struct sk_buff *gso_skb; | 622 | struct sk_buff *gso_skb; |
619 | 623 | ||
620 | /* ingress path synchronizer */ | ||
621 | spinlock_t ingress_lock; | ||
622 | struct Qdisc *qdisc_ingress; | ||
623 | |||
624 | /* | 624 | /* |
625 | * One part is mostly used on xmit path (device) | 625 | * One part is mostly used on xmit path (device) |
626 | */ | 626 | */ |
diff --git a/include/linux/nfsd/export.h b/include/linux/nfsd/export.h index 3a1687251367..5431512b2757 100644 --- a/include/linux/nfsd/export.h +++ b/include/linux/nfsd/export.h | |||
@@ -84,9 +84,8 @@ struct svc_export { | |||
84 | struct cache_head h; | 84 | struct cache_head h; |
85 | struct auth_domain * ex_client; | 85 | struct auth_domain * ex_client; |
86 | int ex_flags; | 86 | int ex_flags; |
87 | struct vfsmount * ex_mnt; | 87 | struct path ex_path; |
88 | struct dentry * ex_dentry; | 88 | char *ex_pathname; |
89 | char * ex_path; | ||
90 | uid_t ex_anon_uid; | 89 | uid_t ex_anon_uid; |
91 | gid_t ex_anon_gid; | 90 | gid_t ex_anon_gid; |
92 | int ex_fsid; | 91 | int ex_fsid; |
@@ -107,8 +106,7 @@ struct svc_expkey { | |||
107 | int ek_fsidtype; | 106 | int ek_fsidtype; |
108 | u32 ek_fsid[6]; | 107 | u32 ek_fsid[6]; |
109 | 108 | ||
110 | struct vfsmount * ek_mnt; | 109 | struct path ek_path; |
111 | struct dentry * ek_dentry; | ||
112 | }; | 110 | }; |
113 | 111 | ||
114 | #define EX_SECURE(exp) (!((exp)->ex_flags & NFSEXP_INSECURE_PORT)) | 112 | #define EX_SECURE(exp) (!((exp)->ex_flags & NFSEXP_INSECURE_PORT)) |
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 4b62a105622b..d2fca802f809 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h | |||
@@ -156,10 +156,10 @@ static inline pgoff_t linear_page_index(struct vm_area_struct *vma, | |||
156 | return pgoff >> (PAGE_CACHE_SHIFT - PAGE_SHIFT); | 156 | return pgoff >> (PAGE_CACHE_SHIFT - PAGE_SHIFT); |
157 | } | 157 | } |
158 | 158 | ||
159 | extern void FASTCALL(__lock_page(struct page *page)); | 159 | extern void __lock_page(struct page *page); |
160 | extern int FASTCALL(__lock_page_killable(struct page *page)); | 160 | extern int __lock_page_killable(struct page *page); |
161 | extern void FASTCALL(__lock_page_nosync(struct page *page)); | 161 | extern void __lock_page_nosync(struct page *page); |
162 | extern void FASTCALL(unlock_page(struct page *page)); | 162 | extern void unlock_page(struct page *page); |
163 | 163 | ||
164 | /* | 164 | /* |
165 | * lock_page may only be called if we have the page's inode pinned. | 165 | * lock_page may only be called if we have the page's inode pinned. |
@@ -199,7 +199,7 @@ static inline void lock_page_nosync(struct page *page) | |||
199 | * This is exported only for wait_on_page_locked/wait_on_page_writeback. | 199 | * This is exported only for wait_on_page_locked/wait_on_page_writeback. |
200 | * Never use this directly! | 200 | * Never use this directly! |
201 | */ | 201 | */ |
202 | extern void FASTCALL(wait_on_page_bit(struct page *page, int bit_nr)); | 202 | extern void wait_on_page_bit(struct page *page, int bit_nr); |
203 | 203 | ||
204 | /* | 204 | /* |
205 | * Wait for a page to be unlocked. | 205 | * Wait for a page to be unlocked. |
diff --git a/include/linux/path.h b/include/linux/path.h new file mode 100644 index 000000000000..915e0c382a51 --- /dev/null +++ b/include/linux/path.h | |||
@@ -0,0 +1,15 @@ | |||
1 | #ifndef _LINUX_PATH_H | ||
2 | #define _LINUX_PATH_H | ||
3 | |||
4 | struct dentry; | ||
5 | struct vfsmount; | ||
6 | |||
7 | struct path { | ||
8 | struct vfsmount *mnt; | ||
9 | struct dentry *dentry; | ||
10 | }; | ||
11 | |||
12 | extern void path_get(struct path *); | ||
13 | extern void path_put(struct path *); | ||
14 | |||
15 | #endif /* _LINUX_PATH_H */ | ||
diff --git a/include/linux/pid.h b/include/linux/pid.h index f84d532b5d23..c7980810eb09 100644 --- a/include/linux/pid.h +++ b/include/linux/pid.h | |||
@@ -79,10 +79,9 @@ static inline struct pid *get_pid(struct pid *pid) | |||
79 | return pid; | 79 | return pid; |
80 | } | 80 | } |
81 | 81 | ||
82 | extern void FASTCALL(put_pid(struct pid *pid)); | 82 | extern void put_pid(struct pid *pid); |
83 | extern struct task_struct *FASTCALL(pid_task(struct pid *pid, enum pid_type)); | 83 | extern struct task_struct *pid_task(struct pid *pid, enum pid_type); |
84 | extern struct task_struct *FASTCALL(get_pid_task(struct pid *pid, | 84 | extern struct task_struct *get_pid_task(struct pid *pid, enum pid_type); |
85 | enum pid_type)); | ||
86 | 85 | ||
87 | extern struct pid *get_task_pid(struct task_struct *task, enum pid_type type); | 86 | extern struct pid *get_task_pid(struct task_struct *task, enum pid_type type); |
88 | 87 | ||
@@ -90,11 +89,11 @@ extern struct pid *get_task_pid(struct task_struct *task, enum pid_type type); | |||
90 | * attach_pid() and detach_pid() must be called with the tasklist_lock | 89 | * attach_pid() and detach_pid() must be called with the tasklist_lock |
91 | * write-held. | 90 | * write-held. |
92 | */ | 91 | */ |
93 | extern int FASTCALL(attach_pid(struct task_struct *task, | 92 | extern int attach_pid(struct task_struct *task, enum pid_type type, |
94 | enum pid_type type, struct pid *pid)); | 93 | struct pid *pid); |
95 | extern void FASTCALL(detach_pid(struct task_struct *task, enum pid_type)); | 94 | extern void detach_pid(struct task_struct *task, enum pid_type); |
96 | extern void FASTCALL(transfer_pid(struct task_struct *old, | 95 | extern void transfer_pid(struct task_struct *old, struct task_struct *new, |
97 | struct task_struct *new, enum pid_type)); | 96 | enum pid_type); |
98 | 97 | ||
99 | struct pid_namespace; | 98 | struct pid_namespace; |
100 | extern struct pid_namespace init_pid_ns; | 99 | extern struct pid_namespace init_pid_ns; |
@@ -109,7 +108,7 @@ extern struct pid_namespace init_pid_ns; | |||
109 | * | 108 | * |
110 | * see also find_task_by_pid() set in include/linux/sched.h | 109 | * see also find_task_by_pid() set in include/linux/sched.h |
111 | */ | 110 | */ |
112 | extern struct pid *FASTCALL(find_pid_ns(int nr, struct pid_namespace *ns)); | 111 | extern struct pid *find_pid_ns(int nr, struct pid_namespace *ns); |
113 | extern struct pid *find_vpid(int nr); | 112 | extern struct pid *find_vpid(int nr); |
114 | extern struct pid *find_pid(int nr); | 113 | extern struct pid *find_pid(int nr); |
115 | 114 | ||
@@ -121,7 +120,7 @@ extern struct pid *find_ge_pid(int nr, struct pid_namespace *); | |||
121 | int next_pidmap(struct pid_namespace *pid_ns, int last); | 120 | int next_pidmap(struct pid_namespace *pid_ns, int last); |
122 | 121 | ||
123 | extern struct pid *alloc_pid(struct pid_namespace *ns); | 122 | extern struct pid *alloc_pid(struct pid_namespace *ns); |
124 | extern void FASTCALL(free_pid(struct pid *pid)); | 123 | extern void free_pid(struct pid *pid); |
125 | 124 | ||
126 | /* | 125 | /* |
127 | * the helpers to get the pid's id seen from different namespaces | 126 | * the helpers to get the pid's id seen from different namespaces |
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index d6a4f69bdc92..d9a9e718ad19 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h | |||
@@ -269,7 +269,7 @@ extern void kclist_add(struct kcore_list *, void *, size_t); | |||
269 | #endif | 269 | #endif |
270 | 270 | ||
271 | union proc_op { | 271 | union proc_op { |
272 | int (*proc_get_link)(struct inode *, struct dentry **, struct vfsmount **); | 272 | int (*proc_get_link)(struct inode *, struct path *); |
273 | int (*proc_read)(struct task_struct *task, char *page); | 273 | int (*proc_read)(struct task_struct *task, char *page); |
274 | int (*proc_show)(struct seq_file *m, | 274 | int (*proc_show)(struct seq_file *m, |
275 | struct pid_namespace *ns, struct pid *pid, | 275 | struct pid_namespace *ns, struct pid *pid, |
diff --git a/include/linux/rwsem-spinlock.h b/include/linux/rwsem-spinlock.h index 813cee13da0d..6c3c0f6c261f 100644 --- a/include/linux/rwsem-spinlock.h +++ b/include/linux/rwsem-spinlock.h | |||
@@ -60,14 +60,14 @@ do { \ | |||
60 | __init_rwsem((sem), #sem, &__key); \ | 60 | __init_rwsem((sem), #sem, &__key); \ |
61 | } while (0) | 61 | } while (0) |
62 | 62 | ||
63 | extern void FASTCALL(__down_read(struct rw_semaphore *sem)); | 63 | extern void __down_read(struct rw_semaphore *sem); |
64 | extern int FASTCALL(__down_read_trylock(struct rw_semaphore *sem)); | 64 | extern int __down_read_trylock(struct rw_semaphore *sem); |
65 | extern void FASTCALL(__down_write(struct rw_semaphore *sem)); | 65 | extern void __down_write(struct rw_semaphore *sem); |
66 | extern void FASTCALL(__down_write_nested(struct rw_semaphore *sem, int subclass)); | 66 | extern void __down_write_nested(struct rw_semaphore *sem, int subclass); |
67 | extern int FASTCALL(__down_write_trylock(struct rw_semaphore *sem)); | 67 | extern int __down_write_trylock(struct rw_semaphore *sem); |
68 | extern void FASTCALL(__up_read(struct rw_semaphore *sem)); | 68 | extern void __up_read(struct rw_semaphore *sem); |
69 | extern void FASTCALL(__up_write(struct rw_semaphore *sem)); | 69 | extern void __up_write(struct rw_semaphore *sem); |
70 | extern void FASTCALL(__downgrade_write(struct rw_semaphore *sem)); | 70 | extern void __downgrade_write(struct rw_semaphore *sem); |
71 | 71 | ||
72 | static inline int rwsem_is_locked(struct rw_semaphore *sem) | 72 | static inline int rwsem_is_locked(struct rw_semaphore *sem) |
73 | { | 73 | { |
diff --git a/include/linux/sched.h b/include/linux/sched.h index b9bb313fe1ae..e217d188a102 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -323,7 +323,7 @@ extern char __sched_text_start[], __sched_text_end[]; | |||
323 | extern int in_sched_functions(unsigned long addr); | 323 | extern int in_sched_functions(unsigned long addr); |
324 | 324 | ||
325 | #define MAX_SCHEDULE_TIMEOUT LONG_MAX | 325 | #define MAX_SCHEDULE_TIMEOUT LONG_MAX |
326 | extern signed long FASTCALL(schedule_timeout(signed long timeout)); | 326 | extern signed long schedule_timeout(signed long timeout); |
327 | extern signed long schedule_timeout_interruptible(signed long timeout); | 327 | extern signed long schedule_timeout_interruptible(signed long timeout); |
328 | extern signed long schedule_timeout_killable(signed long timeout); | 328 | extern signed long schedule_timeout_killable(signed long timeout); |
329 | extern signed long schedule_timeout_uninterruptible(signed long timeout); | 329 | extern signed long schedule_timeout_uninterruptible(signed long timeout); |
@@ -1648,10 +1648,10 @@ extern void release_uids(struct user_namespace *ns); | |||
1648 | 1648 | ||
1649 | extern void do_timer(unsigned long ticks); | 1649 | extern void do_timer(unsigned long ticks); |
1650 | 1650 | ||
1651 | extern int FASTCALL(wake_up_state(struct task_struct * tsk, unsigned int state)); | 1651 | extern int wake_up_state(struct task_struct *tsk, unsigned int state); |
1652 | extern int FASTCALL(wake_up_process(struct task_struct * tsk)); | 1652 | extern int wake_up_process(struct task_struct *tsk); |
1653 | extern void FASTCALL(wake_up_new_task(struct task_struct * tsk, | 1653 | extern void wake_up_new_task(struct task_struct *tsk, |
1654 | unsigned long clone_flags)); | 1654 | unsigned long clone_flags); |
1655 | #ifdef CONFIG_SMP | 1655 | #ifdef CONFIG_SMP |
1656 | extern void kick_process(struct task_struct *tsk); | 1656 | extern void kick_process(struct task_struct *tsk); |
1657 | #else | 1657 | #else |
@@ -1741,7 +1741,7 @@ static inline int sas_ss_flags(unsigned long sp) | |||
1741 | extern struct mm_struct * mm_alloc(void); | 1741 | extern struct mm_struct * mm_alloc(void); |
1742 | 1742 | ||
1743 | /* mmdrop drops the mm and the page tables */ | 1743 | /* mmdrop drops the mm and the page tables */ |
1744 | extern void FASTCALL(__mmdrop(struct mm_struct *)); | 1744 | extern void __mmdrop(struct mm_struct *); |
1745 | static inline void mmdrop(struct mm_struct * mm) | 1745 | static inline void mmdrop(struct mm_struct * mm) |
1746 | { | 1746 | { |
1747 | if (unlikely(atomic_dec_and_test(&mm->mm_count))) | 1747 | if (unlikely(atomic_dec_and_test(&mm->mm_count))) |
@@ -1925,7 +1925,7 @@ static inline int signal_pending(struct task_struct *p) | |||
1925 | return unlikely(test_tsk_thread_flag(p,TIF_SIGPENDING)); | 1925 | return unlikely(test_tsk_thread_flag(p,TIF_SIGPENDING)); |
1926 | } | 1926 | } |
1927 | 1927 | ||
1928 | extern int FASTCALL(__fatal_signal_pending(struct task_struct *p)); | 1928 | extern int __fatal_signal_pending(struct task_struct *p); |
1929 | 1929 | ||
1930 | static inline int fatal_signal_pending(struct task_struct *p) | 1930 | static inline int fatal_signal_pending(struct task_struct *p) |
1931 | { | 1931 | { |
diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h index 648dfeb444db..67c2563961f3 100644 --- a/include/linux/seq_file.h +++ b/include/linux/seq_file.h | |||
@@ -8,8 +8,7 @@ | |||
8 | 8 | ||
9 | struct seq_operations; | 9 | struct seq_operations; |
10 | struct file; | 10 | struct file; |
11 | struct vfsmount; | 11 | struct path; |
12 | struct dentry; | ||
13 | struct inode; | 12 | struct inode; |
14 | 13 | ||
15 | struct seq_file { | 14 | struct seq_file { |
@@ -42,7 +41,7 @@ int seq_puts(struct seq_file *m, const char *s); | |||
42 | int seq_printf(struct seq_file *, const char *, ...) | 41 | int seq_printf(struct seq_file *, const char *, ...) |
43 | __attribute__ ((format (printf,2,3))); | 42 | __attribute__ ((format (printf,2,3))); |
44 | 43 | ||
45 | int seq_path(struct seq_file *, struct vfsmount *, struct dentry *, char *); | 44 | int seq_path(struct seq_file *, struct path *, char *); |
46 | 45 | ||
47 | int single_open(struct file *, int (*)(struct seq_file *, void *), void *); | 46 | int single_open(struct file *, int (*)(struct seq_file *, void *), void *); |
48 | int single_release(struct inode *, struct file *); | 47 | int single_release(struct inode *, struct file *); |
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index 1a0b6cf83ff1..289942fc6655 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h | |||
@@ -149,6 +149,8 @@ | |||
149 | /* Freescale ColdFire */ | 149 | /* Freescale ColdFire */ |
150 | #define PORT_MCF 78 | 150 | #define PORT_MCF 78 |
151 | 151 | ||
152 | #define PORT_SC26XX 79 | ||
153 | |||
152 | 154 | ||
153 | /* MN10300 on-chip UART numbers */ | 155 | /* MN10300 on-chip UART numbers */ |
154 | #define PORT_MN10300 80 | 156 | #define PORT_MN10300 80 |
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h index 5e6d3d634d5b..57deecc79d52 100644 --- a/include/linux/slub_def.h +++ b/include/linux/slub_def.h | |||
@@ -71,6 +71,7 @@ struct kmem_cache { | |||
71 | 71 | ||
72 | /* Allocation and freeing of slabs */ | 72 | /* Allocation and freeing of slabs */ |
73 | int objects; /* Number of objects in slab */ | 73 | int objects; /* Number of objects in slab */ |
74 | gfp_t allocflags; /* gfp flags to use on each alloc */ | ||
74 | int refcount; /* Refcount for slab cache destroy */ | 75 | int refcount; /* Refcount for slab cache destroy */ |
75 | void (*ctor)(struct kmem_cache *, void *); | 76 | void (*ctor)(struct kmem_cache *, void *); |
76 | int inuse; /* Offset to metadata */ | 77 | int inuse; /* Offset to metadata */ |
@@ -110,7 +111,7 @@ struct kmem_cache { | |||
110 | * We keep the general caches in an array of slab caches that are used for | 111 | * We keep the general caches in an array of slab caches that are used for |
111 | * 2^x bytes of allocations. | 112 | * 2^x bytes of allocations. |
112 | */ | 113 | */ |
113 | extern struct kmem_cache kmalloc_caches[PAGE_SHIFT]; | 114 | extern struct kmem_cache kmalloc_caches[PAGE_SHIFT + 1]; |
114 | 115 | ||
115 | /* | 116 | /* |
116 | * Sorry that the following has to be that ugly but some versions of GCC | 117 | * Sorry that the following has to be that ugly but some versions of GCC |
@@ -188,12 +189,16 @@ static __always_inline struct kmem_cache *kmalloc_slab(size_t size) | |||
188 | void *kmem_cache_alloc(struct kmem_cache *, gfp_t); | 189 | void *kmem_cache_alloc(struct kmem_cache *, gfp_t); |
189 | void *__kmalloc(size_t size, gfp_t flags); | 190 | void *__kmalloc(size_t size, gfp_t flags); |
190 | 191 | ||
192 | static __always_inline void *kmalloc_large(size_t size, gfp_t flags) | ||
193 | { | ||
194 | return (void *)__get_free_pages(flags | __GFP_COMP, get_order(size)); | ||
195 | } | ||
196 | |||
191 | static __always_inline void *kmalloc(size_t size, gfp_t flags) | 197 | static __always_inline void *kmalloc(size_t size, gfp_t flags) |
192 | { | 198 | { |
193 | if (__builtin_constant_p(size)) { | 199 | if (__builtin_constant_p(size)) { |
194 | if (size > PAGE_SIZE / 2) | 200 | if (size > PAGE_SIZE) |
195 | return (void *)__get_free_pages(flags | __GFP_COMP, | 201 | return kmalloc_large(size, flags); |
196 | get_order(size)); | ||
197 | 202 | ||
198 | if (!(flags & SLUB_DMA)) { | 203 | if (!(flags & SLUB_DMA)) { |
199 | struct kmem_cache *s = kmalloc_slab(size); | 204 | struct kmem_cache *s = kmalloc_slab(size); |
@@ -214,7 +219,7 @@ void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node); | |||
214 | static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node) | 219 | static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node) |
215 | { | 220 | { |
216 | if (__builtin_constant_p(size) && | 221 | if (__builtin_constant_p(size) && |
217 | size <= PAGE_SIZE / 2 && !(flags & SLUB_DMA)) { | 222 | size <= PAGE_SIZE && !(flags & SLUB_DMA)) { |
218 | struct kmem_cache *s = kmalloc_slab(size); | 223 | struct kmem_cache *s = kmalloc_slab(size); |
219 | 224 | ||
220 | if (!s) | 225 | if (!s) |
diff --git a/include/linux/swap.h b/include/linux/swap.h index 3ca5c4bd6d3f..878459ae0454 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
@@ -171,10 +171,10 @@ extern unsigned int nr_free_pagecache_pages(void); | |||
171 | 171 | ||
172 | 172 | ||
173 | /* linux/mm/swap.c */ | 173 | /* linux/mm/swap.c */ |
174 | extern void FASTCALL(lru_cache_add(struct page *)); | 174 | extern void lru_cache_add(struct page *); |
175 | extern void FASTCALL(lru_cache_add_active(struct page *)); | 175 | extern void lru_cache_add_active(struct page *); |
176 | extern void FASTCALL(activate_page(struct page *)); | 176 | extern void activate_page(struct page *); |
177 | extern void FASTCALL(mark_page_accessed(struct page *)); | 177 | extern void mark_page_accessed(struct page *); |
178 | extern void lru_add_drain(void); | 178 | extern void lru_add_drain(void); |
179 | extern int lru_add_drain_all(void); | 179 | extern int lru_add_drain_all(void); |
180 | extern int rotate_reclaimable_page(struct page *page); | 180 | extern int rotate_reclaimable_page(struct page *page); |
diff --git a/include/linux/wait.h b/include/linux/wait.h index 33a2aa9e02f2..0081147a9fe8 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h | |||
@@ -117,9 +117,9 @@ static inline int waitqueue_active(wait_queue_head_t *q) | |||
117 | */ | 117 | */ |
118 | #define is_sync_wait(wait) (!(wait) || ((wait)->private)) | 118 | #define is_sync_wait(wait) (!(wait) || ((wait)->private)) |
119 | 119 | ||
120 | extern void FASTCALL(add_wait_queue(wait_queue_head_t *q, wait_queue_t * wait)); | 120 | extern void add_wait_queue(wait_queue_head_t *q, wait_queue_t *wait); |
121 | extern void FASTCALL(add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t * wait)); | 121 | extern void add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t *wait); |
122 | extern void FASTCALL(remove_wait_queue(wait_queue_head_t *q, wait_queue_t * wait)); | 122 | extern void remove_wait_queue(wait_queue_head_t *q, wait_queue_t *wait); |
123 | 123 | ||
124 | static inline void __add_wait_queue(wait_queue_head_t *head, wait_queue_t *new) | 124 | static inline void __add_wait_queue(wait_queue_head_t *head, wait_queue_t *new) |
125 | { | 125 | { |
@@ -141,16 +141,16 @@ static inline void __remove_wait_queue(wait_queue_head_t *head, | |||
141 | list_del(&old->task_list); | 141 | list_del(&old->task_list); |
142 | } | 142 | } |
143 | 143 | ||
144 | void FASTCALL(__wake_up(wait_queue_head_t *q, unsigned int mode, int nr, void *key)); | 144 | void __wake_up(wait_queue_head_t *q, unsigned int mode, int nr, void *key); |
145 | extern void FASTCALL(__wake_up_locked(wait_queue_head_t *q, unsigned int mode)); | 145 | extern void __wake_up_locked(wait_queue_head_t *q, unsigned int mode); |
146 | extern void FASTCALL(__wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr)); | 146 | extern void __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr); |
147 | void FASTCALL(__wake_up_bit(wait_queue_head_t *, void *, int)); | 147 | void __wake_up_bit(wait_queue_head_t *, void *, int); |
148 | int FASTCALL(__wait_on_bit(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned)); | 148 | int __wait_on_bit(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned); |
149 | int FASTCALL(__wait_on_bit_lock(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned)); | 149 | int __wait_on_bit_lock(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned); |
150 | void FASTCALL(wake_up_bit(void *, int)); | 150 | void wake_up_bit(void *, int); |
151 | int FASTCALL(out_of_line_wait_on_bit(void *, int, int (*)(void *), unsigned)); | 151 | int out_of_line_wait_on_bit(void *, int, int (*)(void *), unsigned); |
152 | int FASTCALL(out_of_line_wait_on_bit_lock(void *, int, int (*)(void *), unsigned)); | 152 | int out_of_line_wait_on_bit_lock(void *, int, int (*)(void *), unsigned); |
153 | wait_queue_head_t *FASTCALL(bit_waitqueue(void *, int)); | 153 | wait_queue_head_t *bit_waitqueue(void *, int); |
154 | 154 | ||
155 | #define wake_up(x) __wake_up(x, TASK_NORMAL, 1, NULL) | 155 | #define wake_up(x) __wake_up(x, TASK_NORMAL, 1, NULL) |
156 | #define wake_up_nr(x, nr) __wake_up(x, TASK_NORMAL, nr, NULL) | 156 | #define wake_up_nr(x, nr) __wake_up(x, TASK_NORMAL, nr, NULL) |
@@ -437,11 +437,9 @@ extern long interruptible_sleep_on_timeout(wait_queue_head_t *q, | |||
437 | /* | 437 | /* |
438 | * Waitqueues which are removed from the waitqueue_head at wakeup time | 438 | * Waitqueues which are removed from the waitqueue_head at wakeup time |
439 | */ | 439 | */ |
440 | void FASTCALL(prepare_to_wait(wait_queue_head_t *q, | 440 | void prepare_to_wait(wait_queue_head_t *q, wait_queue_t *wait, int state); |
441 | wait_queue_t *wait, int state)); | 441 | void prepare_to_wait_exclusive(wait_queue_head_t *q, wait_queue_t *wait, int state); |
442 | void FASTCALL(prepare_to_wait_exclusive(wait_queue_head_t *q, | 442 | void finish_wait(wait_queue_head_t *q, wait_queue_t *wait); |
443 | wait_queue_t *wait, int state)); | ||
444 | void FASTCALL(finish_wait(wait_queue_head_t *q, wait_queue_t *wait)); | ||
445 | int autoremove_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key); | 443 | int autoremove_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key); |
446 | int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key); | 444 | int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key); |
447 | 445 | ||
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 7f28c32d9aca..542526c6e8ef 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h | |||
@@ -178,18 +178,17 @@ __create_workqueue_key(const char *name, int singlethread, | |||
178 | 178 | ||
179 | extern void destroy_workqueue(struct workqueue_struct *wq); | 179 | extern void destroy_workqueue(struct workqueue_struct *wq); |
180 | 180 | ||
181 | extern int FASTCALL(queue_work(struct workqueue_struct *wq, struct work_struct *work)); | 181 | extern int queue_work(struct workqueue_struct *wq, struct work_struct *work); |
182 | extern int FASTCALL(queue_delayed_work(struct workqueue_struct *wq, | 182 | extern int queue_delayed_work(struct workqueue_struct *wq, |
183 | struct delayed_work *work, unsigned long delay)); | 183 | struct delayed_work *work, unsigned long delay); |
184 | extern int queue_delayed_work_on(int cpu, struct workqueue_struct *wq, | 184 | extern int queue_delayed_work_on(int cpu, struct workqueue_struct *wq, |
185 | struct delayed_work *work, unsigned long delay); | 185 | struct delayed_work *work, unsigned long delay); |
186 | 186 | ||
187 | extern void FASTCALL(flush_workqueue(struct workqueue_struct *wq)); | 187 | extern void flush_workqueue(struct workqueue_struct *wq); |
188 | extern void flush_scheduled_work(void); | 188 | extern void flush_scheduled_work(void); |
189 | 189 | ||
190 | extern int FASTCALL(schedule_work(struct work_struct *work)); | 190 | extern int schedule_work(struct work_struct *work); |
191 | extern int FASTCALL(schedule_delayed_work(struct delayed_work *work, | 191 | extern int schedule_delayed_work(struct delayed_work *work, unsigned long delay); |
192 | unsigned long delay)); | ||
193 | extern int schedule_delayed_work_on(int cpu, struct delayed_work *work, | 192 | extern int schedule_delayed_work_on(int cpu, struct delayed_work *work, |
194 | unsigned long delay); | 193 | unsigned long delay); |
195 | extern int schedule_on_each_cpu(work_func_t func); | 194 | extern int schedule_on_each_cpu(work_func_t func); |
diff --git a/include/net/ax25.h b/include/net/ax25.h index 32a57e1dee3a..717e2192d521 100644 --- a/include/net/ax25.h +++ b/include/net/ax25.h | |||
@@ -324,6 +324,7 @@ extern void ax25_dama_on(ax25_cb *); | |||
324 | extern void ax25_dama_off(ax25_cb *); | 324 | extern void ax25_dama_off(ax25_cb *); |
325 | 325 | ||
326 | /* ax25_ds_timer.c */ | 326 | /* ax25_ds_timer.c */ |
327 | extern void ax25_ds_setup_timer(ax25_dev *); | ||
327 | extern void ax25_ds_set_timer(ax25_dev *); | 328 | extern void ax25_ds_set_timer(ax25_dev *); |
328 | extern void ax25_ds_del_timer(ax25_dev *); | 329 | extern void ax25_ds_del_timer(ax25_dev *); |
329 | extern void ax25_ds_timer(ax25_cb *); | 330 | extern void ax25_ds_timer(ax25_cb *); |
@@ -416,6 +417,7 @@ extern void ax25_calculate_rtt(ax25_cb *); | |||
416 | extern void ax25_disconnect(ax25_cb *, int); | 417 | extern void ax25_disconnect(ax25_cb *, int); |
417 | 418 | ||
418 | /* ax25_timer.c */ | 419 | /* ax25_timer.c */ |
420 | extern void ax25_setup_timers(ax25_cb *); | ||
419 | extern void ax25_start_heartbeat(ax25_cb *); | 421 | extern void ax25_start_heartbeat(ax25_cb *); |
420 | extern void ax25_start_t1timer(ax25_cb *); | 422 | extern void ax25_start_t1timer(ax25_cb *); |
421 | extern void ax25_start_t2timer(ax25_cb *); | 423 | extern void ax25_start_t2timer(ax25_cb *); |
diff --git a/include/net/ndisc.h b/include/net/ndisc.h index 6684f7efbeeb..59b70624b056 100644 --- a/include/net/ndisc.h +++ b/include/net/ndisc.h | |||
@@ -103,7 +103,6 @@ extern void ndisc_send_redirect(struct sk_buff *skb, | |||
103 | extern int ndisc_mc_map(struct in6_addr *addr, char *buf, struct net_device *dev, int dir); | 103 | extern int ndisc_mc_map(struct in6_addr *addr, char *buf, struct net_device *dev, int dir); |
104 | 104 | ||
105 | 105 | ||
106 | struct rt6_info * dflt_rt_lookup(void); | ||
107 | 106 | ||
108 | /* | 107 | /* |
109 | * IGMP | 108 | * IGMP |
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index ac72116636ca..eea7785cc757 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
@@ -508,7 +508,10 @@ struct xfrm_skb_cb { | |||
508 | } header; | 508 | } header; |
509 | 509 | ||
510 | /* Sequence number for replay protection. */ | 510 | /* Sequence number for replay protection. */ |
511 | u64 seq; | 511 | union { |
512 | u64 output; | ||
513 | __be32 input; | ||
514 | } seq; | ||
512 | }; | 515 | }; |
513 | 516 | ||
514 | #define XFRM_SKB_CB(__skb) ((struct xfrm_skb_cb *)&((__skb)->cb[0])) | 517 | #define XFRM_SKB_CB(__skb) ((struct xfrm_skb_cb *)&((__skb)->cb[0])) |
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index d1299e999723..530ff4c553f8 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h | |||
@@ -6,6 +6,7 @@ | |||
6 | #include <linux/types.h> | 6 | #include <linux/types.h> |
7 | #include <linux/workqueue.h> | 7 | #include <linux/workqueue.h> |
8 | #include <linux/mutex.h> | 8 | #include <linux/mutex.h> |
9 | #include <scsi/scsi.h> | ||
9 | 10 | ||
10 | struct request_queue; | 11 | struct request_queue; |
11 | struct block_device; | 12 | struct block_device; |
@@ -25,12 +26,15 @@ struct blk_queue_tags; | |||
25 | * NONE: Self evident. Host adapter is not capable of scatter-gather. | 26 | * NONE: Self evident. Host adapter is not capable of scatter-gather. |
26 | * ALL: Means that the host adapter module can do scatter-gather, | 27 | * ALL: Means that the host adapter module can do scatter-gather, |
27 | * and that there is no limit to the size of the table to which | 28 | * and that there is no limit to the size of the table to which |
28 | * we scatter/gather data. | 29 | * we scatter/gather data. The value we set here is the maximum |
30 | * single element sglist. To use chained sglists, the adapter | ||
31 | * has to set a value beyond ALL (and correctly use the chain | ||
32 | * handling API. | ||
29 | * Anything else: Indicates the maximum number of chains that can be | 33 | * Anything else: Indicates the maximum number of chains that can be |
30 | * used in one scatter-gather request. | 34 | * used in one scatter-gather request. |
31 | */ | 35 | */ |
32 | #define SG_NONE 0 | 36 | #define SG_NONE 0 |
33 | #define SG_ALL 0xff | 37 | #define SG_ALL SCSI_MAX_SG_SEGMENTS |
34 | 38 | ||
35 | #define MODE_UNKNOWN 0x00 | 39 | #define MODE_UNKNOWN 0x00 |
36 | #define MODE_INITIATOR 0x01 | 40 | #define MODE_INITIATOR 0x01 |