diff options
Diffstat (limited to 'include')
27 files changed, 246 insertions, 126 deletions
diff --git a/include/asm-alpha/mmu_context.h b/include/asm-alpha/mmu_context.h index 0bd7bd2ccb90..6a5be1f7debf 100644 --- a/include/asm-alpha/mmu_context.h +++ b/include/asm-alpha/mmu_context.h | |||
@@ -85,8 +85,8 @@ __reload_thread(struct pcb_struct *pcb) | |||
85 | * +-------------+----------------+--------------+ | 85 | * +-------------+----------------+--------------+ |
86 | */ | 86 | */ |
87 | 87 | ||
88 | #ifdef CONFIG_SMP | ||
89 | #include <asm/smp.h> | 88 | #include <asm/smp.h> |
89 | #ifdef CONFIG_SMP | ||
90 | #define cpu_last_asn(cpuid) (cpu_data[cpuid].last_asn) | 90 | #define cpu_last_asn(cpuid) (cpu_data[cpuid].last_asn) |
91 | #else | 91 | #else |
92 | extern unsigned long last_asn; | 92 | extern unsigned long last_asn; |
diff --git a/include/asm-h8300/atomic.h b/include/asm-h8300/atomic.h index 21f54428c86b..b4cf0ea97ede 100644 --- a/include/asm-h8300/atomic.h +++ b/include/asm-h8300/atomic.h | |||
@@ -37,6 +37,7 @@ static __inline__ int atomic_sub_return(int i, atomic_t *v) | |||
37 | } | 37 | } |
38 | 38 | ||
39 | #define atomic_sub(i, v) atomic_sub_return(i, v) | 39 | #define atomic_sub(i, v) atomic_sub_return(i, v) |
40 | #define atomic_sub_and_test(i,v) (atomic_sub_return(i, v) == 0) | ||
40 | 41 | ||
41 | static __inline__ int atomic_inc_return(atomic_t *v) | 42 | static __inline__ int atomic_inc_return(atomic_t *v) |
42 | { | 43 | { |
diff --git a/include/asm-i386/kdebug.h b/include/asm-i386/kdebug.h index 05c3117788b9..a185b5f73e7f 100644 --- a/include/asm-i386/kdebug.h +++ b/include/asm-i386/kdebug.h | |||
@@ -27,7 +27,6 @@ enum die_val { | |||
27 | DIE_GPF, | 27 | DIE_GPF, |
28 | DIE_CALL, | 28 | DIE_CALL, |
29 | DIE_NMI_IPI, | 29 | DIE_NMI_IPI, |
30 | DIE_NMI_POST, | ||
31 | DIE_PAGE_FAULT, | 30 | DIE_PAGE_FAULT, |
32 | }; | 31 | }; |
33 | 32 | ||
diff --git a/include/asm-i386/processor.h b/include/asm-i386/processor.h index 70f3515c3db0..338668bfb0a2 100644 --- a/include/asm-i386/processor.h +++ b/include/asm-i386/processor.h | |||
@@ -749,9 +749,13 @@ extern unsigned long boot_option_idle_override; | |||
749 | extern void enable_sep_cpu(void); | 749 | extern void enable_sep_cpu(void); |
750 | extern int sysenter_setup(void); | 750 | extern int sysenter_setup(void); |
751 | 751 | ||
752 | /* Defined in head.S */ | ||
753 | extern struct Xgt_desc_struct early_gdt_descr; | ||
754 | |||
752 | extern void cpu_set_gdt(int); | 755 | extern void cpu_set_gdt(int); |
753 | extern void switch_to_new_gdt(void); | 756 | extern void switch_to_new_gdt(void); |
754 | extern void cpu_init(void); | 757 | extern void cpu_init(void); |
758 | extern void init_gdt(int cpu); | ||
755 | 759 | ||
756 | extern int force_mwait; | 760 | extern int force_mwait; |
757 | 761 | ||
diff --git a/include/asm-ia64/kdebug.h b/include/asm-ia64/kdebug.h index ba211e011a1d..320cd8e754ea 100644 --- a/include/asm-ia64/kdebug.h +++ b/include/asm-ia64/kdebug.h | |||
@@ -28,14 +28,24 @@ | |||
28 | */ | 28 | */ |
29 | #include <linux/notifier.h> | 29 | #include <linux/notifier.h> |
30 | 30 | ||
31 | extern int register_page_fault_notifier(struct notifier_block *); | 31 | /* |
32 | extern int unregister_page_fault_notifier(struct notifier_block *); | 32 | * These are only here because kprobes.c wants them to implement a |
33 | * blatant layering violation. Will hopefully go away soon once all | ||
34 | * architectures are updated. | ||
35 | */ | ||
36 | static inline int register_page_fault_notifier(struct notifier_block *nb) | ||
37 | { | ||
38 | return 0; | ||
39 | } | ||
40 | static inline int unregister_page_fault_notifier(struct notifier_block *nb) | ||
41 | { | ||
42 | return 0; | ||
43 | } | ||
33 | 44 | ||
34 | enum die_val { | 45 | enum die_val { |
35 | DIE_BREAK = 1, | 46 | DIE_BREAK = 1, |
36 | DIE_FAULT, | 47 | DIE_FAULT, |
37 | DIE_OOPS, | 48 | DIE_OOPS, |
38 | DIE_PAGE_FAULT, | ||
39 | DIE_MACHINE_HALT, | 49 | DIE_MACHINE_HALT, |
40 | DIE_MACHINE_RESTART, | 50 | DIE_MACHINE_RESTART, |
41 | DIE_MCA_MONARCH_ENTER, | 51 | DIE_MCA_MONARCH_ENTER, |
diff --git a/include/asm-ia64/kprobes.h b/include/asm-ia64/kprobes.h index 2abc98b336f3..6382e52ec227 100644 --- a/include/asm-ia64/kprobes.h +++ b/include/asm-ia64/kprobes.h | |||
@@ -120,6 +120,7 @@ struct arch_specific_insn { | |||
120 | unsigned short slot; | 120 | unsigned short slot; |
121 | }; | 121 | }; |
122 | 122 | ||
123 | extern int kprobes_fault_handler(struct pt_regs *regs, int trapnr); | ||
123 | extern int kprobe_exceptions_notify(struct notifier_block *self, | 124 | extern int kprobe_exceptions_notify(struct notifier_block *self, |
124 | unsigned long val, void *data); | 125 | unsigned long val, void *data); |
125 | 126 | ||
diff --git a/include/asm-ia64/unistd.h b/include/asm-ia64/unistd.h index f049bc40ca7d..d7781a2ddefe 100644 --- a/include/asm-ia64/unistd.h +++ b/include/asm-ia64/unistd.h | |||
@@ -296,11 +296,14 @@ | |||
296 | #define __NR_getcpu 1304 | 296 | #define __NR_getcpu 1304 |
297 | #define __NR_epoll_pwait 1305 | 297 | #define __NR_epoll_pwait 1305 |
298 | #define __NR_utimensat 1306 | 298 | #define __NR_utimensat 1306 |
299 | #define __NR_signalfd 1307 | ||
300 | #define __NR_timerfd 1308 | ||
301 | #define __NR_eventfd 1309 | ||
299 | 302 | ||
300 | #ifdef __KERNEL__ | 303 | #ifdef __KERNEL__ |
301 | 304 | ||
302 | 305 | ||
303 | #define NR_syscalls 283 /* length of syscall table */ | 306 | #define NR_syscalls 286 /* length of syscall table */ |
304 | 307 | ||
305 | #define __ARCH_WANT_SYS_RT_SIGACTION | 308 | #define __ARCH_WANT_SYS_RT_SIGACTION |
306 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND | 309 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND |
diff --git a/include/asm-m32r/system.h b/include/asm-m32r/system.h index b291b2f72954..8ee73d3f316d 100644 --- a/include/asm-m32r/system.h +++ b/include/asm-m32r/system.h | |||
@@ -10,6 +10,7 @@ | |||
10 | * Copyright (C) 2004, 2006 Hirokazu Takata <takata at linux-m32r.org> | 10 | * Copyright (C) 2004, 2006 Hirokazu Takata <takata at linux-m32r.org> |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/compiler.h> | ||
13 | #include <asm/assembler.h> | 14 | #include <asm/assembler.h> |
14 | 15 | ||
15 | #ifdef __KERNEL__ | 16 | #ifdef __KERNEL__ |
@@ -154,7 +155,7 @@ extern void __xchg_called_with_bad_pointer(void); | |||
154 | #define DCACHE_CLEAR(reg0, reg1, addr) | 155 | #define DCACHE_CLEAR(reg0, reg1, addr) |
155 | #endif /* CONFIG_CHIP_M32700_TS1 */ | 156 | #endif /* CONFIG_CHIP_M32700_TS1 */ |
156 | 157 | ||
157 | static inline unsigned long | 158 | static __always_inline unsigned long |
158 | __xchg(unsigned long x, volatile void * ptr, int size) | 159 | __xchg(unsigned long x, volatile void * ptr, int size) |
159 | { | 160 | { |
160 | unsigned long flags; | 161 | unsigned long flags; |
diff --git a/include/asm-m68k/uaccess.h b/include/asm-m68k/uaccess.h index 6a4cf2081512..5c1264cf0c65 100644 --- a/include/asm-m68k/uaccess.h +++ b/include/asm-m68k/uaccess.h | |||
@@ -361,7 +361,9 @@ __constant_copy_to_user(void __user *to, const void *from, unsigned long n) | |||
361 | 361 | ||
362 | long strncpy_from_user(char *dst, const char __user *src, long count); | 362 | long strncpy_from_user(char *dst, const char __user *src, long count); |
363 | long strnlen_user(const char __user *src, long n); | 363 | long strnlen_user(const char __user *src, long n); |
364 | unsigned long clear_user(void __user *to, unsigned long n); | 364 | unsigned long __clear_user(void __user *to, unsigned long n); |
365 | |||
366 | #define clear_user __clear_user | ||
365 | 367 | ||
366 | #define strlen_user(str) strnlen_user(str, 32767) | 368 | #define strlen_user(str) strnlen_user(str, 32767) |
367 | 369 | ||
diff --git a/include/asm-sh64/dma-mapping.h b/include/asm-sh64/dma-mapping.h index 5efe906c59f7..c7c0f059cdc4 100644 --- a/include/asm-sh64/dma-mapping.h +++ b/include/asm-sh64/dma-mapping.h | |||
@@ -35,6 +35,10 @@ static inline void dma_free_coherent(struct device *dev, size_t size, | |||
35 | consistent_free(NULL, size, vaddr, dma_handle); | 35 | consistent_free(NULL, size, vaddr, dma_handle); |
36 | } | 36 | } |
37 | 37 | ||
38 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) | ||
39 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) | ||
40 | #define dma_is_consistent(d, h) (1) | ||
41 | |||
38 | static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, | 42 | static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
39 | enum dma_data_direction dir) | 43 | enum dma_data_direction dir) |
40 | { | 44 | { |
@@ -49,7 +53,7 @@ static inline dma_addr_t dma_map_single(struct device *dev, | |||
49 | if (dev->bus == &pci_bus_type) | 53 | if (dev->bus == &pci_bus_type) |
50 | return virt_to_bus(ptr); | 54 | return virt_to_bus(ptr); |
51 | #endif | 55 | #endif |
52 | dma_cache_sync(ptr, size, dir); | 56 | dma_cache_sync(dev, ptr, size, dir); |
53 | 57 | ||
54 | return virt_to_bus(ptr); | 58 | return virt_to_bus(ptr); |
55 | } | 59 | } |
@@ -63,7 +67,7 @@ static inline int dma_map_sg(struct device *dev, struct scatterlist *sg, | |||
63 | 67 | ||
64 | for (i = 0; i < nents; i++) { | 68 | for (i = 0; i < nents; i++) { |
65 | #if !defined(CONFIG_PCI) || defined(CONFIG_SH_PCIDMA_NONCOHERENT) | 69 | #if !defined(CONFIG_PCI) || defined(CONFIG_SH_PCIDMA_NONCOHERENT) |
66 | dma_cache_sync(page_address(sg[i].page) + sg[i].offset, | 70 | dma_cache_sync(dev, page_address(sg[i].page) + sg[i].offset, |
67 | sg[i].length, dir); | 71 | sg[i].length, dir); |
68 | #endif | 72 | #endif |
69 | sg[i].dma_address = page_to_phys(sg[i].page) + sg[i].offset; | 73 | sg[i].dma_address = page_to_phys(sg[i].page) + sg[i].offset; |
@@ -94,7 +98,7 @@ static inline void dma_sync_single(struct device *dev, dma_addr_t dma_handle, | |||
94 | if (dev->bus == &pci_bus_type) | 98 | if (dev->bus == &pci_bus_type) |
95 | return; | 99 | return; |
96 | #endif | 100 | #endif |
97 | dma_cache_sync(bus_to_virt(dma_handle), size, dir); | 101 | dma_cache_sync(dev, bus_to_virt(dma_handle), size, dir); |
98 | } | 102 | } |
99 | 103 | ||
100 | static inline void dma_sync_single_range(struct device *dev, | 104 | static inline void dma_sync_single_range(struct device *dev, |
@@ -106,7 +110,7 @@ static inline void dma_sync_single_range(struct device *dev, | |||
106 | if (dev->bus == &pci_bus_type) | 110 | if (dev->bus == &pci_bus_type) |
107 | return; | 111 | return; |
108 | #endif | 112 | #endif |
109 | dma_cache_sync(bus_to_virt(dma_handle) + offset, size, dir); | 113 | dma_cache_sync(dev, bus_to_virt(dma_handle) + offset, size, dir); |
110 | } | 114 | } |
111 | 115 | ||
112 | static inline void dma_sync_sg(struct device *dev, struct scatterlist *sg, | 116 | static inline void dma_sync_sg(struct device *dev, struct scatterlist *sg, |
@@ -116,7 +120,7 @@ static inline void dma_sync_sg(struct device *dev, struct scatterlist *sg, | |||
116 | 120 | ||
117 | for (i = 0; i < nelems; i++) { | 121 | for (i = 0; i < nelems; i++) { |
118 | #if !defined(CONFIG_PCI) || defined(CONFIG_SH_PCIDMA_NONCOHERENT) | 122 | #if !defined(CONFIG_PCI) || defined(CONFIG_SH_PCIDMA_NONCOHERENT) |
119 | dma_cache_sync(page_address(sg[i].page) + sg[i].offset, | 123 | dma_cache_sync(dev, page_address(sg[i].page) + sg[i].offset, |
120 | sg[i].length, dir); | 124 | sg[i].length, dir); |
121 | #endif | 125 | #endif |
122 | sg[i].dma_address = page_to_phys(sg[i].page) + sg[i].offset; | 126 | sg[i].dma_address = page_to_phys(sg[i].page) + sg[i].offset; |
diff --git a/include/asm-sh64/irq_regs.h b/include/asm-sh64/irq_regs.h new file mode 100644 index 000000000000..3dd9c0b70270 --- /dev/null +++ b/include/asm-sh64/irq_regs.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/irq_regs.h> | |||
diff --git a/include/asm-sh64/pgalloc.h b/include/asm-sh64/pgalloc.h index cb803e56cb64..6eccab770a6d 100644 --- a/include/asm-sh64/pgalloc.h +++ b/include/asm-sh64/pgalloc.h | |||
@@ -14,13 +14,9 @@ | |||
14 | * | 14 | * |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/threads.h> | ||
18 | #include <linux/mm.h> | 17 | #include <linux/mm.h> |
19 | 18 | #include <linux/quicklist.h> | |
20 | #define pgd_quicklist (current_cpu_data.pgd_quick) | 19 | #include <asm/page.h> |
21 | #define pmd_quicklist (current_cpu_data.pmd_quick) | ||
22 | #define pte_quicklist (current_cpu_data.pte_quick) | ||
23 | #define pgtable_cache_size (current_cpu_data.pgtable_cache_sz) | ||
24 | 20 | ||
25 | static inline void pgd_init(unsigned long page) | 21 | static inline void pgd_init(unsigned long page) |
26 | { | 22 | { |
@@ -45,84 +41,37 @@ static inline pgd_t *get_pgd_slow(void) | |||
45 | return ret; | 41 | return ret; |
46 | } | 42 | } |
47 | 43 | ||
48 | static inline pgd_t *get_pgd_fast(void) | 44 | static inline pgd_t *pgd_alloc(struct mm_struct *mm) |
49 | { | ||
50 | unsigned long *ret; | ||
51 | |||
52 | if ((ret = pgd_quicklist) != NULL) { | ||
53 | pgd_quicklist = (unsigned long *)(*ret); | ||
54 | ret[0] = 0; | ||
55 | pgtable_cache_size--; | ||
56 | } else | ||
57 | ret = (unsigned long *)get_pgd_slow(); | ||
58 | |||
59 | if (ret) { | ||
60 | memset(ret, 0, USER_PTRS_PER_PGD * sizeof(pgd_t)); | ||
61 | } | ||
62 | return (pgd_t *)ret; | ||
63 | } | ||
64 | |||
65 | static inline void free_pgd_fast(pgd_t *pgd) | ||
66 | { | ||
67 | *(unsigned long *)pgd = (unsigned long) pgd_quicklist; | ||
68 | pgd_quicklist = (unsigned long *) pgd; | ||
69 | pgtable_cache_size++; | ||
70 | } | ||
71 | |||
72 | static inline void free_pgd_slow(pgd_t *pgd) | ||
73 | { | 45 | { |
74 | kfree((void *)pgd); | 46 | return quicklist_alloc(0, GFP_KERNEL, NULL); |
75 | } | 47 | } |
76 | 48 | ||
77 | extern pte_t *get_pte_slow(pmd_t *pmd, unsigned long address_preadjusted); | 49 | static inline void pgd_free(pgd_t *pgd) |
78 | extern pte_t *get_pte_kernel_slow(pmd_t *pmd, unsigned long address_preadjusted); | ||
79 | |||
80 | static inline pte_t *get_pte_fast(void) | ||
81 | { | 50 | { |
82 | unsigned long *ret; | 51 | quicklist_free(0, NULL, pgd); |
83 | |||
84 | if((ret = (unsigned long *)pte_quicklist) != NULL) { | ||
85 | pte_quicklist = (unsigned long *)(*ret); | ||
86 | ret[0] = ret[1]; | ||
87 | pgtable_cache_size--; | ||
88 | } | ||
89 | return (pte_t *)ret; | ||
90 | } | 52 | } |
91 | 53 | ||
92 | static inline void free_pte_fast(pte_t *pte) | 54 | static inline struct page *pte_alloc_one(struct mm_struct *mm, |
55 | unsigned long address) | ||
93 | { | 56 | { |
94 | *(unsigned long *)pte = (unsigned long) pte_quicklist; | 57 | void *pg = quicklist_alloc(0, GFP_KERNEL, NULL); |
95 | pte_quicklist = (unsigned long *) pte; | 58 | return pg ? virt_to_page(pg) : NULL; |
96 | pgtable_cache_size++; | ||
97 | } | 59 | } |
98 | 60 | ||
99 | static inline void pte_free_kernel(pte_t *pte) | 61 | static inline void pte_free_kernel(pte_t *pte) |
100 | { | 62 | { |
101 | free_page((unsigned long)pte); | 63 | quicklist_free(0, NULL, pte); |
102 | } | 64 | } |
103 | 65 | ||
104 | static inline void pte_free(struct page *pte) | 66 | static inline void pte_free(struct page *pte) |
105 | { | 67 | { |
106 | __free_page(pte); | 68 | quicklist_free_page(0, NULL, pte); |
107 | } | 69 | } |
108 | 70 | ||
109 | static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, | 71 | static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, |
110 | unsigned long address) | 72 | unsigned long address) |
111 | { | 73 | { |
112 | pte_t *pte; | 74 | return quicklist_alloc(0, GFP_KERNEL, NULL); |
113 | |||
114 | pte = (pte_t *)__get_free_page(GFP_KERNEL | __GFP_REPEAT|__GFP_ZERO); | ||
115 | |||
116 | return pte; | ||
117 | } | ||
118 | |||
119 | static inline struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) | ||
120 | { | ||
121 | struct page *pte; | ||
122 | |||
123 | pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0); | ||
124 | |||
125 | return pte; | ||
126 | } | 75 | } |
127 | 76 | ||
128 | #define __pte_free_tlb(tlb,pte) tlb_remove_page((tlb),(pte)) | 77 | #define __pte_free_tlb(tlb,pte) tlb_remove_page((tlb),(pte)) |
@@ -142,31 +91,23 @@ static inline struct page *pte_alloc_one(struct mm_struct *mm, unsigned long add | |||
142 | 91 | ||
143 | #elif defined(CONFIG_SH64_PGTABLE_3_LEVEL) | 92 | #elif defined(CONFIG_SH64_PGTABLE_3_LEVEL) |
144 | 93 | ||
145 | static __inline__ pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address) | 94 | static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address) |
146 | { | 95 | { |
147 | pmd_t *pmd; | 96 | return quicklist_alloc(0, GFP_KERNEL, NULL); |
148 | pmd = (pmd_t *) __get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO); | ||
149 | return pmd; | ||
150 | } | 97 | } |
151 | 98 | ||
152 | static __inline__ void pmd_free(pmd_t *pmd) | 99 | static inline void pmd_free(pmd_t *pmd) |
153 | { | 100 | { |
154 | free_page((unsigned long) pmd); | 101 | quicklist_free(0, NULL, pmd); |
155 | } | 102 | } |
156 | 103 | ||
157 | #define pgd_populate(mm, pgd, pmd) pgd_set(pgd, pmd) | 104 | #define pgd_populate(mm, pgd, pmd) pgd_set(pgd, pmd) |
158 | #define __pmd_free_tlb(tlb,pmd) pmd_free(pmd) | 105 | #define __pmd_free_tlb(tlb,pmd) pmd_free(pmd) |
159 | 106 | ||
160 | #else | 107 | #else |
161 | #error "No defined page table size" | 108 | #error "No defined page table size" |
162 | #endif | 109 | #endif |
163 | 110 | ||
164 | #define check_pgt_cache() do { } while (0) | ||
165 | #define pgd_free(pgd) free_pgd_slow(pgd) | ||
166 | #define pgd_alloc(mm) get_pgd_fast() | ||
167 | |||
168 | extern int do_check_pgt_cache(int, int); | ||
169 | |||
170 | #define pmd_populate_kernel(mm, pmd, pte) \ | 111 | #define pmd_populate_kernel(mm, pmd, pte) \ |
171 | set_pmd(pmd, __pmd(_PAGE_TABLE + (unsigned long) (pte))) | 112 | set_pmd(pmd, __pmd(_PAGE_TABLE + (unsigned long) (pte))) |
172 | 113 | ||
@@ -176,4 +117,9 @@ static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, | |||
176 | set_pmd(pmd, __pmd(_PAGE_TABLE + (unsigned long) page_address (pte))); | 117 | set_pmd(pmd, __pmd(_PAGE_TABLE + (unsigned long) page_address (pte))); |
177 | } | 118 | } |
178 | 119 | ||
120 | static inline void check_pgt_cache(void) | ||
121 | { | ||
122 | quicklist_trim(0, NULL, 25, 16); | ||
123 | } | ||
124 | |||
179 | #endif /* __ASM_SH64_PGALLOC_H */ | 125 | #endif /* __ASM_SH64_PGALLOC_H */ |
diff --git a/include/asm-sh64/sci.h b/include/asm-sh64/sci.h new file mode 100644 index 000000000000..793c568b7820 --- /dev/null +++ b/include/asm-sh64/sci.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-sh/sci.h> | |||
diff --git a/include/asm-sh64/thread_info.h b/include/asm-sh64/thread_info.h index 1f825cb163c3..f6d5117c53af 100644 --- a/include/asm-sh64/thread_info.h +++ b/include/asm-sh64/thread_info.h | |||
@@ -78,7 +78,13 @@ static inline struct thread_info *current_thread_info(void) | |||
78 | #define TIF_SIGPENDING 2 /* signal pending */ | 78 | #define TIF_SIGPENDING 2 /* signal pending */ |
79 | #define TIF_NEED_RESCHED 3 /* rescheduling necessary */ | 79 | #define TIF_NEED_RESCHED 3 /* rescheduling necessary */ |
80 | #define TIF_MEMDIE 4 | 80 | #define TIF_MEMDIE 4 |
81 | #define TIF_RESTORE_SIGMASK 5 /* Restore signal mask in do_signal */ | ||
81 | 82 | ||
83 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) | ||
84 | #define _TIF_SIGPENDING (1 << TIF_SIGPENDING) | ||
85 | #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) | ||
86 | #define _TIF_MEMDIE (1 << TIF_MEMDIE) | ||
87 | #define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK) | ||
82 | 88 | ||
83 | #endif /* __KERNEL__ */ | 89 | #endif /* __KERNEL__ */ |
84 | 90 | ||
diff --git a/include/asm-sh64/unistd.h b/include/asm-sh64/unistd.h index 1f38a7aacaaf..ea3adc600b41 100644 --- a/include/asm-sh64/unistd.h +++ b/include/asm-sh64/unistd.h | |||
@@ -9,14 +9,14 @@ | |||
9 | * include/asm-sh64/unistd.h | 9 | * include/asm-sh64/unistd.h |
10 | * | 10 | * |
11 | * Copyright (C) 2000, 2001 Paolo Alberelli | 11 | * Copyright (C) 2000, 2001 Paolo Alberelli |
12 | * Copyright (C) 2003 Paul Mundt | 12 | * Copyright (C) 2003 - 2007 Paul Mundt |
13 | * Copyright (C) 2004 Sean McGoogan | 13 | * Copyright (C) 2004 Sean McGoogan |
14 | * | 14 | * |
15 | * This file contains the system call numbers. | 15 | * This file contains the system call numbers. |
16 | * | 16 | * |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #define __NR_setup 0 /* used only by init, to get system going */ | 19 | #define __NR_restart_syscall 0 |
20 | #define __NR_exit 1 | 20 | #define __NR_exit 1 |
21 | #define __NR_fork 2 | 21 | #define __NR_fork 2 |
22 | #define __NR_read 3 | 22 | #define __NR_read 3 |
@@ -196,8 +196,8 @@ | |||
196 | #define __NR_rt_sigtimedwait 177 | 196 | #define __NR_rt_sigtimedwait 177 |
197 | #define __NR_rt_sigqueueinfo 178 | 197 | #define __NR_rt_sigqueueinfo 178 |
198 | #define __NR_rt_sigsuspend 179 | 198 | #define __NR_rt_sigsuspend 179 |
199 | #define __NR_pread 180 | 199 | #define __NR_pread64 180 |
200 | #define __NR_pwrite 181 | 200 | #define __NR_pwrite64 181 |
201 | #define __NR_chown 182 | 201 | #define __NR_chown 182 |
202 | #define __NR_getcwd 183 | 202 | #define __NR_getcwd 183 |
203 | #define __NR_capget 184 | 203 | #define __NR_capget 184 |
@@ -343,10 +343,41 @@ | |||
343 | #define __NR_inotify_init 318 | 343 | #define __NR_inotify_init 318 |
344 | #define __NR_inotify_add_watch 319 | 344 | #define __NR_inotify_add_watch 319 |
345 | #define __NR_inotify_rm_watch 320 | 345 | #define __NR_inotify_rm_watch 320 |
346 | /* 321 is unused */ | ||
347 | #define __NR_migrate_pages 322 | ||
348 | #define __NR_openat 323 | ||
349 | #define __NR_mkdirat 324 | ||
350 | #define __NR_mknodat 325 | ||
351 | #define __NR_fchownat 326 | ||
352 | #define __NR_futimesat 327 | ||
353 | #define __NR_fstatat64 328 | ||
354 | #define __NR_unlinkat 329 | ||
355 | #define __NR_renameat 330 | ||
356 | #define __NR_linkat 331 | ||
357 | #define __NR_symlinkat 332 | ||
358 | #define __NR_readlinkat 333 | ||
359 | #define __NR_fchmodat 334 | ||
360 | #define __NR_faccessat 335 | ||
361 | #define __NR_pselect6 336 | ||
362 | #define __NR_ppoll 337 | ||
363 | #define __NR_unshare 338 | ||
364 | #define __NR_set_robust_list 339 | ||
365 | #define __NR_get_robust_list 340 | ||
366 | #define __NR_splice 341 | ||
367 | #define __NR_sync_file_range 342 | ||
368 | #define __NR_tee 343 | ||
369 | #define __NR_vmsplice 344 | ||
370 | #define __NR_move_pages 345 | ||
371 | #define __NR_getcpu 346 | ||
372 | #define __NR_epoll_pwait 347 | ||
373 | #define __NR_utimensat 348 | ||
374 | #define __NR_signalfd 349 | ||
375 | #define __NR_timerfd 350 | ||
376 | #define __NR_eventfd 351 | ||
346 | 377 | ||
347 | #ifdef __KERNEL__ | 378 | #ifdef __KERNEL__ |
348 | 379 | ||
349 | #define NR_syscalls 321 | 380 | #define NR_syscalls 352 |
350 | 381 | ||
351 | #define __ARCH_WANT_IPC_PARSE_VERSION | 382 | #define __ARCH_WANT_IPC_PARSE_VERSION |
352 | #define __ARCH_WANT_OLD_READDIR | 383 | #define __ARCH_WANT_OLD_READDIR |
diff --git a/include/asm-sparc/kdebug.h b/include/asm-sparc/kdebug.h index 404d80767323..631f15ffef73 100644 --- a/include/asm-sparc/kdebug.h +++ b/include/asm-sparc/kdebug.h | |||
@@ -58,6 +58,10 @@ static inline void sp_enter_debugger(void) | |||
58 | sp_enter_debugger(); \ | 58 | sp_enter_debugger(); \ |
59 | } while(0) | 59 | } while(0) |
60 | 60 | ||
61 | enum die_val { | ||
62 | DIE_UNUSED, | ||
63 | }; | ||
64 | |||
61 | #endif /* !(__ASSEMBLY__) */ | 65 | #endif /* !(__ASSEMBLY__) */ |
62 | 66 | ||
63 | /* Some nice offset defines for assembler code. */ | 67 | /* Some nice offset defines for assembler code. */ |
@@ -66,8 +70,4 @@ static inline void sp_enter_debugger(void) | |||
66 | #define KDEBUG_DUNNO2_OFF 0x8 | 70 | #define KDEBUG_DUNNO2_OFF 0x8 |
67 | #define KDEBUG_TEACH_OFF 0xc | 71 | #define KDEBUG_TEACH_OFF 0xc |
68 | 72 | ||
69 | enum die_val { | ||
70 | DIE_UNUSED, | ||
71 | }; | ||
72 | |||
73 | #endif /* !(_SPARC_KDEBUG_H) */ | 73 | #endif /* !(_SPARC_KDEBUG_H) */ |
diff --git a/include/asm-sparc/system.h b/include/asm-sparc/system.h index 8b6d9c9c8b93..8b4e23b3bb38 100644 --- a/include/asm-sparc/system.h +++ b/include/asm-sparc/system.h | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <asm/psr.h> | 11 | #include <asm/psr.h> |
12 | #include <asm/ptrace.h> | 12 | #include <asm/ptrace.h> |
13 | #include <asm/btfixup.h> | 13 | #include <asm/btfixup.h> |
14 | #include <asm/smp.h> | ||
14 | 15 | ||
15 | #ifndef __ASSEMBLY__ | 16 | #ifndef __ASSEMBLY__ |
16 | 17 | ||
diff --git a/include/asm-sparc64/dma-mapping.h b/include/asm-sparc64/dma-mapping.h index 2f858a2df94a..9329429fb7f6 100644 --- a/include/asm-sparc64/dma-mapping.h +++ b/include/asm-sparc64/dma-mapping.h | |||
@@ -10,10 +10,13 @@ | |||
10 | /* need struct page definitions */ | 10 | /* need struct page definitions */ |
11 | #include <linux/mm.h> | 11 | #include <linux/mm.h> |
12 | 12 | ||
13 | #include <asm/of_device.h> | ||
14 | |||
13 | static inline int | 15 | static inline int |
14 | dma_supported(struct device *dev, u64 mask) | 16 | dma_supported(struct device *dev, u64 mask) |
15 | { | 17 | { |
16 | BUG_ON(dev->bus != &pci_bus_type); | 18 | BUG_ON(dev->bus != &pci_bus_type && |
19 | dev->bus != &ebus_bus_type); | ||
17 | 20 | ||
18 | return pci_dma_supported(to_pci_dev(dev), mask); | 21 | return pci_dma_supported(to_pci_dev(dev), mask); |
19 | } | 22 | } |
@@ -21,7 +24,8 @@ dma_supported(struct device *dev, u64 mask) | |||
21 | static inline int | 24 | static inline int |
22 | dma_set_mask(struct device *dev, u64 dma_mask) | 25 | dma_set_mask(struct device *dev, u64 dma_mask) |
23 | { | 26 | { |
24 | BUG_ON(dev->bus != &pci_bus_type); | 27 | BUG_ON(dev->bus != &pci_bus_type && |
28 | dev->bus != &ebus_bus_type); | ||
25 | 29 | ||
26 | return pci_set_dma_mask(to_pci_dev(dev), dma_mask); | 30 | return pci_set_dma_mask(to_pci_dev(dev), dma_mask); |
27 | } | 31 | } |
@@ -30,7 +34,8 @@ static inline void * | |||
30 | dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, | 34 | dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, |
31 | gfp_t flag) | 35 | gfp_t flag) |
32 | { | 36 | { |
33 | BUG_ON(dev->bus != &pci_bus_type); | 37 | BUG_ON(dev->bus != &pci_bus_type && |
38 | dev->bus != &ebus_bus_type); | ||
34 | 39 | ||
35 | return pci_iommu_ops->alloc_consistent(to_pci_dev(dev), size, dma_handle, flag); | 40 | return pci_iommu_ops->alloc_consistent(to_pci_dev(dev), size, dma_handle, flag); |
36 | } | 41 | } |
@@ -39,7 +44,8 @@ static inline void | |||
39 | dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, | 44 | dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, |
40 | dma_addr_t dma_handle) | 45 | dma_addr_t dma_handle) |
41 | { | 46 | { |
42 | BUG_ON(dev->bus != &pci_bus_type); | 47 | BUG_ON(dev->bus != &pci_bus_type && |
48 | dev->bus != &ebus_bus_type); | ||
43 | 49 | ||
44 | pci_free_consistent(to_pci_dev(dev), size, cpu_addr, dma_handle); | 50 | pci_free_consistent(to_pci_dev(dev), size, cpu_addr, dma_handle); |
45 | } | 51 | } |
@@ -48,7 +54,8 @@ static inline dma_addr_t | |||
48 | dma_map_single(struct device *dev, void *cpu_addr, size_t size, | 54 | dma_map_single(struct device *dev, void *cpu_addr, size_t size, |
49 | enum dma_data_direction direction) | 55 | enum dma_data_direction direction) |
50 | { | 56 | { |
51 | BUG_ON(dev->bus != &pci_bus_type); | 57 | BUG_ON(dev->bus != &pci_bus_type && |
58 | dev->bus != &ebus_bus_type); | ||
52 | 59 | ||
53 | return pci_map_single(to_pci_dev(dev), cpu_addr, size, (int)direction); | 60 | return pci_map_single(to_pci_dev(dev), cpu_addr, size, (int)direction); |
54 | } | 61 | } |
@@ -57,7 +64,8 @@ static inline void | |||
57 | dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, | 64 | dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, |
58 | enum dma_data_direction direction) | 65 | enum dma_data_direction direction) |
59 | { | 66 | { |
60 | BUG_ON(dev->bus != &pci_bus_type); | 67 | BUG_ON(dev->bus != &pci_bus_type && |
68 | dev->bus != &ebus_bus_type); | ||
61 | 69 | ||
62 | pci_unmap_single(to_pci_dev(dev), dma_addr, size, (int)direction); | 70 | pci_unmap_single(to_pci_dev(dev), dma_addr, size, (int)direction); |
63 | } | 71 | } |
@@ -67,7 +75,8 @@ dma_map_page(struct device *dev, struct page *page, | |||
67 | unsigned long offset, size_t size, | 75 | unsigned long offset, size_t size, |
68 | enum dma_data_direction direction) | 76 | enum dma_data_direction direction) |
69 | { | 77 | { |
70 | BUG_ON(dev->bus != &pci_bus_type); | 78 | BUG_ON(dev->bus != &pci_bus_type && |
79 | dev->bus != &ebus_bus_type); | ||
71 | 80 | ||
72 | return pci_map_page(to_pci_dev(dev), page, offset, size, (int)direction); | 81 | return pci_map_page(to_pci_dev(dev), page, offset, size, (int)direction); |
73 | } | 82 | } |
@@ -76,7 +85,8 @@ static inline void | |||
76 | dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size, | 85 | dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size, |
77 | enum dma_data_direction direction) | 86 | enum dma_data_direction direction) |
78 | { | 87 | { |
79 | BUG_ON(dev->bus != &pci_bus_type); | 88 | BUG_ON(dev->bus != &pci_bus_type && |
89 | dev->bus != &ebus_bus_type); | ||
80 | 90 | ||
81 | pci_unmap_page(to_pci_dev(dev), dma_address, size, (int)direction); | 91 | pci_unmap_page(to_pci_dev(dev), dma_address, size, (int)direction); |
82 | } | 92 | } |
@@ -85,7 +95,8 @@ static inline int | |||
85 | dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, | 95 | dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, |
86 | enum dma_data_direction direction) | 96 | enum dma_data_direction direction) |
87 | { | 97 | { |
88 | BUG_ON(dev->bus != &pci_bus_type); | 98 | BUG_ON(dev->bus != &pci_bus_type && |
99 | dev->bus != &ebus_bus_type); | ||
89 | 100 | ||
90 | return pci_map_sg(to_pci_dev(dev), sg, nents, (int)direction); | 101 | return pci_map_sg(to_pci_dev(dev), sg, nents, (int)direction); |
91 | } | 102 | } |
@@ -94,7 +105,8 @@ static inline void | |||
94 | dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries, | 105 | dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries, |
95 | enum dma_data_direction direction) | 106 | enum dma_data_direction direction) |
96 | { | 107 | { |
97 | BUG_ON(dev->bus != &pci_bus_type); | 108 | BUG_ON(dev->bus != &pci_bus_type && |
109 | dev->bus != &ebus_bus_type); | ||
98 | 110 | ||
99 | pci_unmap_sg(to_pci_dev(dev), sg, nhwentries, (int)direction); | 111 | pci_unmap_sg(to_pci_dev(dev), sg, nhwentries, (int)direction); |
100 | } | 112 | } |
@@ -103,7 +115,8 @@ static inline void | |||
103 | dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size, | 115 | dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size, |
104 | enum dma_data_direction direction) | 116 | enum dma_data_direction direction) |
105 | { | 117 | { |
106 | BUG_ON(dev->bus != &pci_bus_type); | 118 | BUG_ON(dev->bus != &pci_bus_type && |
119 | dev->bus != &ebus_bus_type); | ||
107 | 120 | ||
108 | pci_dma_sync_single_for_cpu(to_pci_dev(dev), dma_handle, | 121 | pci_dma_sync_single_for_cpu(to_pci_dev(dev), dma_handle, |
109 | size, (int)direction); | 122 | size, (int)direction); |
@@ -113,7 +126,8 @@ static inline void | |||
113 | dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t size, | 126 | dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t size, |
114 | enum dma_data_direction direction) | 127 | enum dma_data_direction direction) |
115 | { | 128 | { |
116 | BUG_ON(dev->bus != &pci_bus_type); | 129 | BUG_ON(dev->bus != &pci_bus_type && |
130 | dev->bus != &ebus_bus_type); | ||
117 | 131 | ||
118 | pci_dma_sync_single_for_device(to_pci_dev(dev), dma_handle, | 132 | pci_dma_sync_single_for_device(to_pci_dev(dev), dma_handle, |
119 | size, (int)direction); | 133 | size, (int)direction); |
@@ -123,7 +137,8 @@ static inline void | |||
123 | dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems, | 137 | dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems, |
124 | enum dma_data_direction direction) | 138 | enum dma_data_direction direction) |
125 | { | 139 | { |
126 | BUG_ON(dev->bus != &pci_bus_type); | 140 | BUG_ON(dev->bus != &pci_bus_type && |
141 | dev->bus != &ebus_bus_type); | ||
127 | 142 | ||
128 | pci_dma_sync_sg_for_cpu(to_pci_dev(dev), sg, nelems, (int)direction); | 143 | pci_dma_sync_sg_for_cpu(to_pci_dev(dev), sg, nelems, (int)direction); |
129 | } | 144 | } |
@@ -132,7 +147,8 @@ static inline void | |||
132 | dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems, | 147 | dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems, |
133 | enum dma_data_direction direction) | 148 | enum dma_data_direction direction) |
134 | { | 149 | { |
135 | BUG_ON(dev->bus != &pci_bus_type); | 150 | BUG_ON(dev->bus != &pci_bus_type && |
151 | dev->bus != &ebus_bus_type); | ||
136 | 152 | ||
137 | pci_dma_sync_sg_for_device(to_pci_dev(dev), sg, nelems, (int)direction); | 153 | pci_dma_sync_sg_for_device(to_pci_dev(dev), sg, nelems, (int)direction); |
138 | } | 154 | } |
diff --git a/include/asm-sparc64/hypervisor.h b/include/asm-sparc64/hypervisor.h index 612bf319753f..a5558c87556d 100644 --- a/include/asm-sparc64/hypervisor.h +++ b/include/asm-sparc64/hypervisor.h | |||
@@ -940,6 +940,54 @@ struct hv_fault_status { | |||
940 | */ | 940 | */ |
941 | #define HV_FAST_CONS_PUTCHAR 0x61 | 941 | #define HV_FAST_CONS_PUTCHAR 0x61 |
942 | 942 | ||
943 | /* con_read() | ||
944 | * TRAP: HV_FAST_TRAP | ||
945 | * FUNCTION: HV_FAST_CONS_READ | ||
946 | * ARG0: buffer real address | ||
947 | * ARG1: buffer size in bytes | ||
948 | * RET0: status | ||
949 | * RET1: bytes read or BREAK or HUP | ||
950 | * ERRORS: EWOULDBLOCK No character available. | ||
951 | * | ||
952 | * Reads characters into a buffer from the console device. If no | ||
953 | * character is available then an EWOULDBLOCK error is returned. | ||
954 | * If a character is available, then the returned status is EOK | ||
955 | * and the number of bytes read into the given buffer is provided | ||
956 | * in RET1. | ||
957 | * | ||
958 | * A virtual BREAK is represented by the 64-bit RET1 value -1. | ||
959 | * | ||
960 | * A virtual HUP signal is represented by the 64-bit RET1 value -2. | ||
961 | * | ||
962 | * If BREAK or HUP are indicated, no bytes were read into buffer. | ||
963 | */ | ||
964 | #define HV_FAST_CONS_READ 0x62 | ||
965 | |||
966 | /* con_write() | ||
967 | * TRAP: HV_FAST_TRAP | ||
968 | * FUNCTION: HV_FAST_CONS_WRITE | ||
969 | * ARG0: buffer real address | ||
970 | * ARG1: buffer size in bytes | ||
971 | * RET0: status | ||
972 | * RET1: bytes written | ||
973 | * ERRORS: EWOULDBLOCK Output buffer currently full, would block | ||
974 | * | ||
975 | * Send a characters in buffer to the console device. Breaks must be | ||
976 | * sent using con_putchar(). | ||
977 | */ | ||
978 | #define HV_FAST_CONS_WRITE 0x63 | ||
979 | |||
980 | #ifndef __ASSEMBLY__ | ||
981 | extern long sun4v_con_getchar(long *status); | ||
982 | extern long sun4v_con_putchar(long c); | ||
983 | extern long sun4v_con_read(unsigned long buffer, | ||
984 | unsigned long size, | ||
985 | unsigned long *bytes_read); | ||
986 | extern unsigned long sun4v_con_write(unsigned long buffer, | ||
987 | unsigned long size, | ||
988 | unsigned long *bytes_written); | ||
989 | #endif | ||
990 | |||
943 | /* Trap trace services. | 991 | /* Trap trace services. |
944 | * | 992 | * |
945 | * The hypervisor provides a trap tracing capability for privileged | 993 | * The hypervisor provides a trap tracing capability for privileged |
@@ -2121,8 +2169,41 @@ struct hv_mmu_statistics { | |||
2121 | #define HV_FAST_MMUSTAT_INFO 0x103 | 2169 | #define HV_FAST_MMUSTAT_INFO 0x103 |
2122 | 2170 | ||
2123 | /* Function numbers for HV_CORE_TRAP. */ | 2171 | /* Function numbers for HV_CORE_TRAP. */ |
2124 | #define HV_CORE_VER 0x00 | 2172 | #define HV_CORE_SET_VER 0x00 |
2125 | #define HV_CORE_PUTCHAR 0x01 | 2173 | #define HV_CORE_PUTCHAR 0x01 |
2126 | #define HV_CORE_EXIT 0x02 | 2174 | #define HV_CORE_EXIT 0x02 |
2175 | #define HV_CORE_GET_VER 0x03 | ||
2176 | |||
2177 | /* Hypervisor API groups for use with HV_CORE_SET_VER and | ||
2178 | * HV_CORE_GET_VER. | ||
2179 | */ | ||
2180 | #define HV_GRP_SUN4V 0x0000 | ||
2181 | #define HV_GRP_CORE 0x0001 | ||
2182 | #define HV_GRP_INTR 0x0002 | ||
2183 | #define HV_GRP_SOFT_STATE 0x0003 | ||
2184 | #define HV_GRP_PCI 0x0100 | ||
2185 | #define HV_GRP_LDOM 0x0101 | ||
2186 | #define HV_GRP_SVC_CHAN 0x0102 | ||
2187 | #define HV_GRP_NCS 0x0103 | ||
2188 | #define HV_GRP_NIAG_PERF 0x0200 | ||
2189 | #define HV_GRP_FIRE_PERF 0x0201 | ||
2190 | #define HV_GRP_DIAG 0x0300 | ||
2191 | |||
2192 | #ifndef __ASSEMBLY__ | ||
2193 | extern unsigned long sun4v_get_version(unsigned long group, | ||
2194 | unsigned long *major, | ||
2195 | unsigned long *minor); | ||
2196 | extern unsigned long sun4v_set_version(unsigned long group, | ||
2197 | unsigned long major, | ||
2198 | unsigned long minor, | ||
2199 | unsigned long *actual_minor); | ||
2200 | |||
2201 | extern int sun4v_hvapi_register(unsigned long group, unsigned long major, | ||
2202 | unsigned long *minor); | ||
2203 | extern void sun4v_hvapi_unregister(unsigned long group); | ||
2204 | extern int sun4v_hvapi_get(unsigned long group, | ||
2205 | unsigned long *major, | ||
2206 | unsigned long *minor); | ||
2207 | #endif | ||
2127 | 2208 | ||
2128 | #endif /* !(_SPARC64_HYPERVISOR_H) */ | 2209 | #endif /* !(_SPARC64_HYPERVISOR_H) */ |
diff --git a/include/asm-x86_64/kdebug.h b/include/asm-x86_64/kdebug.h index 74feae945a26..d7e2bcf49e4f 100644 --- a/include/asm-x86_64/kdebug.h +++ b/include/asm-x86_64/kdebug.h | |||
@@ -22,7 +22,6 @@ enum die_val { | |||
22 | DIE_GPF, | 22 | DIE_GPF, |
23 | DIE_CALL, | 23 | DIE_CALL, |
24 | DIE_NMI_IPI, | 24 | DIE_NMI_IPI, |
25 | DIE_NMI_POST, | ||
26 | DIE_PAGE_FAULT, | 25 | DIE_PAGE_FAULT, |
27 | }; | 26 | }; |
28 | 27 | ||
diff --git a/include/linux/compat.h b/include/linux/compat.h index 636502c02734..0e69d2cf14aa 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
@@ -261,5 +261,11 @@ asmlinkage long compat_sys_epoll_pwait(int epfd, | |||
261 | asmlinkage long compat_sys_utimensat(unsigned int dfd, char __user *filename, | 261 | asmlinkage long compat_sys_utimensat(unsigned int dfd, char __user *filename, |
262 | struct compat_timespec __user *t, int flags); | 262 | struct compat_timespec __user *t, int flags); |
263 | 263 | ||
264 | asmlinkage long compat_sys_signalfd(int ufd, | ||
265 | const compat_sigset_t __user *sigmask, | ||
266 | compat_size_t sigsetsize); | ||
267 | asmlinkage long compat_sys_timerfd(int ufd, int clockid, int flags, | ||
268 | const struct compat_itimerspec __user *utmr); | ||
269 | |||
264 | #endif /* CONFIG_COMPAT */ | 270 | #endif /* CONFIG_COMPAT */ |
265 | #endif /* _LINUX_COMPAT_H */ | 271 | #endif /* _LINUX_COMPAT_H */ |
diff --git a/include/linux/ide.h b/include/linux/ide.h index df4e6a510310..07aba87d369d 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -1281,7 +1281,6 @@ struct drive_list_entry { | |||
1281 | int ide_in_drive_list(struct hd_driveid *, const struct drive_list_entry *); | 1281 | int ide_in_drive_list(struct hd_driveid *, const struct drive_list_entry *); |
1282 | int __ide_dma_bad_drive(ide_drive_t *); | 1282 | int __ide_dma_bad_drive(ide_drive_t *); |
1283 | int __ide_dma_good_drive(ide_drive_t *); | 1283 | int __ide_dma_good_drive(ide_drive_t *); |
1284 | int ide_use_dma(ide_drive_t *); | ||
1285 | u8 ide_max_dma_mode(ide_drive_t *); | 1284 | u8 ide_max_dma_mode(ide_drive_t *); |
1286 | int ide_tune_dma(ide_drive_t *); | 1285 | int ide_tune_dma(ide_drive_t *); |
1287 | void ide_dma_off(ide_drive_t *); | 1286 | void ide_dma_off(ide_drive_t *); |
@@ -1309,7 +1308,6 @@ extern int __ide_dma_timeout(ide_drive_t *); | |||
1309 | #endif /* CONFIG_BLK_DEV_IDEDMA_PCI */ | 1308 | #endif /* CONFIG_BLK_DEV_IDEDMA_PCI */ |
1310 | 1309 | ||
1311 | #else | 1310 | #else |
1312 | static inline int ide_use_dma(ide_drive_t *drive) { return 0; } | ||
1313 | static inline u8 ide_max_dma_mode(ide_drive_t *drive) { return 0; } | 1311 | static inline u8 ide_max_dma_mode(ide_drive_t *drive) { return 0; } |
1314 | static inline int ide_tune_dma(ide_drive_t *drive) { return 0; } | 1312 | static inline int ide_tune_dma(ide_drive_t *drive) { return 0; } |
1315 | static inline void ide_dma_off(ide_drive_t *drive) { ; } | 1313 | static inline void ide_dma_off(ide_drive_t *drive) { ; } |
@@ -1357,7 +1355,6 @@ static inline void ide_set_hwifdata (ide_hwif_t * hwif, void *data) | |||
1357 | 1355 | ||
1358 | /* ide-lib.c */ | 1356 | /* ide-lib.c */ |
1359 | u8 ide_rate_filter(ide_drive_t *, u8); | 1357 | u8 ide_rate_filter(ide_drive_t *, u8); |
1360 | extern int ide_dma_enable(ide_drive_t *drive); | ||
1361 | extern char *ide_xfer_verbose(u8 xfer_rate); | 1358 | extern char *ide_xfer_verbose(u8 xfer_rate); |
1362 | extern void ide_toggle_bounce(ide_drive_t *drive, int on); | 1359 | extern void ide_toggle_bounce(ide_drive_t *drive, int on); |
1363 | extern int ide_set_xfer_rate(ide_drive_t *drive, u8 rate); | 1360 | extern int ide_set_xfer_rate(ide_drive_t *drive, u8 rate); |
diff --git a/include/linux/init.h b/include/linux/init.h index 8bc32bb2fce2..e007ae4dc41e 100644 --- a/include/linux/init.h +++ b/include/linux/init.h | |||
@@ -52,14 +52,9 @@ | |||
52 | #endif | 52 | #endif |
53 | 53 | ||
54 | /* For assembly routines */ | 54 | /* For assembly routines */ |
55 | #ifdef CONFIG_HOTPLUG_CPU | ||
56 | #define __INIT .section ".text","ax" | ||
57 | #define __INITDATA .section ".data","aw" | ||
58 | #else | ||
59 | #define __INIT .section ".init.text","ax" | 55 | #define __INIT .section ".init.text","ax" |
60 | #define __INITDATA .section ".init.data","aw" | ||
61 | #endif | ||
62 | #define __FINIT .previous | 56 | #define __FINIT .previous |
57 | #define __INITDATA .section ".init.data","aw" | ||
63 | 58 | ||
64 | #ifndef __ASSEMBLY__ | 59 | #ifndef __ASSEMBLY__ |
65 | /* | 60 | /* |
diff --git a/include/linux/io.h b/include/linux/io.h index 09d351236379..8423dd376514 100644 --- a/include/linux/io.h +++ b/include/linux/io.h | |||
@@ -27,8 +27,16 @@ struct device; | |||
27 | void __iowrite32_copy(void __iomem *to, const void *from, size_t count); | 27 | void __iowrite32_copy(void __iomem *to, const void *from, size_t count); |
28 | void __iowrite64_copy(void __iomem *to, const void *from, size_t count); | 28 | void __iowrite64_copy(void __iomem *to, const void *from, size_t count); |
29 | 29 | ||
30 | #ifdef CONFIG_MMU | ||
30 | int ioremap_page_range(unsigned long addr, unsigned long end, | 31 | int ioremap_page_range(unsigned long addr, unsigned long end, |
31 | unsigned long phys_addr, pgprot_t prot); | 32 | unsigned long phys_addr, pgprot_t prot); |
33 | #else | ||
34 | static inline int ioremap_page_range(unsigned long addr, unsigned long end, | ||
35 | unsigned long phys_addr, pgprot_t prot) | ||
36 | { | ||
37 | return 0; | ||
38 | } | ||
39 | #endif | ||
32 | 40 | ||
33 | /* | 41 | /* |
34 | * Managed iomap interface | 42 | * Managed iomap interface |
diff --git a/include/linux/major.h b/include/linux/major.h index 0a74c52924c9..7e7c9093919a 100644 --- a/include/linux/major.h +++ b/include/linux/major.h | |||
@@ -152,6 +152,8 @@ | |||
152 | #define USB_ACM_AUX_MAJOR 167 | 152 | #define USB_ACM_AUX_MAJOR 167 |
153 | #define USB_CHAR_MAJOR 180 | 153 | #define USB_CHAR_MAJOR 180 |
154 | 154 | ||
155 | #define MMC_BLOCK_MAJOR 179 | ||
156 | |||
155 | #define VXVM_MAJOR 199 /* VERITAS volume i/o driver */ | 157 | #define VXVM_MAJOR 199 /* VERITAS volume i/o driver */ |
156 | #define VXSPEC_MAJOR 200 /* VERITAS volume config driver */ | 158 | #define VXSPEC_MAJOR 200 /* VERITAS volume config driver */ |
157 | #define VXDMP_MAJOR 201 /* VERITAS volume multipath driver */ | 159 | #define VXDMP_MAJOR 201 /* VERITAS volume multipath driver */ |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index ccd85e4d3b8f..3b1fbf49fa7d 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -1288,6 +1288,7 @@ | |||
1288 | #define PCI_DEVICE_ID_VIA_8363_0 0x0305 | 1288 | #define PCI_DEVICE_ID_VIA_8363_0 0x0305 |
1289 | #define PCI_DEVICE_ID_VIA_P4M800CE 0x0314 | 1289 | #define PCI_DEVICE_ID_VIA_P4M800CE 0x0314 |
1290 | #define PCI_DEVICE_ID_VIA_P4M890 0x0327 | 1290 | #define PCI_DEVICE_ID_VIA_P4M890 0x0327 |
1291 | #define PCI_DEVICE_ID_VIA_VT3324 0x0324 | ||
1291 | #define PCI_DEVICE_ID_VIA_VT3336 0x0336 | 1292 | #define PCI_DEVICE_ID_VIA_VT3336 0x0336 |
1292 | #define PCI_DEVICE_ID_VIA_8371_0 0x0391 | 1293 | #define PCI_DEVICE_ID_VIA_8371_0 0x0391 |
1293 | #define PCI_DEVICE_ID_VIA_8501_0 0x0501 | 1294 | #define PCI_DEVICE_ID_VIA_8501_0 0x0501 |
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h index ea27065e80e6..c6c1f4a120e3 100644 --- a/include/linux/slub_def.h +++ b/include/linux/slub_def.h | |||
@@ -60,7 +60,8 @@ struct kmem_cache { | |||
60 | #define KMALLOC_SHIFT_LOW 3 | 60 | #define KMALLOC_SHIFT_LOW 3 |
61 | 61 | ||
62 | #ifdef CONFIG_LARGE_ALLOCS | 62 | #ifdef CONFIG_LARGE_ALLOCS |
63 | #define KMALLOC_SHIFT_HIGH 25 | 63 | #define KMALLOC_SHIFT_HIGH ((MAX_ORDER + PAGE_SHIFT) =< 25 ? \ |
64 | (MAX_ORDER + PAGE_SHIFT - 1) : 25) | ||
64 | #else | 65 | #else |
65 | #if !defined(CONFIG_MMU) || NR_CPUS > 512 || MAX_NUMNODES > 256 | 66 | #if !defined(CONFIG_MMU) || NR_CPUS > 512 || MAX_NUMNODES > 256 |
66 | #define KMALLOC_SHIFT_HIGH 20 | 67 | #define KMALLOC_SHIFT_HIGH 20 |
@@ -87,6 +88,9 @@ static inline int kmalloc_index(int size) | |||
87 | */ | 88 | */ |
88 | WARN_ON_ONCE(size == 0); | 89 | WARN_ON_ONCE(size == 0); |
89 | 90 | ||
91 | if (size > (1 << KMALLOC_SHIFT_HIGH)) | ||
92 | return -1; | ||
93 | |||
90 | if (size > 64 && size <= 96) | 94 | if (size > 64 && size <= 96) |
91 | return 1; | 95 | return 1; |
92 | if (size > 128 && size <= 192) | 96 | if (size > 128 && size <= 192) |