diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-03-19 23:04:26 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-03-19 23:04:26 -0400 |
commit | 511b00a3194167bad447d4c81027d6a44920dfd2 (patch) | |
tree | 080c076f994f701e40c03e7d5f7ce7f50115d2dc /arch | |
parent | fbeb1f19229baa9ee80f315e9d24635045455082 (diff) | |
parent | 43a867a2d2a119c744bab6dc8d3e1da6809d7141 (diff) |
Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
[S390] zcrypt: fix possible race when unloading zcrypt driver modules
[S390] zcrypt: fix possible dead lock in AP bus module
[S390] Wire up sys_utimes.
[S390] reboot from and dump to SCSI under z/VM fails.
[S390] Wire up compat_sys_epoll_pwait.
[S390] strlcpy is smart enough
[S390] memory detection: fix off by one bug.
[S390] cio: qdio slsb setup
Diffstat (limited to 'arch')
-rw-r--r-- | arch/s390/kernel/compat_wrapper.S | 17 | ||||
-rw-r--r-- | arch/s390/kernel/debug.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/early.c | 10 | ||||
-rw-r--r-- | arch/s390/kernel/ipl.c | 9 | ||||
-rw-r--r-- | arch/s390/kernel/syscalls.S | 3 |
5 files changed, 32 insertions, 9 deletions
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index 97901296894e..32a69a18a796 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S | |||
@@ -1665,3 +1665,20 @@ sys_getcpu_wrapper: | |||
1665 | llgtr %r3,%r3 # unsigned * | 1665 | llgtr %r3,%r3 # unsigned * |
1666 | llgtr %r4,%r4 # struct getcpu_cache * | 1666 | llgtr %r4,%r4 # struct getcpu_cache * |
1667 | jg sys_getcpu | 1667 | jg sys_getcpu |
1668 | |||
1669 | .globl compat_sys_epoll_pwait_wrapper | ||
1670 | compat_sys_epoll_pwait_wrapper: | ||
1671 | lgfr %r2,%r2 # int | ||
1672 | llgtr %r3,%r3 # struct compat_epoll_event * | ||
1673 | lgfr %r4,%r4 # int | ||
1674 | lgfr %r5,%r5 # int | ||
1675 | llgtr %r6,%r6 # compat_sigset_t * | ||
1676 | llgf %r0,164(%r15) # compat_size_t | ||
1677 | stg %r0,160(%r15) | ||
1678 | jg compat_sys_epoll_pwait | ||
1679 | |||
1680 | .globl compat_sys_utimes_wrapper | ||
1681 | compat_sys_utimes_wrapper: | ||
1682 | llgtr %r2,%r2 # char * | ||
1683 | llgtr %r3,%r3 # struct compat_timeval * | ||
1684 | jg compat_sys_utimes | ||
diff --git a/arch/s390/kernel/debug.c b/arch/s390/kernel/debug.c index eca3fe595ff4..dca6eaf82c80 100644 --- a/arch/s390/kernel/debug.c +++ b/arch/s390/kernel/debug.c | |||
@@ -268,7 +268,7 @@ debug_info_alloc(char *name, int pages_per_area, int nr_areas, int buf_size, | |||
268 | rc->level = level; | 268 | rc->level = level; |
269 | rc->buf_size = buf_size; | 269 | rc->buf_size = buf_size; |
270 | rc->entry_size = sizeof(debug_entry_t) + buf_size; | 270 | rc->entry_size = sizeof(debug_entry_t) + buf_size; |
271 | strlcpy(rc->name, name, sizeof(rc->name)-1); | 271 | strlcpy(rc->name, name, sizeof(rc->name)); |
272 | memset(rc->views, 0, DEBUG_MAX_VIEWS * sizeof(struct debug_view *)); | 272 | memset(rc->views, 0, DEBUG_MAX_VIEWS * sizeof(struct debug_view *)); |
273 | memset(rc->debugfs_entries, 0 ,DEBUG_MAX_VIEWS * | 273 | memset(rc->debugfs_entries, 0 ,DEBUG_MAX_VIEWS * |
274 | sizeof(struct dentry*)); | 274 | sizeof(struct dentry*)); |
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c index afca1c6f4d21..5e47936573f2 100644 --- a/arch/s390/kernel/early.c +++ b/arch/s390/kernel/early.c | |||
@@ -141,9 +141,9 @@ static noinline __init void detect_machine_type(void) | |||
141 | machine_flags |= 4; | 141 | machine_flags |= 4; |
142 | } | 142 | } |
143 | 143 | ||
144 | #ifdef CONFIG_64BIT | ||
144 | static noinline __init int memory_fast_detect(void) | 145 | static noinline __init int memory_fast_detect(void) |
145 | { | 146 | { |
146 | |||
147 | unsigned long val0 = 0; | 147 | unsigned long val0 = 0; |
148 | unsigned long val1 = 0xc; | 148 | unsigned long val1 = 0xc; |
149 | int ret = -ENOSYS; | 149 | int ret = -ENOSYS; |
@@ -161,9 +161,15 @@ static noinline __init int memory_fast_detect(void) | |||
161 | if (ret || val0 != val1) | 161 | if (ret || val0 != val1) |
162 | return -ENOSYS; | 162 | return -ENOSYS; |
163 | 163 | ||
164 | memory_chunk[0].size = val0; | 164 | memory_chunk[0].size = val0 + 1; |
165 | return 0; | 165 | return 0; |
166 | } | 166 | } |
167 | #else | ||
168 | static inline int memory_fast_detect(void) | ||
169 | { | ||
170 | return -ENOSYS; | ||
171 | } | ||
172 | #endif | ||
167 | 173 | ||
168 | #define ADDR2G (1UL << 31) | 174 | #define ADDR2G (1UL << 31) |
169 | 175 | ||
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c index d125a4ead08d..f731185bf2bd 100644 --- a/arch/s390/kernel/ipl.c +++ b/arch/s390/kernel/ipl.c | |||
@@ -839,7 +839,7 @@ static int __init reipl_ccw_init(void) | |||
839 | } | 839 | } |
840 | reipl_block_ccw->hdr.len = IPL_PARM_BLK_CCW_LEN; | 840 | reipl_block_ccw->hdr.len = IPL_PARM_BLK_CCW_LEN; |
841 | reipl_block_ccw->hdr.version = IPL_PARM_BLOCK_VERSION; | 841 | reipl_block_ccw->hdr.version = IPL_PARM_BLOCK_VERSION; |
842 | reipl_block_ccw->hdr.blk0_len = sizeof(reipl_block_ccw->ipl_info.ccw); | 842 | reipl_block_ccw->hdr.blk0_len = IPL_PARM_BLK0_CCW_LEN; |
843 | reipl_block_ccw->hdr.pbt = DIAG308_IPL_TYPE_CCW; | 843 | reipl_block_ccw->hdr.pbt = DIAG308_IPL_TYPE_CCW; |
844 | /* check if read scp info worked and set loadparm */ | 844 | /* check if read scp info worked and set loadparm */ |
845 | if (SCCB_VALID) | 845 | if (SCCB_VALID) |
@@ -880,8 +880,7 @@ static int __init reipl_fcp_init(void) | |||
880 | } else { | 880 | } else { |
881 | reipl_block_fcp->hdr.len = IPL_PARM_BLK_FCP_LEN; | 881 | reipl_block_fcp->hdr.len = IPL_PARM_BLK_FCP_LEN; |
882 | reipl_block_fcp->hdr.version = IPL_PARM_BLOCK_VERSION; | 882 | reipl_block_fcp->hdr.version = IPL_PARM_BLOCK_VERSION; |
883 | reipl_block_fcp->hdr.blk0_len = | 883 | reipl_block_fcp->hdr.blk0_len = IPL_PARM_BLK0_FCP_LEN; |
884 | sizeof(reipl_block_fcp->ipl_info.fcp); | ||
885 | reipl_block_fcp->hdr.pbt = DIAG308_IPL_TYPE_FCP; | 884 | reipl_block_fcp->hdr.pbt = DIAG308_IPL_TYPE_FCP; |
886 | reipl_block_fcp->ipl_info.fcp.opt = DIAG308_IPL_OPT_IPL; | 885 | reipl_block_fcp->ipl_info.fcp.opt = DIAG308_IPL_OPT_IPL; |
887 | } | 886 | } |
@@ -930,7 +929,7 @@ static int __init dump_ccw_init(void) | |||
930 | } | 929 | } |
931 | dump_block_ccw->hdr.len = IPL_PARM_BLK_CCW_LEN; | 930 | dump_block_ccw->hdr.len = IPL_PARM_BLK_CCW_LEN; |
932 | dump_block_ccw->hdr.version = IPL_PARM_BLOCK_VERSION; | 931 | dump_block_ccw->hdr.version = IPL_PARM_BLOCK_VERSION; |
933 | dump_block_ccw->hdr.blk0_len = sizeof(reipl_block_ccw->ipl_info.ccw); | 932 | dump_block_ccw->hdr.blk0_len = IPL_PARM_BLK0_CCW_LEN; |
934 | dump_block_ccw->hdr.pbt = DIAG308_IPL_TYPE_CCW; | 933 | dump_block_ccw->hdr.pbt = DIAG308_IPL_TYPE_CCW; |
935 | dump_capabilities |= IPL_TYPE_CCW; | 934 | dump_capabilities |= IPL_TYPE_CCW; |
936 | return 0; | 935 | return 0; |
@@ -954,7 +953,7 @@ static int __init dump_fcp_init(void) | |||
954 | } | 953 | } |
955 | dump_block_fcp->hdr.len = IPL_PARM_BLK_FCP_LEN; | 954 | dump_block_fcp->hdr.len = IPL_PARM_BLK_FCP_LEN; |
956 | dump_block_fcp->hdr.version = IPL_PARM_BLOCK_VERSION; | 955 | dump_block_fcp->hdr.version = IPL_PARM_BLOCK_VERSION; |
957 | dump_block_fcp->hdr.blk0_len = sizeof(dump_block_fcp->ipl_info.fcp); | 956 | dump_block_fcp->hdr.blk0_len = IPL_PARM_BLK0_FCP_LEN; |
958 | dump_block_fcp->hdr.pbt = DIAG308_IPL_TYPE_FCP; | 957 | dump_block_fcp->hdr.pbt = DIAG308_IPL_TYPE_FCP; |
959 | dump_block_fcp->ipl_info.fcp.opt = DIAG308_IPL_OPT_DUMP; | 958 | dump_block_fcp->ipl_info.fcp.opt = DIAG308_IPL_OPT_DUMP; |
960 | dump_capabilities |= IPL_TYPE_FCP; | 959 | dump_capabilities |= IPL_TYPE_FCP; |
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index a52c44455bf0..c774f1069e10 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S | |||
@@ -320,4 +320,5 @@ SYSCALL(sys_tee,sys_tee,sys_tee_wrapper) | |||
320 | SYSCALL(sys_vmsplice,sys_vmsplice,compat_sys_vmsplice_wrapper) | 320 | SYSCALL(sys_vmsplice,sys_vmsplice,compat_sys_vmsplice_wrapper) |
321 | NI_SYSCALL /* 310 sys_move_pages */ | 321 | NI_SYSCALL /* 310 sys_move_pages */ |
322 | SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper) | 322 | SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper) |
323 | SYSCALL(sys_epoll_pwait,sys_epoll_pwait,sys_ni_syscall) | 323 | SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper) |
324 | SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) | ||