Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e8ebedbf authored by Michael Neuling's avatar Michael Neuling Committed by Michael Ellerman
Browse files

KVM: PPC: Book3S HV: Return error from h_set_dabr() on POWER9



POWER7 compat mode guests can use h_set_dabr on POWER9. POWER9 should
use the DAWR but since it's disabled there we can't.

This returns H_UNSUPPORTED on a h_set_dabr() on POWER9 where the DAWR
is disabled.

Current Linux guests ignore this error, so they will silently not get
the DAWR (sigh). The same error code is being used by POWERVM in this
case.

Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 398e712c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -88,6 +88,7 @@
#define H_P8		-61
#define H_P9		-62
#define H_TOO_BIG	-64
#define H_UNSUPPORTED	-67
#define H_OVERLAP	-68
#define H_INTERRUPT	-69
#define H_BAD_DATA	-70
+7 −1
Original line number Diff line number Diff line
@@ -2563,8 +2563,14 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S)
	li	r3,0
	blr

2:
BEGIN_FTR_SECTION
	/* POWER9 with disabled DAWR */
	li	r3, H_UNSUPPORTED
	blr
END_FTR_SECTION_IFCLR(CPU_FTR_DAWR)
	/* Emulate H_SET_DABR/X on P8 for the sake of compat mode guests */
2:	rlwimi	r5, r4, 5, DAWRX_DR | DAWRX_DW
	rlwimi	r5, r4, 5, DAWRX_DR | DAWRX_DW
	rlwimi	r5, r4, 2, DAWRX_WT
	clrrdi	r4, r4, 3
	std	r4, VCPU_DAWR(r3)