spapr_hcall: Fix little-endian resource handling in H_SET_MODE
commita46622fd07edc6fd3c66f8ab79b4782a78b115f3
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Fri, 7 Mar 2014 04:37:40 +0000 (7 15:37 +1100)
committerAndreas Färber <afaerber@suse.de>
Thu, 20 Mar 2014 01:39:33 +0000 (20 02:39 +0100)
tree1dd241ce1d0f1deaba63d297ce960fc95a3a4c40
parentdf99d30d4e0dd22be5572235a5213de429e00747
spapr_hcall: Fix little-endian resource handling in H_SET_MODE

This changes resource code definitions to ones used in the host kernel.

This fixes H_SET_MODE_RESOURCE_LE (switch between big endian and
little endian) to sync registers from KVM before changing LPCR value.

This adds a set_spr() helper to update an SPR in a CPU's context to avoid
possible races and makes use of it to change LPCR.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
hw/ppc/spapr_hcall.c
include/hw/ppc/spapr.h