Lines Matching refs:msrs
175 u32 msrs[KVM_MAX_NR_USER_RETURN_MSRS];
301 struct kvm_user_return_msrs *msrs
311 if (msrs->registered) {
312 msrs->registered = false;
317 values = &msrs->values[slot];
319 wrmsrl(user_return_msrs_global.msrs[slot], values->host);
344 user_return_msrs_global.msrs[slot] = msr;
353 struct kvm_user_return_msrs *msrs = per_cpu_ptr(user_return_msrs, cpu);
358 rdmsrl_safe(user_return_msrs_global.msrs[i], &value);
359 msrs->values[i].host = value;
360 msrs->values[i].curr = value;
367 struct kvm_user_return_msrs *msrs = per_cpu_ptr(user_return_msrs, cpu);
370 value = (value & mask) | (msrs->values[slot].host & ~mask);
371 if (value == msrs->values[slot].curr)
373 err = wrmsrl_safe(user_return_msrs_global.msrs[slot], value);
377 msrs->values[slot].curr = value;
378 if (!msrs->registered) {
379 msrs->urn.on_user_return = kvm_on_user_return;
380 user_return_notifier_register(&msrs->urn);
381 msrs->registered = true;
390 struct kvm_user_return_msrs *msrs = per_cpu_ptr(user_return_msrs, cpu);
392 if (msrs->registered)
393 kvm_on_user_return(&msrs->urn);
3687 * Read or write a bunch of msrs. All parameters are kernel addresses.
3689 * @return number of msrs set successfully.
3691 static int __msr_io(struct kvm_vcpu *vcpu, struct kvm_msrs *msrs,
3698 for (i = 0; i < msrs->nmsrs; ++i)
3706 * Read or write a bunch of msrs. Parameters are user addresses.
3708 * @return number of msrs set successfully.
3715 struct kvm_msrs msrs;
3721 if (copy_from_user(&msrs, user_msrs, sizeof(msrs)))
3725 if (msrs.nmsrs >= MAX_IO_MSRS)
3728 size = sizeof(struct kvm_msr_entry) * msrs.nmsrs;
3735 r = n = __msr_io(vcpu, &msrs, entries, do_msr);