diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-03-22 13:23:46 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-03-22 13:23:46 -0400 |
commit | 74511020dde10252f8b8e648690d99dba721de14 (patch) | |
tree | 04fc22bc7dd5d5b8d9294b2e57985b093858bd84 /arch/s390 | |
parent | 69266866a5790080d7fe80094b28d670ff8aa765 (diff) | |
parent | 3cc4e53f86dab635166929bfa47cc68d59b28c26 (diff) |
Merge branch 'for-2.6.34' into for-2.6.35
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/crypto/sha_common.c | 2 | ||||
-rw-r--r-- | arch/s390/include/asm/cio.h | 2 | ||||
-rw-r--r-- | arch/s390/include/asm/compat.h | 3 | ||||
-rw-r--r-- | arch/s390/include/asm/ptrace.h | 3 | ||||
-rw-r--r-- | arch/s390/include/asm/unistd.h | 1 | ||||
-rw-r--r-- | arch/s390/kernel/compat_wrapper.S | 2 | ||||
-rw-r--r-- | arch/s390/kernel/entry.h | 10 | ||||
-rw-r--r-- | arch/s390/kernel/sclp.S | 2 | ||||
-rw-r--r-- | arch/s390/kernel/sys_s390.c | 43 | ||||
-rw-r--r-- | arch/s390/kernel/syscalls.S | 6 |
10 files changed, 20 insertions, 54 deletions
diff --git a/arch/s390/crypto/sha_common.c b/arch/s390/crypto/sha_common.c index 7903ec47e6b9..f42dbabc0d30 100644 --- a/arch/s390/crypto/sha_common.c +++ b/arch/s390/crypto/sha_common.c | |||
@@ -79,7 +79,7 @@ int s390_sha_final(struct shash_desc *desc, u8 *out) | |||
79 | memset(ctx->buf + index, 0x00, end - index - 8); | 79 | memset(ctx->buf + index, 0x00, end - index - 8); |
80 | 80 | ||
81 | /* | 81 | /* |
82 | * Append message length. Well, SHA-512 wants a 128 bit lenght value, | 82 | * Append message length. Well, SHA-512 wants a 128 bit length value, |
83 | * nevertheless we use u64, should be enough for now... | 83 | * nevertheless we use u64, should be enough for now... |
84 | */ | 84 | */ |
85 | bits = ctx->count * 8; | 85 | bits = ctx->count * 8; |
diff --git a/arch/s390/include/asm/cio.h b/arch/s390/include/asm/cio.h index e85679af54dd..e34347d567a6 100644 --- a/arch/s390/include/asm/cio.h +++ b/arch/s390/include/asm/cio.h | |||
@@ -20,7 +20,7 @@ | |||
20 | /** | 20 | /** |
21 | * struct ccw1 - channel command word | 21 | * struct ccw1 - channel command word |
22 | * @cmd_code: command code | 22 | * @cmd_code: command code |
23 | * @flags: flags, like IDA adressing, etc. | 23 | * @flags: flags, like IDA addressing, etc. |
24 | * @count: byte count | 24 | * @count: byte count |
25 | * @cda: data address | 25 | * @cda: data address |
26 | * | 26 | * |
diff --git a/arch/s390/include/asm/compat.h b/arch/s390/include/asm/compat.h index 01a08020bc0e..104f2007f097 100644 --- a/arch/s390/include/asm/compat.h +++ b/arch/s390/include/asm/compat.h | |||
@@ -35,7 +35,8 @@ | |||
35 | 35 | ||
36 | extern long psw32_user_bits; | 36 | extern long psw32_user_bits; |
37 | 37 | ||
38 | #define COMPAT_USER_HZ 100 | 38 | #define COMPAT_USER_HZ 100 |
39 | #define COMPAT_UTS_MACHINE "s390\0\0\0\0" | ||
39 | 40 | ||
40 | typedef u32 compat_size_t; | 41 | typedef u32 compat_size_t; |
41 | typedef s32 compat_ssize_t; | 42 | typedef s32 compat_ssize_t; |
diff --git a/arch/s390/include/asm/ptrace.h b/arch/s390/include/asm/ptrace.h index dd2d913afcae..fef9b33cdd59 100644 --- a/arch/s390/include/asm/ptrace.h +++ b/arch/s390/include/asm/ptrace.h | |||
@@ -489,9 +489,6 @@ struct user_regs_struct | |||
489 | * These are defined as per linux/ptrace.h, which see. | 489 | * These are defined as per linux/ptrace.h, which see. |
490 | */ | 490 | */ |
491 | #define arch_has_single_step() (1) | 491 | #define arch_has_single_step() (1) |
492 | struct task_struct; | ||
493 | extern void user_enable_single_step(struct task_struct *); | ||
494 | extern void user_disable_single_step(struct task_struct *); | ||
495 | extern void show_regs(struct pt_regs * regs); | 492 | extern void show_regs(struct pt_regs * regs); |
496 | 493 | ||
497 | #define user_mode(regs) (((regs)->psw.mask & PSW_MASK_PSTATE) != 0) | 494 | #define user_mode(regs) (((regs)->psw.mask & PSW_MASK_PSTATE) != 0) |
diff --git a/arch/s390/include/asm/unistd.h b/arch/s390/include/asm/unistd.h index 6e9f049fa823..5f0075150a65 100644 --- a/arch/s390/include/asm/unistd.h +++ b/arch/s390/include/asm/unistd.h | |||
@@ -392,6 +392,7 @@ | |||
392 | #define __ARCH_WANT_SYS_LLSEEK | 392 | #define __ARCH_WANT_SYS_LLSEEK |
393 | #define __ARCH_WANT_SYS_NICE | 393 | #define __ARCH_WANT_SYS_NICE |
394 | #define __ARCH_WANT_SYS_OLD_GETRLIMIT | 394 | #define __ARCH_WANT_SYS_OLD_GETRLIMIT |
395 | #define __ARCH_WANT_SYS_OLD_MMAP | ||
395 | #define __ARCH_WANT_SYS_OLDUMOUNT | 396 | #define __ARCH_WANT_SYS_OLDUMOUNT |
396 | #define __ARCH_WANT_SYS_SIGPENDING | 397 | #define __ARCH_WANT_SYS_SIGPENDING |
397 | #define __ARCH_WANT_SYS_SIGPROCMASK | 398 | #define __ARCH_WANT_SYS_SIGPROCMASK |
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index 30de2d0e52bb..672ce52341b4 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S | |||
@@ -547,7 +547,7 @@ sys32_setdomainname_wrapper: | |||
547 | .globl sys32_newuname_wrapper | 547 | .globl sys32_newuname_wrapper |
548 | sys32_newuname_wrapper: | 548 | sys32_newuname_wrapper: |
549 | llgtr %r2,%r2 # struct new_utsname * | 549 | llgtr %r2,%r2 # struct new_utsname * |
550 | jg sys_s390_newuname # branch to system call | 550 | jg sys_newuname # branch to system call |
551 | 551 | ||
552 | .globl compat_sys_adjtimex_wrapper | 552 | .globl compat_sys_adjtimex_wrapper |
553 | compat_sys_adjtimex_wrapper: | 553 | compat_sys_adjtimex_wrapper: |
diff --git a/arch/s390/kernel/entry.h b/arch/s390/kernel/entry.h index e1e5e767ab56..eb15c12ec158 100644 --- a/arch/s390/kernel/entry.h +++ b/arch/s390/kernel/entry.h | |||
@@ -24,17 +24,13 @@ int __cpuinit start_secondary(void *cpuvoid); | |||
24 | void __init startup_init(void); | 24 | void __init startup_init(void); |
25 | void die(const char * str, struct pt_regs * regs, long err); | 25 | void die(const char * str, struct pt_regs * regs, long err); |
26 | 26 | ||
27 | struct new_utsname; | 27 | struct s390_mmap_arg_struct; |
28 | struct mmap_arg_struct; | ||
29 | struct fadvise64_64_args; | 28 | struct fadvise64_64_args; |
30 | struct old_sigaction; | 29 | struct old_sigaction; |
31 | struct sel_arg_struct; | ||
32 | 30 | ||
33 | long sys_mmap2(struct mmap_arg_struct __user *arg); | 31 | long sys_mmap2(struct s390_mmap_arg_struct __user *arg); |
34 | long sys_s390_old_mmap(struct mmap_arg_struct __user *arg); | 32 | long sys_s390_ipc(uint call, int first, unsigned long second, |
35 | long sys_ipc(uint call, int first, unsigned long second, | ||
36 | unsigned long third, void __user *ptr); | 33 | unsigned long third, void __user *ptr); |
37 | long sys_s390_newuname(struct new_utsname __user *name); | ||
38 | long sys_s390_personality(unsigned long personality); | 34 | long sys_s390_personality(unsigned long personality); |
39 | long sys_s390_fadvise64(int fd, u32 offset_high, u32 offset_low, | 35 | long sys_s390_fadvise64(int fd, u32 offset_high, u32 offset_low, |
40 | size_t len, int advice); | 36 | size_t len, int advice); |
diff --git a/arch/s390/kernel/sclp.S b/arch/s390/kernel/sclp.S index 27af3bf3a009..2e82fdd89320 100644 --- a/arch/s390/kernel/sclp.S +++ b/arch/s390/kernel/sclp.S | |||
@@ -235,7 +235,7 @@ _sclp_print: | |||
235 | lh %r9,0(%r8) # update sccb length | 235 | lh %r9,0(%r8) # update sccb length |
236 | ar %r9,%r6 | 236 | ar %r9,%r6 |
237 | sth %r9,0(%r8) | 237 | sth %r9,0(%r8) |
238 | ar %r7,%r6 # update current mto adress | 238 | ar %r7,%r6 # update current mto address |
239 | ltr %r0,%r0 # more characters? | 239 | ltr %r0,%r0 # more characters? |
240 | jnz .LinitmtoS4 | 240 | jnz .LinitmtoS4 |
241 | l %r2,.LwritedataS4-.LbaseS4(%r13)# write data | 241 | l %r2,.LwritedataS4-.LbaseS4(%r13)# write data |
diff --git a/arch/s390/kernel/sys_s390.c b/arch/s390/kernel/sys_s390.c index 86a74c9c9e63..7b6b0f81a283 100644 --- a/arch/s390/kernel/sys_s390.c +++ b/arch/s390/kernel/sys_s390.c | |||
@@ -33,13 +33,12 @@ | |||
33 | #include "entry.h" | 33 | #include "entry.h" |
34 | 34 | ||
35 | /* | 35 | /* |
36 | * Perform the select(nd, in, out, ex, tv) and mmap() system | 36 | * Perform the mmap() system call. Linux for S/390 isn't able to handle more |
37 | * calls. Linux for S/390 isn't able to handle more than 5 | 37 | * than 5 system call parameters, so this system call uses a memory block |
38 | * system call parameters, so these system calls used a memory | 38 | * for parameter passing. |
39 | * block for parameter passing.. | ||
40 | */ | 39 | */ |
41 | 40 | ||
42 | struct mmap_arg_struct { | 41 | struct s390_mmap_arg_struct { |
43 | unsigned long addr; | 42 | unsigned long addr; |
44 | unsigned long len; | 43 | unsigned long len; |
45 | unsigned long prot; | 44 | unsigned long prot; |
@@ -48,9 +47,9 @@ struct mmap_arg_struct { | |||
48 | unsigned long offset; | 47 | unsigned long offset; |
49 | }; | 48 | }; |
50 | 49 | ||
51 | SYSCALL_DEFINE1(mmap2, struct mmap_arg_struct __user *, arg) | 50 | SYSCALL_DEFINE1(mmap2, struct s390_mmap_arg_struct __user *, arg) |
52 | { | 51 | { |
53 | struct mmap_arg_struct a; | 52 | struct s390_mmap_arg_struct a; |
54 | int error = -EFAULT; | 53 | int error = -EFAULT; |
55 | 54 | ||
56 | if (copy_from_user(&a, arg, sizeof(a))) | 55 | if (copy_from_user(&a, arg, sizeof(a))) |
@@ -60,29 +59,12 @@ out: | |||
60 | return error; | 59 | return error; |
61 | } | 60 | } |
62 | 61 | ||
63 | SYSCALL_DEFINE1(s390_old_mmap, struct mmap_arg_struct __user *, arg) | ||
64 | { | ||
65 | struct mmap_arg_struct a; | ||
66 | long error = -EFAULT; | ||
67 | |||
68 | if (copy_from_user(&a, arg, sizeof(a))) | ||
69 | goto out; | ||
70 | |||
71 | error = -EINVAL; | ||
72 | if (a.offset & ~PAGE_MASK) | ||
73 | goto out; | ||
74 | |||
75 | error = sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, a.offset >> PAGE_SHIFT); | ||
76 | out: | ||
77 | return error; | ||
78 | } | ||
79 | |||
80 | /* | 62 | /* |
81 | * sys_ipc() is the de-multiplexer for the SysV IPC calls.. | 63 | * sys_ipc() is the de-multiplexer for the SysV IPC calls.. |
82 | * | 64 | * |
83 | * This is really horribly ugly. | 65 | * This is really horribly ugly. |
84 | */ | 66 | */ |
85 | SYSCALL_DEFINE5(ipc, uint, call, int, first, unsigned long, second, | 67 | SYSCALL_DEFINE5(s390_ipc, uint, call, int, first, unsigned long, second, |
86 | unsigned long, third, void __user *, ptr) | 68 | unsigned long, third, void __user *, ptr) |
87 | { | 69 | { |
88 | struct ipc_kludge tmp; | 70 | struct ipc_kludge tmp; |
@@ -149,17 +131,6 @@ SYSCALL_DEFINE5(ipc, uint, call, int, first, unsigned long, second, | |||
149 | } | 131 | } |
150 | 132 | ||
151 | #ifdef CONFIG_64BIT | 133 | #ifdef CONFIG_64BIT |
152 | SYSCALL_DEFINE1(s390_newuname, struct new_utsname __user *, name) | ||
153 | { | ||
154 | int ret = sys_newuname(name); | ||
155 | |||
156 | if (personality(current->personality) == PER_LINUX32 && !ret) { | ||
157 | ret = copy_to_user(name->machine, "s390\0\0\0\0", 8); | ||
158 | if (ret) ret = -EFAULT; | ||
159 | } | ||
160 | return ret; | ||
161 | } | ||
162 | |||
163 | SYSCALL_DEFINE1(s390_personality, unsigned long, personality) | 134 | SYSCALL_DEFINE1(s390_personality, unsigned long, personality) |
164 | { | 135 | { |
165 | int ret; | 136 | int ret; |
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index 30eca070d426..201ce6bed34e 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S | |||
@@ -98,7 +98,7 @@ SYSCALL(sys_uselib,sys_uselib,sys32_uselib_wrapper) | |||
98 | SYSCALL(sys_swapon,sys_swapon,sys32_swapon_wrapper) | 98 | SYSCALL(sys_swapon,sys_swapon,sys32_swapon_wrapper) |
99 | SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper) | 99 | SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper) |
100 | SYSCALL(sys_ni_syscall,sys_ni_syscall,old32_readdir_wrapper) /* old readdir syscall */ | 100 | SYSCALL(sys_ni_syscall,sys_ni_syscall,old32_readdir_wrapper) /* old readdir syscall */ |
101 | SYSCALL(sys_s390_old_mmap,sys_s390_old_mmap,old32_mmap_wrapper) /* 90 */ | 101 | SYSCALL(sys_old_mmap,sys_old_mmap,old32_mmap_wrapper) /* 90 */ |
102 | SYSCALL(sys_munmap,sys_munmap,sys32_munmap_wrapper) | 102 | SYSCALL(sys_munmap,sys_munmap,sys32_munmap_wrapper) |
103 | SYSCALL(sys_truncate,sys_truncate,sys32_truncate_wrapper) | 103 | SYSCALL(sys_truncate,sys_truncate,sys32_truncate_wrapper) |
104 | SYSCALL(sys_ftruncate,sys_ftruncate,sys32_ftruncate_wrapper) | 104 | SYSCALL(sys_ftruncate,sys_ftruncate,sys32_ftruncate_wrapper) |
@@ -125,12 +125,12 @@ NI_SYSCALL /* vm86old for i386 */ | |||
125 | SYSCALL(sys_wait4,sys_wait4,compat_sys_wait4_wrapper) | 125 | SYSCALL(sys_wait4,sys_wait4,compat_sys_wait4_wrapper) |
126 | SYSCALL(sys_swapoff,sys_swapoff,sys32_swapoff_wrapper) /* 115 */ | 126 | SYSCALL(sys_swapoff,sys_swapoff,sys32_swapoff_wrapper) /* 115 */ |
127 | SYSCALL(sys_sysinfo,sys_sysinfo,compat_sys_sysinfo_wrapper) | 127 | SYSCALL(sys_sysinfo,sys_sysinfo,compat_sys_sysinfo_wrapper) |
128 | SYSCALL(sys_ipc,sys_ipc,sys32_ipc_wrapper) | 128 | SYSCALL(sys_s390_ipc,sys_s390_ipc,sys32_ipc_wrapper) |
129 | SYSCALL(sys_fsync,sys_fsync,sys32_fsync_wrapper) | 129 | SYSCALL(sys_fsync,sys_fsync,sys32_fsync_wrapper) |
130 | SYSCALL(sys_sigreturn,sys_sigreturn,sys32_sigreturn) | 130 | SYSCALL(sys_sigreturn,sys_sigreturn,sys32_sigreturn) |
131 | SYSCALL(sys_clone,sys_clone,sys_clone_wrapper) /* 120 */ | 131 | SYSCALL(sys_clone,sys_clone,sys_clone_wrapper) /* 120 */ |
132 | SYSCALL(sys_setdomainname,sys_setdomainname,sys32_setdomainname_wrapper) | 132 | SYSCALL(sys_setdomainname,sys_setdomainname,sys32_setdomainname_wrapper) |
133 | SYSCALL(sys_newuname,sys_s390_newuname,sys32_newuname_wrapper) | 133 | SYSCALL(sys_newuname,sys_newuname,sys32_newuname_wrapper) |
134 | NI_SYSCALL /* modify_ldt for i386 */ | 134 | NI_SYSCALL /* modify_ldt for i386 */ |
135 | SYSCALL(sys_adjtimex,sys_adjtimex,compat_sys_adjtimex_wrapper) | 135 | SYSCALL(sys_adjtimex,sys_adjtimex,compat_sys_adjtimex_wrapper) |
136 | SYSCALL(sys_mprotect,sys_mprotect,sys32_mprotect_wrapper) /* 125 */ | 136 | SYSCALL(sys_mprotect,sys_mprotect,sys32_mprotect_wrapper) /* 125 */ |