diff options
Diffstat (limited to 'arch/powerpc/include/asm/kvm_ppc.h')
-rw-r--r-- | arch/powerpc/include/asm/kvm_ppc.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h index c8317fbf92c4..fcd53f0d34ba 100644 --- a/arch/powerpc/include/asm/kvm_ppc.h +++ b/arch/powerpc/include/asm/kvm_ppc.h | |||
@@ -54,12 +54,13 @@ extern void kvmppc_handler_highmem(void); | |||
54 | extern void kvmppc_dump_vcpu(struct kvm_vcpu *vcpu); | 54 | extern void kvmppc_dump_vcpu(struct kvm_vcpu *vcpu); |
55 | extern int kvmppc_handle_load(struct kvm_run *run, struct kvm_vcpu *vcpu, | 55 | extern int kvmppc_handle_load(struct kvm_run *run, struct kvm_vcpu *vcpu, |
56 | unsigned int rt, unsigned int bytes, | 56 | unsigned int rt, unsigned int bytes, |
57 | int is_bigendian); | 57 | int is_default_endian); |
58 | extern int kvmppc_handle_loads(struct kvm_run *run, struct kvm_vcpu *vcpu, | 58 | extern int kvmppc_handle_loads(struct kvm_run *run, struct kvm_vcpu *vcpu, |
59 | unsigned int rt, unsigned int bytes, | 59 | unsigned int rt, unsigned int bytes, |
60 | int is_bigendian); | 60 | int is_default_endian); |
61 | extern int kvmppc_handle_store(struct kvm_run *run, struct kvm_vcpu *vcpu, | 61 | extern int kvmppc_handle_store(struct kvm_run *run, struct kvm_vcpu *vcpu, |
62 | u64 val, unsigned int bytes, int is_bigendian); | 62 | u64 val, unsigned int bytes, |
63 | int is_default_endian); | ||
63 | 64 | ||
64 | extern int kvmppc_emulate_instruction(struct kvm_run *run, | 65 | extern int kvmppc_emulate_instruction(struct kvm_run *run, |
65 | struct kvm_vcpu *vcpu); | 66 | struct kvm_vcpu *vcpu); |
@@ -455,6 +456,12 @@ static inline void kvmppc_fix_ee_before_entry(void) | |||
455 | trace_hardirqs_on(); | 456 | trace_hardirqs_on(); |
456 | 457 | ||
457 | #ifdef CONFIG_PPC64 | 458 | #ifdef CONFIG_PPC64 |
459 | /* | ||
460 | * To avoid races, the caller must have gone directly from having | ||
461 | * interrupts fully-enabled to hard-disabled. | ||
462 | */ | ||
463 | WARN_ON(local_paca->irq_happened != PACA_IRQ_HARD_DIS); | ||
464 | |||
458 | /* Only need to enable IRQs by hard enabling them after this */ | 465 | /* Only need to enable IRQs by hard enabling them after this */ |
459 | local_paca->irq_happened = 0; | 466 | local_paca->irq_happened = 0; |
460 | local_paca->soft_enabled = 1; | 467 | local_paca->soft_enabled = 1; |