Lines Matching refs:mop
2337 struct kvm_s390_mem_op *mop) in kvm_s390_guest_mem_op() argument
2339 void __user *uaddr = (void __user *)mop->buf; in kvm_s390_guest_mem_op()
2345 if (mop->flags & ~supported_flags) in kvm_s390_guest_mem_op()
2348 if (mop->size > MEM_OP_MAX_SIZE) in kvm_s390_guest_mem_op()
2351 if (!(mop->flags & KVM_S390_MEMOP_F_CHECK_ONLY)) { in kvm_s390_guest_mem_op()
2352 tmpbuf = vmalloc(mop->size); in kvm_s390_guest_mem_op()
2359 switch (mop->op) { in kvm_s390_guest_mem_op()
2361 if (mop->flags & KVM_S390_MEMOP_F_CHECK_ONLY) { in kvm_s390_guest_mem_op()
2362 r = check_gva_range(vcpu, mop->gaddr, mop->ar, mop->size, false); in kvm_s390_guest_mem_op()
2365 r = read_guest(vcpu, mop->gaddr, mop->ar, tmpbuf, mop->size); in kvm_s390_guest_mem_op()
2367 if (copy_to_user(uaddr, tmpbuf, mop->size)) in kvm_s390_guest_mem_op()
2372 if (mop->flags & KVM_S390_MEMOP_F_CHECK_ONLY) { in kvm_s390_guest_mem_op()
2373 r = check_gva_range(vcpu, mop->gaddr, mop->ar, mop->size, true); in kvm_s390_guest_mem_op()
2376 if (copy_from_user(tmpbuf, uaddr, mop->size)) { in kvm_s390_guest_mem_op()
2380 r = write_guest(vcpu, mop->gaddr, mop->ar, tmpbuf, mop->size); in kvm_s390_guest_mem_op()
2388 if (r > 0 && (mop->flags & KVM_S390_MEMOP_F_INJECT_EXCEPTION) != 0) in kvm_s390_guest_mem_op()