diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-27 13:48:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-27 13:48:46 -0400 |
commit | cc106eb35ed4abea675bce0d8fe40a46ff0b4a72 (patch) | |
tree | 7d18624a769680049f2933ce48a02c8e08e5937c /arch/s390/kernel | |
parent | 4e455c6782bd6bf6a0135c1e1c9f018ec191979e (diff) | |
parent | 3bfe68580a9d2a25465fc004986acd7991d700d1 (diff) |
Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
[S390] fill out file list in s390 MAINTAINERS entry
[S390] Add support for LZO-compressed kernels.
[S390] cmm: get rid of CMM_PROC config option
[S390] cmm: remove superfluous EXPORT_SYMBOLs plus cleanups
[S390] dasd: unit check handling during internal cio I/O
[S390] cio: unit check handling during internal I/O
[S390] ccwgroup: add locking around drvdata access
[S390] cio: remove stsch
[S390] spp: remove KVM_AWARE_CMF config option
[S390] kprobes: forbid probing of stnsm/stosm/epsw
[S390] spp: fix compilation for CONFIG_32BIT
[S390] atomic: implement atomic64_dec_if_positive
[S390] cmm: fix crash on module unload
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r-- | arch/s390/kernel/asm-offsets.c | 4 | ||||
-rw-r--r-- | arch/s390/kernel/entry64.S | 2 | ||||
-rw-r--r-- | arch/s390/kernel/kprobes.c | 3 | ||||
-rw-r--r-- | arch/s390/kernel/setup.c | 2 |
4 files changed, 7 insertions, 4 deletions
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c index d9b490a2716e..5232278d79ad 100644 --- a/arch/s390/kernel/asm-offsets.c +++ b/arch/s390/kernel/asm-offsets.c | |||
@@ -132,8 +132,6 @@ int main(void) | |||
132 | DEFINE(__LC_MCCK_CLOCK, offsetof(struct _lowcore, mcck_clock)); | 132 | DEFINE(__LC_MCCK_CLOCK, offsetof(struct _lowcore, mcck_clock)); |
133 | DEFINE(__LC_MACHINE_FLAGS, offsetof(struct _lowcore, machine_flags)); | 133 | DEFINE(__LC_MACHINE_FLAGS, offsetof(struct _lowcore, machine_flags)); |
134 | DEFINE(__LC_FTRACE_FUNC, offsetof(struct _lowcore, ftrace_func)); | 134 | DEFINE(__LC_FTRACE_FUNC, offsetof(struct _lowcore, ftrace_func)); |
135 | DEFINE(__LC_SIE_HOOK, offsetof(struct _lowcore, sie_hook)); | ||
136 | DEFINE(__LC_CMF_HPP, offsetof(struct _lowcore, cmf_hpp)); | ||
137 | DEFINE(__LC_IRB, offsetof(struct _lowcore, irb)); | 135 | DEFINE(__LC_IRB, offsetof(struct _lowcore, irb)); |
138 | DEFINE(__LC_CPU_TIMER_SAVE_AREA, offsetof(struct _lowcore, cpu_timer_save_area)); | 136 | DEFINE(__LC_CPU_TIMER_SAVE_AREA, offsetof(struct _lowcore, cpu_timer_save_area)); |
139 | DEFINE(__LC_CLOCK_COMP_SAVE_AREA, offsetof(struct _lowcore, clock_comp_save_area)); | 137 | DEFINE(__LC_CLOCK_COMP_SAVE_AREA, offsetof(struct _lowcore, clock_comp_save_area)); |
@@ -154,6 +152,8 @@ int main(void) | |||
154 | DEFINE(__LC_FP_CREG_SAVE_AREA, offsetof(struct _lowcore, fpt_creg_save_area)); | 152 | DEFINE(__LC_FP_CREG_SAVE_AREA, offsetof(struct _lowcore, fpt_creg_save_area)); |
155 | DEFINE(__LC_LAST_BREAK, offsetof(struct _lowcore, breaking_event_addr)); | 153 | DEFINE(__LC_LAST_BREAK, offsetof(struct _lowcore, breaking_event_addr)); |
156 | DEFINE(__LC_VDSO_PER_CPU, offsetof(struct _lowcore, vdso_per_cpu_data)); | 154 | DEFINE(__LC_VDSO_PER_CPU, offsetof(struct _lowcore, vdso_per_cpu_data)); |
155 | DEFINE(__LC_SIE_HOOK, offsetof(struct _lowcore, sie_hook)); | ||
156 | DEFINE(__LC_CMF_HPP, offsetof(struct _lowcore, cmf_hpp)); | ||
157 | #endif /* CONFIG_32BIT */ | 157 | #endif /* CONFIG_32BIT */ |
158 | return 0; | 158 | return 0; |
159 | } | 159 | } |
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S index 178d92536d90..e7192e1cb678 100644 --- a/arch/s390/kernel/entry64.S +++ b/arch/s390/kernel/entry64.S | |||
@@ -65,7 +65,7 @@ _TIF_SYSCALL = (_TIF_SYSCALL_TRACE>>8 | _TIF_SYSCALL_AUDIT>>8 | \ | |||
65 | ltgr %r3,%r3 | 65 | ltgr %r3,%r3 |
66 | jz 0f | 66 | jz 0f |
67 | basr %r14,%r3 | 67 | basr %r14,%r3 |
68 | 0: | 68 | 0: |
69 | #endif | 69 | #endif |
70 | .endm | 70 | .endm |
71 | 71 | ||
diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c index 3d34eef5a2c3..2a3d2bf6f083 100644 --- a/arch/s390/kernel/kprobes.c +++ b/arch/s390/kernel/kprobes.c | |||
@@ -63,6 +63,8 @@ int __kprobes is_prohibited_opcode(kprobe_opcode_t *instruction) | |||
63 | case 0x0b: /* bsm */ | 63 | case 0x0b: /* bsm */ |
64 | case 0x83: /* diag */ | 64 | case 0x83: /* diag */ |
65 | case 0x44: /* ex */ | 65 | case 0x44: /* ex */ |
66 | case 0xac: /* stnsm */ | ||
67 | case 0xad: /* stosm */ | ||
66 | return -EINVAL; | 68 | return -EINVAL; |
67 | } | 69 | } |
68 | switch (*(__u16 *) instruction) { | 70 | switch (*(__u16 *) instruction) { |
@@ -72,6 +74,7 @@ int __kprobes is_prohibited_opcode(kprobe_opcode_t *instruction) | |||
72 | case 0xb258: /* bsg */ | 74 | case 0xb258: /* bsg */ |
73 | case 0xb218: /* pc */ | 75 | case 0xb218: /* pc */ |
74 | case 0xb228: /* pt */ | 76 | case 0xb228: /* pt */ |
77 | case 0xb98d: /* epsw */ | ||
75 | return -EINVAL; | 78 | return -EINVAL; |
76 | } | 79 | } |
77 | return 0; | 80 | return 0; |
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index 7d893248d265..c8e8e1354e1d 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c | |||
@@ -401,7 +401,6 @@ setup_lowcore(void) | |||
401 | lc->io_new_psw.mask = psw_kernel_bits; | 401 | lc->io_new_psw.mask = psw_kernel_bits; |
402 | lc->io_new_psw.addr = PSW_ADDR_AMODE | (unsigned long) io_int_handler; | 402 | lc->io_new_psw.addr = PSW_ADDR_AMODE | (unsigned long) io_int_handler; |
403 | lc->clock_comparator = -1ULL; | 403 | lc->clock_comparator = -1ULL; |
404 | lc->cmf_hpp = -1ULL; | ||
405 | lc->kernel_stack = ((unsigned long) &init_thread_union) + THREAD_SIZE; | 404 | lc->kernel_stack = ((unsigned long) &init_thread_union) + THREAD_SIZE; |
406 | lc->async_stack = (unsigned long) | 405 | lc->async_stack = (unsigned long) |
407 | __alloc_bootmem(ASYNC_SIZE, ASYNC_SIZE, 0) + ASYNC_SIZE; | 406 | __alloc_bootmem(ASYNC_SIZE, ASYNC_SIZE, 0) + ASYNC_SIZE; |
@@ -418,6 +417,7 @@ setup_lowcore(void) | |||
418 | __ctl_set_bit(14, 29); | 417 | __ctl_set_bit(14, 29); |
419 | } | 418 | } |
420 | #else | 419 | #else |
420 | lc->cmf_hpp = -1ULL; | ||
421 | lc->vdso_per_cpu_data = (unsigned long) &lc->paste[0]; | 421 | lc->vdso_per_cpu_data = (unsigned long) &lc->paste[0]; |
422 | #endif | 422 | #endif |
423 | lc->sync_enter_timer = S390_lowcore.sync_enter_timer; | 423 | lc->sync_enter_timer = S390_lowcore.sync_enter_timer; |