diff options
author | David S. Miller <davem@davemloft.net> | 2010-02-17 01:09:29 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-17 01:09:29 -0500 |
commit | 2bb4646fce8d09916b351d1a62f98db7cec6fc41 (patch) | |
tree | c1f0d002e69868606eca9d1b919835f422892063 /arch/s390 | |
parent | 6836b9bdd98e3b500cd49512484df68f46e14659 (diff) | |
parent | b0483e78e5c4c9871fc5541875b3bc006846d46b (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/include/asm/irqflags.h | 9 | ||||
-rw-r--r-- | arch/s390/include/asm/lowcore.h | 4 | ||||
-rw-r--r-- | arch/s390/kernel/entry.S | 1 | ||||
-rw-r--r-- | arch/s390/kernel/entry64.S | 1 | ||||
-rw-r--r-- | arch/s390/kernel/signal.c | 2 | ||||
-rw-r--r-- | arch/s390/kvm/intercept.c | 4 |
6 files changed, 10 insertions, 11 deletions
diff --git a/arch/s390/include/asm/irqflags.h b/arch/s390/include/asm/irqflags.h index 3f26131120b7..c2fb432f576a 100644 --- a/arch/s390/include/asm/irqflags.h +++ b/arch/s390/include/asm/irqflags.h | |||
@@ -1,14 +1,12 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/irqflags.h | 2 | * Copyright IBM Corp. 2006,2010 |
3 | * | 3 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> |
4 | * Copyright (C) IBM Corp. 2006 | ||
5 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | ||
6 | */ | 4 | */ |
7 | 5 | ||
8 | #ifndef __ASM_IRQFLAGS_H | 6 | #ifndef __ASM_IRQFLAGS_H |
9 | #define __ASM_IRQFLAGS_H | 7 | #define __ASM_IRQFLAGS_H |
10 | 8 | ||
11 | #ifdef __KERNEL__ | 9 | #include <linux/types.h> |
12 | 10 | ||
13 | #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2) | 11 | #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2) |
14 | 12 | ||
@@ -102,5 +100,4 @@ static inline int raw_irqs_disabled_flags(unsigned long flags) | |||
102 | /* For spinlocks etc */ | 100 | /* For spinlocks etc */ |
103 | #define raw_local_irq_save(x) ((x) = raw_local_irq_disable()) | 101 | #define raw_local_irq_save(x) ((x) = raw_local_irq_disable()) |
104 | 102 | ||
105 | #endif /* __KERNEL__ */ | ||
106 | #endif /* __ASM_IRQFLAGS_H */ | 103 | #endif /* __ASM_IRQFLAGS_H */ |
diff --git a/arch/s390/include/asm/lowcore.h b/arch/s390/include/asm/lowcore.h index f2ef4b619ce1..c25dfac7dd76 100644 --- a/arch/s390/include/asm/lowcore.h +++ b/arch/s390/include/asm/lowcore.h | |||
@@ -293,12 +293,12 @@ struct _lowcore | |||
293 | __u64 clock_comparator; /* 0x02d0 */ | 293 | __u64 clock_comparator; /* 0x02d0 */ |
294 | __u32 machine_flags; /* 0x02d8 */ | 294 | __u32 machine_flags; /* 0x02d8 */ |
295 | __u32 ftrace_func; /* 0x02dc */ | 295 | __u32 ftrace_func; /* 0x02dc */ |
296 | __u8 pad_0x02f0[0x0300-0x02f0]; /* 0x02f0 */ | 296 | __u8 pad_0x02e0[0x0300-0x02e0]; /* 0x02e0 */ |
297 | 297 | ||
298 | /* Interrupt response block */ | 298 | /* Interrupt response block */ |
299 | __u8 irb[64]; /* 0x0300 */ | 299 | __u8 irb[64]; /* 0x0300 */ |
300 | 300 | ||
301 | __u8 pad_0x0400[0x0e00-0x0400]; /* 0x0400 */ | 301 | __u8 pad_0x0340[0x0e00-0x0340]; /* 0x0340 */ |
302 | 302 | ||
303 | /* | 303 | /* |
304 | * 0xe00 contains the address of the IPL Parameter Information | 304 | * 0xe00 contains the address of the IPL Parameter Information |
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index 48215d15762b..e8ef21c51bbe 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S | |||
@@ -571,6 +571,7 @@ pgm_svcper: | |||
571 | mvc __THREAD_per+__PER_access_id(1,%r8),__LC_PER_ACCESS_ID | 571 | mvc __THREAD_per+__PER_access_id(1,%r8),__LC_PER_ACCESS_ID |
572 | oi __TI_flags+3(%r9),_TIF_SINGLE_STEP # set TIF_SINGLE_STEP | 572 | oi __TI_flags+3(%r9),_TIF_SINGLE_STEP # set TIF_SINGLE_STEP |
573 | TRACE_IRQS_ON | 573 | TRACE_IRQS_ON |
574 | lm %r2,%r6,SP_R2(%r15) # load svc arguments | ||
574 | stosm __SF_EMPTY(%r15),0x03 # reenable interrupts | 575 | stosm __SF_EMPTY(%r15),0x03 # reenable interrupts |
575 | b BASED(sysc_do_svc) | 576 | b BASED(sysc_do_svc) |
576 | 577 | ||
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S index 9aff1d449b6e..f33658f09dd7 100644 --- a/arch/s390/kernel/entry64.S +++ b/arch/s390/kernel/entry64.S | |||
@@ -549,6 +549,7 @@ pgm_svcper: | |||
549 | mvc __THREAD_per+__PER_access_id(1,%r8),__LC_PER_ACCESS_ID | 549 | mvc __THREAD_per+__PER_access_id(1,%r8),__LC_PER_ACCESS_ID |
550 | oi __TI_flags+7(%r9),_TIF_SINGLE_STEP # set TIF_SINGLE_STEP | 550 | oi __TI_flags+7(%r9),_TIF_SINGLE_STEP # set TIF_SINGLE_STEP |
551 | TRACE_IRQS_ON | 551 | TRACE_IRQS_ON |
552 | lmg %r2,%r6,SP_R2(%r15) # load svc arguments | ||
552 | stosm __SF_EMPTY(%r15),0x03 # reenable interrupts | 553 | stosm __SF_EMPTY(%r15),0x03 # reenable interrupts |
553 | j sysc_do_svc | 554 | j sysc_do_svc |
554 | 555 | ||
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c index 1675c48b9145..6289945562b0 100644 --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c | |||
@@ -64,7 +64,7 @@ SYSCALL_DEFINE3(sigsuspend, int, history0, int, history1, old_sigset_t, mask) | |||
64 | recalc_sigpending(); | 64 | recalc_sigpending(); |
65 | spin_unlock_irq(¤t->sighand->siglock); | 65 | spin_unlock_irq(¤t->sighand->siglock); |
66 | 66 | ||
67 | current->state = TASK_INTERRUPTIBLE; | 67 | set_current_state(TASK_INTERRUPTIBLE); |
68 | schedule(); | 68 | schedule(); |
69 | set_thread_flag(TIF_RESTORE_SIGMASK); | 69 | set_thread_flag(TIF_RESTORE_SIGMASK); |
70 | 70 | ||
diff --git a/arch/s390/kvm/intercept.c b/arch/s390/kvm/intercept.c index ba9d8a7bc1ac..b40096494e46 100644 --- a/arch/s390/kvm/intercept.c +++ b/arch/s390/kvm/intercept.c | |||
@@ -213,7 +213,7 @@ static int handle_instruction_and_prog(struct kvm_vcpu *vcpu) | |||
213 | return rc2; | 213 | return rc2; |
214 | } | 214 | } |
215 | 215 | ||
216 | static const intercept_handler_t intercept_funcs[0x48 >> 2] = { | 216 | static const intercept_handler_t intercept_funcs[] = { |
217 | [0x00 >> 2] = handle_noop, | 217 | [0x00 >> 2] = handle_noop, |
218 | [0x04 >> 2] = handle_instruction, | 218 | [0x04 >> 2] = handle_instruction, |
219 | [0x08 >> 2] = handle_prog, | 219 | [0x08 >> 2] = handle_prog, |
@@ -230,7 +230,7 @@ int kvm_handle_sie_intercept(struct kvm_vcpu *vcpu) | |||
230 | intercept_handler_t func; | 230 | intercept_handler_t func; |
231 | u8 code = vcpu->arch.sie_block->icptcode; | 231 | u8 code = vcpu->arch.sie_block->icptcode; |
232 | 232 | ||
233 | if (code & 3 || code > 0x48) | 233 | if (code & 3 || (code >> 2) >= ARRAY_SIZE(intercept_funcs)) |
234 | return -ENOTSUPP; | 234 | return -ENOTSUPP; |
235 | func = intercept_funcs[code >> 2]; | 235 | func = intercept_funcs[code >> 2]; |
236 | if (func) | 236 | if (func) |