Commit b177ae2f authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman
Browse files

powerpc/64s/exception: Remove old INT_KVM_HANDLER

parent 6d71759a
Loading
Loading
Loading
Loading
+26 −29
Original line number Diff line number Diff line
@@ -266,15 +266,6 @@ do_define_int n
	.endif
.endm

.macro INT_KVM_HANDLER name, vec, hsrr, area, skip
	TRAMP_KVM_BEGIN(\name\()_kvm)
	KVM_HANDLER \vec, \hsrr, \area, \skip
.endm

.macro GEN_KVM name
	KVM_HANDLER IVEC, IHSRR, IAREA, IKVM_SKIP
.endm

#ifdef CONFIG_KVM_BOOK3S_64_HANDLER
#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
/*
@@ -293,35 +284,35 @@ do_define_int n
	bne	\name\()_kvm
.endm

.macro KVM_HANDLER vec, hsrr, area, skip
	.if \skip
.macro GEN_KVM name
	.if IKVM_SKIP
	cmpwi	r10,KVM_GUEST_MODE_SKIP
	beq	89f
	.else
BEGIN_FTR_SECTION_NESTED(947)
	ld	r10,\area+EX_CFAR(r13)
	ld	r10,IAREA+EX_CFAR(r13)
	std	r10,HSTATE_CFAR(r13)
END_FTR_SECTION_NESTED(CPU_FTR_CFAR,CPU_FTR_CFAR,947)
	.endif

BEGIN_FTR_SECTION_NESTED(948)
	ld	r10,\area+EX_PPR(r13)
	ld	r10,IAREA+EX_PPR(r13)
	std	r10,HSTATE_PPR(r13)
END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,948)
	ld	r10,\area+EX_R10(r13)
	ld	r10,IAREA+EX_R10(r13)
	std	r12,HSTATE_SCRATCH0(r13)
	sldi	r12,r9,32
	/* HSRR variants have the 0x2 bit added to their trap number */
	.if \hsrr == EXC_HV_OR_STD
	.if IHSRR == EXC_HV_OR_STD
	BEGIN_FTR_SECTION
	ori	r12,r12,(\vec + 0x2)
	ori	r12,r12,(IVEC + 0x2)
	FTR_SECTION_ELSE
	ori	r12,r12,(\vec)
	ori	r12,r12,(IVEC)
	ALT_FTR_SECTION_END_IFSET(CPU_FTR_HVMODE | CPU_FTR_ARCH_206)
	.elseif \hsrr
	ori	r12,r12,(\vec + 0x2)
	.elseif IHSRR
	ori	r12,r12,(IVEC+ 0x2)
	.else
	ori	r12,r12,(\vec)
	ori	r12,r12,(IVEC)
	.endif

#ifdef CONFIG_RELOCATABLE
@@ -334,25 +325,25 @@ END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,948)
	std	r9,HSTATE_SCRATCH1(r13)
	__LOAD_FAR_HANDLER(r9, kvmppc_interrupt)
	mtctr	r9
	ld	r9,\area+EX_R9(r13)
	ld	r9,IAREA+EX_R9(r13)
	bctr
#else
	ld	r9,\area+EX_R9(r13)
	ld	r9,IAREA+EX_R9(r13)
	b	kvmppc_interrupt
#endif


	.if \skip
	.if IKVM_SKIP
89:	mtocrf	0x80,r9
	ld	r9,\area+EX_R9(r13)
	ld	r10,\area+EX_R10(r13)
	.if \hsrr == EXC_HV_OR_STD
	ld	r9,IAREA+EX_R9(r13)
	ld	r10,IAREA+EX_R10(r13)
	.if IHSRR == EXC_HV_OR_STD
	BEGIN_FTR_SECTION
	b	kvmppc_skip_Hinterrupt
	FTR_SECTION_ELSE
	b	kvmppc_skip_interrupt
	ALT_FTR_SECTION_END_IFSET(CPU_FTR_HVMODE | CPU_FTR_ARCH_206)
	.elseif \hsrr
	.elseif IHSRR
	b	kvmppc_skip_Hinterrupt
	.else
	b	kvmppc_skip_interrupt
@@ -363,7 +354,7 @@ END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,948)
#else
.macro KVMTEST name, hsrr, n
.endm
.macro KVM_HANDLER name, vec, hsrr, area, skip
.macro GEN_KVM name
.endm
#endif

@@ -1627,6 +1618,12 @@ EXC_VIRT_NONE(0x4b00, 0x100)
 * without saving, though xer is not a good idea to use, as hardware may
 * interpret some bits so it may be costly to change them.
 */
INT_DEFINE_BEGIN(system_call)
	IVEC=0xc00
	IKVM_REAL=1
	IKVM_VIRT=1
INT_DEFINE_END(system_call)

.macro SYSTEM_CALL virt
#ifdef CONFIG_KVM_BOOK3S_64_HANDLER
	/*
@@ -1720,7 +1717,7 @@ TRAMP_KVM_BEGIN(system_call_kvm)
	SET_SCRATCH0(r10)
	std	r9,PACA_EXGEN+EX_R9(r13)
	mfcr	r9
	KVM_HANDLER 0xc00, EXC_STD, PACA_EXGEN, 0
	GEN_KVM system_call
#endif