[POWERPC] Don't access HID registers if running on a Hypervisor.
The following patch avoids accessing Hypervisor privilege HID registers when running on a Hypervisor (MSR[HV]=0). Signed-off-by: Jimi Xenidis <jimix@watson.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
70c3967d4f
commit
6d7c466292
|
@ -125,7 +125,12 @@ _GLOBAL(__save_cpu_setup)
|
||||||
cmpwi r0,0x44
|
cmpwi r0,0x44
|
||||||
bne 2f
|
bne 2f
|
||||||
|
|
||||||
1: /* Save HID0,1,4 and 5 */
|
1: /* skip if not running in HV mode */
|
||||||
|
mfmsr r0
|
||||||
|
rldicl. r0,r0,4,63
|
||||||
|
beq 2f
|
||||||
|
|
||||||
|
/* Save HID0,1,4 and 5 */
|
||||||
mfspr r3,SPRN_HID0
|
mfspr r3,SPRN_HID0
|
||||||
std r3,CS_HID0(r5)
|
std r3,CS_HID0(r5)
|
||||||
mfspr r3,SPRN_HID1
|
mfspr r3,SPRN_HID1
|
||||||
|
@ -159,7 +164,12 @@ _GLOBAL(__restore_cpu_setup)
|
||||||
cmpwi r0,0x44
|
cmpwi r0,0x44
|
||||||
bnelr
|
bnelr
|
||||||
|
|
||||||
1: /* Before accessing memory, we make sure rm_ci is clear */
|
1: /* skip if not running in HV mode */
|
||||||
|
mfmsr r0
|
||||||
|
rldicl. r0,r0,4,63
|
||||||
|
beqlr
|
||||||
|
|
||||||
|
/* Before accessing memory, we make sure rm_ci is clear */
|
||||||
li r0,0
|
li r0,0
|
||||||
mfspr r3,SPRN_HID4
|
mfspr r3,SPRN_HID4
|
||||||
rldimi r3,r0,40,23 /* clear bit 23 (rm_ci) */
|
rldimi r3,r0,40,23 /* clear bit 23 (rm_ci) */
|
||||||
|
|
Loading…
Reference in New Issue