Nicholas Piggin 6de6638b35 KVM: PPC: Book3S HV: Handle host system reset in guest mode
If the host takes a system reset interrupt while a guest is running,
the CPU must exit the guest before processing the host exception
handler.

After this patch, taking a sysrq+x with a CPU running in a guest
gives a trace like this:

   cpu 0x27: Vector: 100 (System Reset) at [c000000fdf5776f0]
       pc: c008000010158b80: kvmppc_run_core+0x16b8/0x1ad0 [kvm_hv]
       lr: c008000010158b80: kvmppc_run_core+0x16b8/0x1ad0 [kvm_hv]
       sp: c000000fdf577850
      msr: 9000000002803033
     current = 0xc000000fdf4b1e00
     paca    = 0xc00000000fd4d680	 softe: 3	 irq_happened: 0x01
       pid   = 6608, comm = qemu-system-ppc
   Linux version 4.14.0-rc7-01489-g47e1893a404a-dirty #26 SMP
   [c000000fdf577a00] c008000010159dd4 kvmppc_vcpu_run_hv+0x3dc/0x12d0 [kvm_hv]
   [c000000fdf577b30] c0080000100a537c kvmppc_vcpu_run+0x44/0x60 [kvm]
   [c000000fdf577b60] c0080000100a1ae0 kvm_arch_vcpu_ioctl_run+0x118/0x310 [kvm]
   [c000000fdf577c00] c008000010093e98 kvm_vcpu_ioctl+0x530/0x7c0 [kvm]
   [c000000fdf577d50] c000000000357bf8 do_vfs_ioctl+0xd8/0x8c0
   [c000000fdf577df0] c000000000358448 SyS_ioctl+0x68/0x100
   [c000000fdf577e30] c00000000000b220 system_call+0x58/0x6c
   --- Exception: c01 (System Call) at 00007fff76868df0
   SP (7fff7069baf0) is in userspace

Fixes: e36d0a2ed5 ("powerpc/powernv: Implement NMI IPI with OPAL_SIGNAL_SYSTEM_RESET")
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2017-11-06 16:48:06 +11:00
..
2017-09-28 16:28:22 +10:00
2013-04-18 13:03:53 +10:00
2015-05-28 15:31:53 +02:00
2012-03-28 18:30:02 +01:00
2017-03-28 18:23:54 -04:00
2017-08-15 22:55:58 +10:00
2011-11-08 14:51:46 +11:00
2015-01-12 05:04:13 -08:00
2015-02-03 18:47:18 +01:00
2016-03-04 23:50:27 -06:00
2016-09-09 16:18:07 +10:00
2016-03-01 19:27:20 +11:00
2017-04-21 21:08:47 +10:00
2017-06-28 06:54:33 -07:00
2015-02-23 14:52:04 +11:00
2016-08-05 09:00:54 -04:00
2011-07-26 16:49:47 -07:00
2013-12-09 11:40:25 +11:00
2016-08-05 09:00:54 -04:00
2010-05-05 09:11:10 -04:00
2017-03-31 23:10:00 +11:00
2016-09-20 20:57:12 +10:00
2011-03-31 11:26:23 -03:00
2016-06-14 13:58:26 +10:00
2017-07-07 13:55:45 -07:00
2016-06-14 13:58:26 +10:00
2016-06-14 13:58:26 +10:00
2017-01-26 17:49:34 -06:00
2013-11-06 14:13:49 +11:00
2017-08-31 14:26:56 +10:00
2011-03-31 11:26:23 -03:00
2017-09-01 16:42:45 +10:00
2016-07-21 18:51:42 +10:00
2017-03-16 20:45:53 +11:00
2017-05-05 11:36:44 -07:00
2016-06-14 13:58:26 +10:00
2017-03-16 20:45:53 +11:00
2014-02-17 11:19:37 +11:00
2017-09-08 18:26:48 -07:00
2015-05-05 13:35:39 -06:00
2017-09-02 21:02:37 +10:00