diff options
Diffstat (limited to 'arch/avr32')
-rw-r--r-- | arch/avr32/include/asm/dma-mapping.h | 10 | ||||
-rw-r--r-- | arch/avr32/include/asm/signal.h | 11 | ||||
-rw-r--r-- | arch/avr32/include/asm/unistd.h | 2 | ||||
-rw-r--r-- | arch/avr32/include/uapi/asm/socket.h | 4 | ||||
-rw-r--r-- | arch/avr32/kernel/signal.c | 15 | ||||
-rw-r--r-- | arch/avr32/kernel/syscall-stubs.S | 6 | ||||
-rw-r--r-- | arch/avr32/kernel/syscall_table.S | 2 |
7 files changed, 17 insertions, 33 deletions
diff --git a/arch/avr32/include/asm/dma-mapping.h b/arch/avr32/include/asm/dma-mapping.h index aaf5199d8fcb..b3d18f9f3e8d 100644 --- a/arch/avr32/include/asm/dma-mapping.h +++ b/arch/avr32/include/asm/dma-mapping.h | |||
@@ -336,4 +336,14 @@ dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, | |||
336 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) | 336 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) |
337 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) | 337 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) |
338 | 338 | ||
339 | /* drivers/base/dma-mapping.c */ | ||
340 | extern int dma_common_mmap(struct device *dev, struct vm_area_struct *vma, | ||
341 | void *cpu_addr, dma_addr_t dma_addr, size_t size); | ||
342 | extern int dma_common_get_sgtable(struct device *dev, struct sg_table *sgt, | ||
343 | void *cpu_addr, dma_addr_t dma_addr, | ||
344 | size_t size); | ||
345 | |||
346 | #define dma_mmap_coherent(d, v, c, h, s) dma_common_mmap(d, v, c, h, s) | ||
347 | #define dma_get_sgtable(d, t, v, h, s) dma_common_get_sgtable(d, t, v, h, s) | ||
348 | |||
339 | #endif /* __ASM_AVR32_DMA_MAPPING_H */ | 349 | #endif /* __ASM_AVR32_DMA_MAPPING_H */ |
diff --git a/arch/avr32/include/asm/signal.h b/arch/avr32/include/asm/signal.h index 9326d182e9e5..d875eb6a3f3c 100644 --- a/arch/avr32/include/asm/signal.h +++ b/arch/avr32/include/asm/signal.h | |||
@@ -23,16 +23,7 @@ typedef struct { | |||
23 | unsigned long sig[_NSIG_WORDS]; | 23 | unsigned long sig[_NSIG_WORDS]; |
24 | } sigset_t; | 24 | } sigset_t; |
25 | 25 | ||
26 | struct sigaction { | 26 | #define __ARCH_HAS_SA_RESTORER |
27 | __sighandler_t sa_handler; | ||
28 | unsigned long sa_flags; | ||
29 | __sigrestore_t sa_restorer; | ||
30 | sigset_t sa_mask; /* mask last for extensibility */ | ||
31 | }; | ||
32 | |||
33 | struct k_sigaction { | ||
34 | struct sigaction sa; | ||
35 | }; | ||
36 | 27 | ||
37 | #include <asm/sigcontext.h> | 28 | #include <asm/sigcontext.h> |
38 | #undef __HAVE_ARCH_SIG_BITOPS | 29 | #undef __HAVE_ARCH_SIG_BITOPS |
diff --git a/arch/avr32/include/asm/unistd.h b/arch/avr32/include/asm/unistd.h index 0bdf6371574e..dc4d5a931112 100644 --- a/arch/avr32/include/asm/unistd.h +++ b/arch/avr32/include/asm/unistd.h | |||
@@ -37,8 +37,6 @@ | |||
37 | #define __ARCH_WANT_SYS_GETPGRP | 37 | #define __ARCH_WANT_SYS_GETPGRP |
38 | #define __ARCH_WANT_SYS_LLSEEK | 38 | #define __ARCH_WANT_SYS_LLSEEK |
39 | #define __ARCH_WANT_SYS_GETPGRP | 39 | #define __ARCH_WANT_SYS_GETPGRP |
40 | #define __ARCH_WANT_SYS_RT_SIGACTION | ||
41 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND | ||
42 | #define __ARCH_WANT_SYS_FORK | 40 | #define __ARCH_WANT_SYS_FORK |
43 | #define __ARCH_WANT_SYS_VFORK | 41 | #define __ARCH_WANT_SYS_VFORK |
44 | #define __ARCH_WANT_SYS_CLONE | 42 | #define __ARCH_WANT_SYS_CLONE |
diff --git a/arch/avr32/include/uapi/asm/socket.h b/arch/avr32/include/uapi/asm/socket.h index 486df68abeec..51c6401582ea 100644 --- a/arch/avr32/include/uapi/asm/socket.h +++ b/arch/avr32/include/uapi/asm/socket.h | |||
@@ -22,7 +22,7 @@ | |||
22 | #define SO_PRIORITY 12 | 22 | #define SO_PRIORITY 12 |
23 | #define SO_LINGER 13 | 23 | #define SO_LINGER 13 |
24 | #define SO_BSDCOMPAT 14 | 24 | #define SO_BSDCOMPAT 14 |
25 | /* To add :#define SO_REUSEPORT 15 */ | 25 | #define SO_REUSEPORT 15 |
26 | #define SO_PASSCRED 16 | 26 | #define SO_PASSCRED 16 |
27 | #define SO_PEERCRED 17 | 27 | #define SO_PEERCRED 17 |
28 | #define SO_RCVLOWAT 18 | 28 | #define SO_RCVLOWAT 18 |
@@ -70,4 +70,6 @@ | |||
70 | /* Instruct lower device to use last 4-bytes of skb data as FCS */ | 70 | /* Instruct lower device to use last 4-bytes of skb data as FCS */ |
71 | #define SO_NOFCS 43 | 71 | #define SO_NOFCS 43 |
72 | 72 | ||
73 | #define SO_LOCK_FILTER 44 | ||
74 | |||
73 | #endif /* __ASM_AVR32_SOCKET_H */ | 75 | #endif /* __ASM_AVR32_SOCKET_H */ |
diff --git a/arch/avr32/kernel/signal.c b/arch/avr32/kernel/signal.c index 5e01c3a40ced..b80c0b3d2bab 100644 --- a/arch/avr32/kernel/signal.c +++ b/arch/avr32/kernel/signal.c | |||
@@ -21,12 +21,6 @@ | |||
21 | #include <asm/ucontext.h> | 21 | #include <asm/ucontext.h> |
22 | #include <asm/syscalls.h> | 22 | #include <asm/syscalls.h> |
23 | 23 | ||
24 | asmlinkage int sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss, | ||
25 | struct pt_regs *regs) | ||
26 | { | ||
27 | return do_sigaltstack(uss, uoss, regs->sp); | ||
28 | } | ||
29 | |||
30 | struct rt_sigframe | 24 | struct rt_sigframe |
31 | { | 25 | { |
32 | struct siginfo info; | 26 | struct siginfo info; |
@@ -91,7 +85,7 @@ asmlinkage int sys_rt_sigreturn(struct pt_regs *regs) | |||
91 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) | 85 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) |
92 | goto badframe; | 86 | goto badframe; |
93 | 87 | ||
94 | if (do_sigaltstack(&frame->uc.uc_stack, NULL, regs->sp) == -EFAULT) | 88 | if (restore_altstack(&frame->uc.uc_stack)) |
95 | goto badframe; | 89 | goto badframe; |
96 | 90 | ||
97 | pr_debug("Context restored: pc = %08lx, lr = %08lx, sp = %08lx\n", | 91 | pr_debug("Context restored: pc = %08lx, lr = %08lx, sp = %08lx\n", |
@@ -175,12 +169,7 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
175 | /* Set up the ucontext */ | 169 | /* Set up the ucontext */ |
176 | err |= __put_user(0, &frame->uc.uc_flags); | 170 | err |= __put_user(0, &frame->uc.uc_flags); |
177 | err |= __put_user(NULL, &frame->uc.uc_link); | 171 | err |= __put_user(NULL, &frame->uc.uc_link); |
178 | err |= __put_user((void __user *)current->sas_ss_sp, | 172 | err |= __save_altstack(&frame->uc.uc_stack, regs->sp); |
179 | &frame->uc.uc_stack.ss_sp); | ||
180 | err |= __put_user(sas_ss_flags(regs->sp), | ||
181 | &frame->uc.uc_stack.ss_flags); | ||
182 | err |= __put_user(current->sas_ss_size, | ||
183 | &frame->uc.uc_stack.ss_size); | ||
184 | err |= setup_sigcontext(&frame->uc.uc_mcontext, regs); | 173 | err |= setup_sigcontext(&frame->uc.uc_mcontext, regs); |
185 | err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); | 174 | err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); |
186 | 175 | ||
diff --git a/arch/avr32/kernel/syscall-stubs.S b/arch/avr32/kernel/syscall-stubs.S index 275aab9731fd..b5fc927cd398 100644 --- a/arch/avr32/kernel/syscall-stubs.S +++ b/arch/avr32/kernel/syscall-stubs.S | |||
@@ -20,12 +20,6 @@ __sys_rt_sigsuspend: | |||
20 | mov r10, sp | 20 | mov r10, sp |
21 | rjmp sys_rt_sigsuspend | 21 | rjmp sys_rt_sigsuspend |
22 | 22 | ||
23 | .global __sys_sigaltstack | ||
24 | .type __sys_sigaltstack,@function | ||
25 | __sys_sigaltstack: | ||
26 | mov r10, sp | ||
27 | rjmp sys_sigaltstack | ||
28 | |||
29 | .global __sys_rt_sigreturn | 23 | .global __sys_rt_sigreturn |
30 | .type __sys_rt_sigreturn,@function | 24 | .type __sys_rt_sigreturn,@function |
31 | __sys_rt_sigreturn: | 25 | __sys_rt_sigreturn: |
diff --git a/arch/avr32/kernel/syscall_table.S b/arch/avr32/kernel/syscall_table.S index f27bb878da6b..017a904180c8 100644 --- a/arch/avr32/kernel/syscall_table.S +++ b/arch/avr32/kernel/syscall_table.S | |||
@@ -115,7 +115,7 @@ sys_call_table: | |||
115 | .long sys_statfs | 115 | .long sys_statfs |
116 | .long sys_fstatfs /* 100 */ | 116 | .long sys_fstatfs /* 100 */ |
117 | .long sys_vhangup | 117 | .long sys_vhangup |
118 | .long __sys_sigaltstack | 118 | .long sys_sigaltstack |
119 | .long sys_syslog | 119 | .long sys_syslog |
120 | .long sys_setitimer | 120 | .long sys_setitimer |
121 | .long sys_getitimer /* 105 */ | 121 | .long sys_getitimer /* 105 */ |