> -----Original Message----- > From: Alexander Graf [mailto:agraf@xxxxxxx] > Sent: Friday, April 19, 2013 5:44 PM > To: Tiejun Chen > Cc: kvm@xxxxxxxxxxxxxxx mailing list; kvm-ppc@xxxxxxxxxxxxxxx; Bhushan Bharat- > R65777 > Subject: Re: [PATCH] KVM/PPC: emulate ehpriv > > > On 19.04.2013, at 04:44, Tiejun Chen wrote: > > > We can provide this emulation to simplify more extension later. > > Works for me, but this should really be part of a series that makes use of > ehpriv. Alex, this already planned to be in my debug patches. I know you are busy and I am just waiting for other patches to be reviewed :) -Bharat > > > Alex > > > > > Signed-off-by: Tiejun Chen <tiejun.chen@xxxxxxxxxxxxx> > > --- > > arch/powerpc/include/asm/disassemble.h | 4 ++++ > > arch/powerpc/kvm/e500_emulate.c | 17 +++++++++++++++++ > > 2 files changed, 21 insertions(+) > > > > diff --git a/arch/powerpc/include/asm/disassemble.h > > b/arch/powerpc/include/asm/disassemble.h > > index 9b198d1..856f8de 100644 > > --- a/arch/powerpc/include/asm/disassemble.h > > +++ b/arch/powerpc/include/asm/disassemble.h > > @@ -77,4 +77,8 @@ static inline unsigned int get_d(u32 inst) > > return inst & 0xffff; > > } > > > > +static inline unsigned int get_oc(u32 inst) { > > + return (inst >> 11) & 0x7fff; > > +} > > #endif /* __ASM_PPC_DISASSEMBLE_H__ */ diff --git > > a/arch/powerpc/kvm/e500_emulate.c b/arch/powerpc/kvm/e500_emulate.c > > index e78f353..36492cf 100644 > > --- a/arch/powerpc/kvm/e500_emulate.c > > +++ b/arch/powerpc/kvm/e500_emulate.c > > @@ -26,6 +26,7 @@ > > #define XOP_TLBRE 946 > > #define XOP_TLBWE 978 > > #define XOP_TLBILX 18 > > +#define XOP_EHPRIV 270 > > > > #ifdef CONFIG_KVM_E500MC > > static int dbell2prio(ulong param) > > @@ -80,6 +81,18 @@ static int kvmppc_e500_emul_msgsnd(struct kvm_vcpu > > *vcpu, int rb) > > > > return EMULATE_DONE; > > } > > + > > +static int kvmppc_e500_emul_ehpriv(struct kvm_run *run, struct kvm_vcpu > *vcpu, > > + unsigned int inst) > > +{ > > + int emulated = EMULATE_DONE; > > + > > + switch (get_oc(inst)) { > > + default: > > + emulated = EMULATE_FAIL; > > + } > > + return emulated; > > +} > > #endif > > > > int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu, > > @@ -130,6 +143,10 @@ int kvmppc_core_emulate_op(struct kvm_run *run, struct > kvm_vcpu *vcpu, > > emulated = kvmppc_e500_emul_tlbivax(vcpu, ea); > > break; > > > > + case XOP_EHPRIV: > > + emulated = kvmppc_e500_emul_ehpriv(run, vcpu, inst); > > + break; > > + > > default: > > emulated = EMULATE_FAIL; > > } > > -- > > 1.7.9.5 > > > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html