diff options
Diffstat (limited to 'arch/frv')
-rw-r--r-- | arch/frv/Kconfig | 1 | ||||
-rw-r--r-- | arch/frv/include/asm/atomic.h | 6 | ||||
-rw-r--r-- | arch/frv/include/asm/bitops.h | 3 | ||||
-rw-r--r-- | arch/frv/include/asm/hardirq.h | 2 | ||||
-rw-r--r-- | arch/frv/include/asm/processor.h | 1 | ||||
-rw-r--r-- | arch/frv/include/asm/ptrace.h | 1 | ||||
-rw-r--r-- | arch/frv/kernel/entry.S | 2 | ||||
-rw-r--r-- | arch/frv/kernel/irq.c | 2 | ||||
-rw-r--r-- | arch/frv/kernel/process.c | 5 | ||||
-rw-r--r-- | arch/frv/mm/pgalloc.c | 8 |
10 files changed, 9 insertions, 22 deletions
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig index cb884e48942..bad27a6ff40 100644 --- a/arch/frv/Kconfig +++ b/arch/frv/Kconfig | |||
@@ -7,6 +7,7 @@ config FRV | |||
7 | select HAVE_PERF_EVENTS | 7 | select HAVE_PERF_EVENTS |
8 | select HAVE_GENERIC_HARDIRQS | 8 | select HAVE_GENERIC_HARDIRQS |
9 | select GENERIC_IRQ_SHOW | 9 | select GENERIC_IRQ_SHOW |
10 | select ARCH_HAVE_NMI_SAFE_CMPXCHG | ||
10 | 11 | ||
11 | config ZONE_DMA | 12 | config ZONE_DMA |
12 | bool | 13 | bool |
diff --git a/arch/frv/include/asm/atomic.h b/arch/frv/include/asm/atomic.h index fae32c7fdcb..0d8a7d66174 100644 --- a/arch/frv/include/asm/atomic.h +++ b/arch/frv/include/asm/atomic.h | |||
@@ -241,7 +241,7 @@ extern uint32_t __xchg_32(uint32_t i, volatile void *v); | |||
241 | #define atomic64_cmpxchg(v, old, new) (__cmpxchg_64(old, new, &(v)->counter)) | 241 | #define atomic64_cmpxchg(v, old, new) (__cmpxchg_64(old, new, &(v)->counter)) |
242 | #define atomic64_xchg(v, new) (__xchg_64(new, &(v)->counter)) | 242 | #define atomic64_xchg(v, new) (__xchg_64(new, &(v)->counter)) |
243 | 243 | ||
244 | static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) | 244 | static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
245 | { | 245 | { |
246 | int c, old; | 246 | int c, old; |
247 | c = atomic_read(v); | 247 | c = atomic_read(v); |
@@ -253,10 +253,8 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) | |||
253 | break; | 253 | break; |
254 | c = old; | 254 | c = old; |
255 | } | 255 | } |
256 | return c != (u); | 256 | return c; |
257 | } | 257 | } |
258 | 258 | ||
259 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) | ||
260 | 259 | ||
261 | #include <asm-generic/atomic-long.h> | ||
262 | #endif /* _ASM_ATOMIC_H */ | 260 | #endif /* _ASM_ATOMIC_H */ |
diff --git a/arch/frv/include/asm/bitops.h b/arch/frv/include/asm/bitops.h index a1d00b0c6ed..57bf85db893 100644 --- a/arch/frv/include/asm/bitops.h +++ b/arch/frv/include/asm/bitops.h | |||
@@ -403,8 +403,7 @@ int __ilog2_u64(u64 n) | |||
403 | 403 | ||
404 | #include <asm-generic/bitops/le.h> | 404 | #include <asm-generic/bitops/le.h> |
405 | 405 | ||
406 | #define ext2_set_bit_atomic(lock,nr,addr) test_and_set_bit ((nr) ^ 0x18, (addr)) | 406 | #include <asm-generic/bitops/ext2-atomic-setbit.h> |
407 | #define ext2_clear_bit_atomic(lock,nr,addr) test_and_clear_bit((nr) ^ 0x18, (addr)) | ||
408 | 407 | ||
409 | #endif /* __KERNEL__ */ | 408 | #endif /* __KERNEL__ */ |
410 | 409 | ||
diff --git a/arch/frv/include/asm/hardirq.h b/arch/frv/include/asm/hardirq.h index 5fc8b6f5bc5..c62833d6ebb 100644 --- a/arch/frv/include/asm/hardirq.h +++ b/arch/frv/include/asm/hardirq.h | |||
@@ -12,7 +12,7 @@ | |||
12 | #ifndef __ASM_HARDIRQ_H | 12 | #ifndef __ASM_HARDIRQ_H |
13 | #define __ASM_HARDIRQ_H | 13 | #define __ASM_HARDIRQ_H |
14 | 14 | ||
15 | #include <asm/atomic.h> | 15 | #include <linux/atomic.h> |
16 | 16 | ||
17 | extern atomic_t irq_err_count; | 17 | extern atomic_t irq_err_count; |
18 | static inline void ack_bad_irq(int irq) | 18 | static inline void ack_bad_irq(int irq) |
diff --git a/arch/frv/include/asm/processor.h b/arch/frv/include/asm/processor.h index 4b789ab182b..81c2e271d62 100644 --- a/arch/frv/include/asm/processor.h +++ b/arch/frv/include/asm/processor.h | |||
@@ -97,7 +97,6 @@ extern struct task_struct *__kernel_current_task; | |||
97 | */ | 97 | */ |
98 | #define start_thread(_regs, _pc, _usp) \ | 98 | #define start_thread(_regs, _pc, _usp) \ |
99 | do { \ | 99 | do { \ |
100 | set_fs(USER_DS); /* reads from user space */ \ | ||
101 | __frame = __kernel_frame0_ptr; \ | 100 | __frame = __kernel_frame0_ptr; \ |
102 | __frame->pc = (_pc); \ | 101 | __frame->pc = (_pc); \ |
103 | __frame->psr &= ~PSR_S; \ | 102 | __frame->psr &= ~PSR_S; \ |
diff --git a/arch/frv/include/asm/ptrace.h b/arch/frv/include/asm/ptrace.h index 6bfad4cf190..ef6635ca4ec 100644 --- a/arch/frv/include/asm/ptrace.h +++ b/arch/frv/include/asm/ptrace.h | |||
@@ -78,7 +78,6 @@ register struct pt_regs *__frame asm("gr28"); | |||
78 | #define user_stack_pointer(regs) ((regs)->sp) | 78 | #define user_stack_pointer(regs) ((regs)->sp) |
79 | 79 | ||
80 | extern unsigned long user_stack(const struct pt_regs *); | 80 | extern unsigned long user_stack(const struct pt_regs *); |
81 | extern void show_regs(struct pt_regs *); | ||
82 | #define profile_pc(regs) ((regs)->pc) | 81 | #define profile_pc(regs) ((regs)->pc) |
83 | 82 | ||
84 | #define task_pt_regs(task) ((task)->thread.frame0) | 83 | #define task_pt_regs(task) ((task)->thread.frame0) |
diff --git a/arch/frv/kernel/entry.S b/arch/frv/kernel/entry.S index 017d6d7b784..5ba23f715ea 100644 --- a/arch/frv/kernel/entry.S +++ b/arch/frv/kernel/entry.S | |||
@@ -1358,7 +1358,7 @@ sys_call_table: | |||
1358 | .long sys_ni_syscall /* for vm86 */ | 1358 | .long sys_ni_syscall /* for vm86 */ |
1359 | .long sys_ni_syscall /* Old sys_query_module */ | 1359 | .long sys_ni_syscall /* Old sys_query_module */ |
1360 | .long sys_poll | 1360 | .long sys_poll |
1361 | .long sys_nfsservctl | 1361 | .long sys_ni_syscall /* Old nfsservctl */ |
1362 | .long sys_setresgid16 /* 170 */ | 1362 | .long sys_setresgid16 /* 170 */ |
1363 | .long sys_getresgid16 | 1363 | .long sys_getresgid16 |
1364 | .long sys_prctl | 1364 | .long sys_prctl |
diff --git a/arch/frv/kernel/irq.c b/arch/frv/kernel/irq.c index a5f624a9f55..3facbc28cbb 100644 --- a/arch/frv/kernel/irq.c +++ b/arch/frv/kernel/irq.c | |||
@@ -25,7 +25,7 @@ | |||
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/bitops.h> | 26 | #include <linux/bitops.h> |
27 | 27 | ||
28 | #include <asm/atomic.h> | 28 | #include <linux/atomic.h> |
29 | #include <asm/io.h> | 29 | #include <asm/io.h> |
30 | #include <asm/smp.h> | 30 | #include <asm/smp.h> |
31 | #include <asm/system.h> | 31 | #include <asm/system.h> |
diff --git a/arch/frv/kernel/process.c b/arch/frv/kernel/process.c index 9d359752646..3901df1213c 100644 --- a/arch/frv/kernel/process.c +++ b/arch/frv/kernel/process.c | |||
@@ -143,10 +143,7 @@ void machine_power_off(void) | |||
143 | 143 | ||
144 | void flush_thread(void) | 144 | void flush_thread(void) |
145 | { | 145 | { |
146 | #if 0 //ndef NO_FPU | 146 | /* nothing */ |
147 | unsigned long zero = 0; | ||
148 | #endif | ||
149 | set_fs(USER_DS); | ||
150 | } | 147 | } |
151 | 148 | ||
152 | inline unsigned long user_stack(const struct pt_regs *regs) | 149 | inline unsigned long user_stack(const struct pt_regs *regs) |
diff --git a/arch/frv/mm/pgalloc.c b/arch/frv/mm/pgalloc.c index c42c83d507b..4fb63a36bd5 100644 --- a/arch/frv/mm/pgalloc.c +++ b/arch/frv/mm/pgalloc.c | |||
@@ -133,13 +133,7 @@ void pgd_dtor(void *pgd) | |||
133 | 133 | ||
134 | pgd_t *pgd_alloc(struct mm_struct *mm) | 134 | pgd_t *pgd_alloc(struct mm_struct *mm) |
135 | { | 135 | { |
136 | pgd_t *pgd; | 136 | return quicklist_alloc(0, GFP_KERNEL, pgd_ctor); |
137 | |||
138 | pgd = quicklist_alloc(0, GFP_KERNEL, pgd_ctor); | ||
139 | if (!pgd) | ||
140 | return pgd; | ||
141 | |||
142 | return pgd; | ||
143 | } | 137 | } |
144 | 138 | ||
145 | void pgd_free(struct mm_struct *mm, pgd_t *pgd) | 139 | void pgd_free(struct mm_struct *mm, pgd_t *pgd) |