Gautham R. Shenoy
bd00a240dc
powerpc/powernv: Fix restore of SPRs upon wake up from hypervisor state loss
...
pnv_wakeup_tb_loss() currently expects cr4 to be "eq" if the CPU is
waking up from a complete hypervisor state loss. Hence, it currently
restores the SPR contents only if cr4 is "eq".
However, after commit bcef83a00d
("powerpc/powernv: Add platform
support for stop instruction"), on ISA v3.0 CPUs, the function
pnv_restore_hyp_resource() sets cr4 to contain the result of the
comparison between the state the CPU has woken up from and the first
deep stop state before calling pnv_wakeup_tb_loss().
Thus if the CPU woke up from a state that is deeper than the first
deep stop state, cr4 will have "gt" set and hence, pnv_wakeup_tb_loss()
will fail to restore the SPRs on waking up from such a state.
Fix the code in pnv_wakeup_tb_loss() to restore the SPR states when cr4
is "eq" or "gt".
Fixes: bcef83a00d
("powerpc/powernv: Add platform support for stop instruction")
Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com >
Reviewed-by: Shreyas B. Prabhu <shreyasbp@gmail.com >
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au >
2016-09-12 12:45:50 +10:00
..
2016-08-10 23:04:12 +10:00
2016-08-10 23:04:12 +10:00
2016-08-01 11:15:03 +10:00
2016-07-09 03:26:53 -05:00
2016-05-01 18:32:32 +10:00
2015-04-11 20:49:28 +10:00
2016-06-14 13:58:26 +10:00
2016-03-04 23:44:51 -06:00
2016-07-17 16:42:44 +10:00
2016-08-01 11:15:06 +10:00
2014-11-10 09:59:26 +11:00
2016-07-14 20:26:22 +10:00
2015-03-20 14:51:53 +11:00
2016-08-04 08:50:07 -04:00
2015-07-13 10:10:55 +10:00
2016-08-04 08:50:07 -04:00
2016-07-08 22:09:50 +10:00
2016-06-21 15:30:56 +10:00
2016-07-15 14:57:47 +10:00
2016-04-12 21:05:18 +10:00
2016-04-27 09:19:37 +10:00
2014-11-27 09:32:58 +11:00
2016-08-09 16:52:03 +10:00
2016-07-09 01:43:50 -05:00
2016-08-29 12:47:56 +10:00
2013-03-13 14:19:36 -05:00
2014-06-10 18:54:22 -07:00
2016-07-09 01:43:50 -05:00
2016-08-22 11:09:33 +10:00
2016-07-05 23:49:46 +10:00
2016-03-02 23:34:49 +11:00
2015-08-07 23:00:01 -05:00
2016-07-21 20:10:37 +10:00
2016-07-09 02:02:48 -05:00
2014-06-11 16:31:21 +10:00
2016-03-01 19:27:20 +11:00
2016-07-21 19:14:29 +10:00
2013-05-02 10:31:01 +10:00
2016-03-04 23:44:51 -06:00
2016-03-03 22:06:08 +11:00
2016-08-04 08:50:07 -04:00
2014-04-23 10:05:16 +10:00
2016-09-12 12:45:50 +10:00
2015-06-02 21:37:19 -05:00
2014-04-23 10:05:16 +10:00
2013-07-01 11:10:35 +10:00
2015-10-12 15:30:09 +11:00
2013-08-14 14:58:08 +10:00
2016-05-31 16:41:52 +08:00
2016-08-04 08:50:07 -04:00
2016-08-01 11:15:03 +10:00
2016-05-01 18:32:32 +10:00
2015-08-03 11:34:12 +02:00
2016-02-18 00:03:26 +11:00
2016-08-22 11:09:33 +10:00
2015-08-06 15:10:20 +10:00
2014-09-25 23:14:46 +10:00
2016-07-21 18:59:09 +10:00
2016-05-11 21:54:04 +10:00
2016-08-22 11:09:33 +10:00
2016-05-11 21:53:59 +10:00
2016-08-09 19:46:54 +10:00
2016-06-14 13:58:26 +10:00
2016-07-21 18:59:09 +10:00
2014-10-15 11:23:20 +11:00
2016-03-07 14:53:53 +11:00
2016-07-21 20:10:42 +10:00
2016-03-07 14:53:53 +11:00
2015-06-02 11:47:45 +10:00
2016-06-02 10:59:31 -07:00
2015-03-24 13:15:52 +11:00
2016-08-01 11:15:01 +10:00
2014-11-19 21:41:51 +11:00
2016-07-15 14:57:47 +10:00
2016-07-07 16:33:27 +10:00
2015-11-24 17:45:18 -06:00
2016-08-22 11:09:33 +10:00
2016-05-11 21:54:26 +10:00
2016-03-11 17:20:11 -06:00
2016-03-11 17:20:12 -06:00
2013-06-29 12:57:50 +04:00
2016-08-10 16:34:20 +10:00
2014-09-25 23:14:46 +10:00
2016-08-22 11:09:33 +10:00
2013-08-14 15:33:26 +10:00
2016-08-01 11:14:57 +10:00
2013-10-18 18:44:49 -05:00
2016-08-10 16:34:20 +10:00
2013-07-01 11:10:34 +10:00
2014-03-07 13:50:19 +11:00
2014-07-28 11:30:54 +10:00
2015-04-11 20:49:09 +10:00
2016-06-14 13:58:26 +10:00
2016-07-14 21:12:06 +10:00
2016-07-08 19:22:15 +10:00
2016-08-10 19:41:58 +10:00
2016-08-10 19:41:58 +10:00
2016-08-01 11:15:03 +10:00
2016-07-21 19:17:46 +10:00
2016-08-29 12:48:40 +10:00
2016-08-29 12:48:40 +10:00
2016-03-01 19:27:20 +11:00
2016-03-01 19:27:20 +11:00
2014-01-15 13:46:44 +11:00
2016-08-22 11:09:33 +10:00
2016-01-11 14:27:28 +11:00
2014-10-09 22:26:04 -04:00
2013-10-31 12:37:29 +11:00
2014-01-07 19:06:03 -06:00
2016-05-01 18:33:04 +10:00
2013-05-09 13:46:38 -04:00
2015-03-28 22:03:40 +11:00
2016-06-16 22:23:11 +10:00
2015-11-26 22:11:17 +11:00
2015-11-26 22:11:17 +11:00
2015-03-28 22:03:40 +11:00
2016-08-05 09:48:22 -04:00
2016-07-15 15:00:18 +10:00
2015-08-06 16:36:23 +10:00
2016-08-22 11:09:33 +10:00
2014-11-12 13:47:20 +11:00
2015-04-07 17:15:13 +10:00
2013-11-20 16:31:01 +01:00
2016-08-09 16:52:00 +10:00
2013-10-11 17:26:49 +11:00
2016-07-26 14:16:19 +10:00
2016-08-04 08:50:07 -04:00
2016-07-19 20:17:07 +10:00