target-ppc: don't invalidate msr MSR_HVB bit in cpu_post_load
commit993ebe4a0be9aa4e4821818a81fab00b1ab1a79a
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Fri, 17 Apr 2015 07:16:49 +0000 (17 08:16 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 17 Apr 2015 10:44:01 +0000 (17 11:44 +0100)
treee5bd6f8f53cc063d769fcd45390ba7e5ea21eb89
parentb8df9208f357d2b36e1b19634aea973618dc7ba8
target-ppc: don't invalidate msr MSR_HVB bit in cpu_post_load

The invalidation code introduced in commit 2360b works by inverting most bits
of env->msr to ensure that hreg_store_msr() will forcibly update the CPU env
state to reflect the new msr value post-migration. Unfortunately
hreg_store_msr() is called with alter_hv set to 0 which preserves the MSR_HVB
state from the CPU env which is now the opposite value to what it should be.

Ensure that we don't invalidate the msr MSR_HVB bit during cpu_post_load so
that the correct value is restored. This fixes suspend/resume for PPC64.

Reported-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Alexander Graf <agraf@suse.de>
Message-id: 1429255009-12751-1-git-send-email-mark.cave-ayland@ilande.co.uk
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target-ppc/machine.c