diff options
author | J. Bruce Fields <bfields@citi.umich.edu> | 2009-06-15 21:08:07 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2009-06-15 21:08:07 -0400 |
commit | 7eef4091a653c243a87e5375c54504cc03bec4d8 (patch) | |
tree | f65b77f830b2c8f7d014512badfef5df0d591ee9 /arch/ia64 | |
parent | 0a93a47f042c459f0f46942c3a920e3c81878031 (diff) | |
parent | 07a2039b8eb0af4ff464efd3dfd95de5c02648c6 (diff) |
Merge commit 'v2.6.30' into for-2.6.31
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/include/asm/idle.h | 7 | ||||
-rw-r--r-- | arch/ia64/include/asm/xen/events.h | 7 | ||||
-rw-r--r-- | arch/ia64/kvm/kvm-ia64.c | 14 | ||||
-rw-r--r-- | arch/ia64/xen/xensetup.S | 2 |
4 files changed, 16 insertions, 14 deletions
diff --git a/arch/ia64/include/asm/idle.h b/arch/ia64/include/asm/idle.h new file mode 100644 index 00000000000..b7685015a8b --- /dev/null +++ b/arch/ia64/include/asm/idle.h | |||
@@ -0,0 +1,7 @@ | |||
1 | #ifndef _ASM_IA64_IDLE_H | ||
2 | #define _ASM_IA64_IDLE_H | ||
3 | |||
4 | static inline void enter_idle(void) { } | ||
5 | static inline void exit_idle(void) { } | ||
6 | |||
7 | #endif /* _ASM_IA64_IDLE_H */ | ||
diff --git a/arch/ia64/include/asm/xen/events.h b/arch/ia64/include/asm/xen/events.h index 73248781fba..b8370c8b619 100644 --- a/arch/ia64/include/asm/xen/events.h +++ b/arch/ia64/include/asm/xen/events.h | |||
@@ -36,14 +36,9 @@ static inline int xen_irqs_disabled(struct pt_regs *regs) | |||
36 | return !(ia64_psr(regs)->i); | 36 | return !(ia64_psr(regs)->i); |
37 | } | 37 | } |
38 | 38 | ||
39 | static inline void xen_do_IRQ(int irq, struct pt_regs *regs) | 39 | static inline void handle_irq(int irq, struct pt_regs *regs) |
40 | { | 40 | { |
41 | struct pt_regs *old_regs; | ||
42 | old_regs = set_irq_regs(regs); | ||
43 | irq_enter(); | ||
44 | __do_IRQ(irq); | 41 | __do_IRQ(irq); |
45 | irq_exit(); | ||
46 | set_irq_regs(old_regs); | ||
47 | } | 42 | } |
48 | #define irq_ctx_init(cpu) do { } while (0) | 43 | #define irq_ctx_init(cpu) do { } while (0) |
49 | 44 | ||
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c index 28af6a731bb..d20a5db4c4d 100644 --- a/arch/ia64/kvm/kvm-ia64.c +++ b/arch/ia64/kvm/kvm-ia64.c | |||
@@ -610,20 +610,22 @@ static int __vcpu_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) | |||
610 | int r; | 610 | int r; |
611 | 611 | ||
612 | again: | 612 | again: |
613 | preempt_disable(); | ||
614 | local_irq_disable(); | ||
615 | |||
616 | if (signal_pending(current)) { | 613 | if (signal_pending(current)) { |
617 | local_irq_enable(); | ||
618 | preempt_enable(); | ||
619 | r = -EINTR; | 614 | r = -EINTR; |
620 | kvm_run->exit_reason = KVM_EXIT_INTR; | 615 | kvm_run->exit_reason = KVM_EXIT_INTR; |
621 | goto out; | 616 | goto out; |
622 | } | 617 | } |
623 | 618 | ||
619 | /* | ||
620 | * down_read() may sleep and return with interrupts enabled | ||
621 | */ | ||
622 | down_read(&vcpu->kvm->slots_lock); | ||
623 | |||
624 | preempt_disable(); | ||
625 | local_irq_disable(); | ||
626 | |||
624 | vcpu->guest_mode = 1; | 627 | vcpu->guest_mode = 1; |
625 | kvm_guest_enter(); | 628 | kvm_guest_enter(); |
626 | down_read(&vcpu->kvm->slots_lock); | ||
627 | r = vti_vcpu_run(vcpu, kvm_run); | 629 | r = vti_vcpu_run(vcpu, kvm_run); |
628 | if (r < 0) { | 630 | if (r < 0) { |
629 | local_irq_enable(); | 631 | local_irq_enable(); |
diff --git a/arch/ia64/xen/xensetup.S b/arch/ia64/xen/xensetup.S index 28fed1fcc07..aff8346ea19 100644 --- a/arch/ia64/xen/xensetup.S +++ b/arch/ia64/xen/xensetup.S | |||
@@ -54,8 +54,6 @@ END(startup_xen) | |||
54 | 54 | ||
55 | #define isBP p3 // are we the Bootstrap Processor? | 55 | #define isBP p3 // are we the Bootstrap Processor? |
56 | 56 | ||
57 | .text | ||
58 | |||
59 | GLOBAL_ENTRY(xen_setup_hook) | 57 | GLOBAL_ENTRY(xen_setup_hook) |
60 | mov r8=XEN_PV_DOMAIN_ASM | 58 | mov r8=XEN_PV_DOMAIN_ASM |
61 | (isBP) movl r9=xen_domain_type;; | 59 | (isBP) movl r9=xen_domain_type;; |