diff options
author | Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> | 2011-10-18 06:27:15 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2011-10-30 06:24:05 -0400 |
commit | 7697e71f72b45a1bd0abe70918c383100fcc8514 (patch) | |
tree | afad6ff9dcd00a031de31b9cd34d2ae09484586a /arch/s390/include/asm/kvm_host.h | |
parent | 7eef87dc99e419b1cc051e4417c37e4744d7b661 (diff) |
KVM: s390: implement sigp external call
Implement sigp external call, which might be required for guests that
issue an external call instead of an emergency signal for IPI.
This fixes an issue with "KVM: unknown SIGP: 0x02" when booting
such an SMP guest.
Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/s390/include/asm/kvm_host.h')
-rw-r--r-- | arch/s390/include/asm/kvm_host.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h index 00ff00dfb24c..1ca5de07ac36 100644 --- a/arch/s390/include/asm/kvm_host.h +++ b/arch/s390/include/asm/kvm_host.h | |||
@@ -119,6 +119,7 @@ struct kvm_vcpu_stat { | |||
119 | u32 instruction_lctlg; | 119 | u32 instruction_lctlg; |
120 | u32 exit_program_interruption; | 120 | u32 exit_program_interruption; |
121 | u32 exit_instr_and_program; | 121 | u32 exit_instr_and_program; |
122 | u32 deliver_external_call; | ||
122 | u32 deliver_emergency_signal; | 123 | u32 deliver_emergency_signal; |
123 | u32 deliver_service_signal; | 124 | u32 deliver_service_signal; |
124 | u32 deliver_virtio_interrupt; | 125 | u32 deliver_virtio_interrupt; |
@@ -138,6 +139,7 @@ struct kvm_vcpu_stat { | |||
138 | u32 instruction_stfl; | 139 | u32 instruction_stfl; |
139 | u32 instruction_tprot; | 140 | u32 instruction_tprot; |
140 | u32 instruction_sigp_sense; | 141 | u32 instruction_sigp_sense; |
142 | u32 instruction_sigp_external_call; | ||
141 | u32 instruction_sigp_emergency; | 143 | u32 instruction_sigp_emergency; |
142 | u32 instruction_sigp_stop; | 144 | u32 instruction_sigp_stop; |
143 | u32 instruction_sigp_arch; | 145 | u32 instruction_sigp_arch; |
@@ -174,6 +176,10 @@ struct kvm_s390_prefix_info { | |||
174 | __u32 address; | 176 | __u32 address; |
175 | }; | 177 | }; |
176 | 178 | ||
179 | struct kvm_s390_extcall_info { | ||
180 | __u16 code; | ||
181 | }; | ||
182 | |||
177 | struct kvm_s390_emerg_info { | 183 | struct kvm_s390_emerg_info { |
178 | __u16 code; | 184 | __u16 code; |
179 | }; | 185 | }; |
@@ -186,6 +192,7 @@ struct kvm_s390_interrupt_info { | |||
186 | struct kvm_s390_ext_info ext; | 192 | struct kvm_s390_ext_info ext; |
187 | struct kvm_s390_pgm_info pgm; | 193 | struct kvm_s390_pgm_info pgm; |
188 | struct kvm_s390_emerg_info emerg; | 194 | struct kvm_s390_emerg_info emerg; |
195 | struct kvm_s390_extcall_info extcall; | ||
189 | struct kvm_s390_prefix_info prefix; | 196 | struct kvm_s390_prefix_info prefix; |
190 | }; | 197 | }; |
191 | }; | 198 | }; |