On 03.02.20 14:19, Christian Borntraeger wrote: > From: Janosch Frank <frankja@xxxxxxxxxxxxx> > > We have two new SIE exit codes dealing with instructions. > 104 (0x68) for a secure instruction interception, on which the SIE needs > hypervisor action to complete the instruction. We can piggy-back on the > existing instruction handlers. > > 108 which is merely a notification and provides data for tracking and > management. For example this is used to tell the host about a new value > for the prefix register. As there will be several special case handlers > in later patches, we handle this in a separate function. > > Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> > --- > arch/s390/include/asm/kvm_host.h | 2 ++ > arch/s390/kvm/intercept.c | 11 +++++++++++ > 2 files changed, 13 insertions(+) > > diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h > index d63ed05272ec..58845b315be0 100644 > --- a/arch/s390/include/asm/kvm_host.h > +++ b/arch/s390/include/asm/kvm_host.h > @@ -217,6 +217,8 @@ struct kvm_s390_sie_block { > #define ICPT_KSS 0x5c > #define ICPT_PV_MCHKR 0x60 > #define ICPT_PV_INT_EN 0x64 > +#define ICPT_PV_INSTR 0x68 > +#define ICPT_PV_NOTIF 0x6c NOTIFY? NOTIFICATION? NOTIF is weird. > __u8 icptcode; /* 0x0050 */ > __u8 icptstatus; /* 0x0051 */ > __u16 ihcpu; /* 0x0052 */ > diff --git a/arch/s390/kvm/intercept.c b/arch/s390/kvm/intercept.c > index eaa2a21c3170..4b3fbbde1674 100644 > --- a/arch/s390/kvm/intercept.c > +++ b/arch/s390/kvm/intercept.c > @@ -444,6 +444,11 @@ static int handle_operexc(struct kvm_vcpu *vcpu) > return kvm_s390_inject_program_int(vcpu, PGM_OPERATION); > } > > +static int handle_pv_not(struct kvm_vcpu *vcpu) "notification" please. not not. You see why ;) > +{ > + return handle_instruction(vcpu); > +} > + > int kvm_handle_sie_intercept(struct kvm_vcpu *vcpu) > { > int rc, per_rc = 0; > @@ -490,6 +495,12 @@ int kvm_handle_sie_intercept(struct kvm_vcpu *vcpu) > */ > rc = 0; > break; > + case ICPT_PV_INSTR: > + rc = handle_instruction(vcpu); > + break; > + case ICPT_PV_NOTIF: > + rc = handle_pv_not(vcpu); > + break; > default: > return -EOPNOTSUPP; > } Reviewed-by: David Hildenbrand <david@xxxxxxxxxx> -- Thanks, David / dhildenb