diff options
| author | Sean Christopherson <seanjc@google.com> | 2024-11-27 16:55:33 -0800 | 
|---|---|---|
| committer | Sean Christopherson <seanjc@google.com> | 2024-12-18 14:14:14 -0800 | 
| commit | 09bb926d290789ff35e7fa53045811a8c57356a9 (patch) | |
| tree | bef826e60f84ab15e09202873999b60b1a5782ff /tools/testing/selftests/kvm/include/kvm_util.h | |
| parent | 915d2f0718a42ee0b334be34cc53664a865a5928 (diff) | |
KVM: selftests: Return a value from vcpu_get_reg() instead of using an out-param
Return a uint64_t from vcpu_get_reg() instead of having the caller provide
a pointer to storage, as none of the vcpu_get_reg() usage in KVM selftests
accesses a register larger than 64 bits, and vcpu_set_reg() only accepts a
64-bit value.  If a use case comes along that needs to get a register that
is larger than 64 bits, then a utility can be added to assert success and
take a void pointer, but until then, forcing an out param yields ugly code
and prevents feeding the output of vcpu_get_reg() into vcpu_set_reg().
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Acked-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Link: https://lore.kernel.org/r/20241128005547.4077116-3-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Diffstat (limited to 'tools/testing/selftests/kvm/include/kvm_util.h')
| -rw-r--r-- | tools/testing/selftests/kvm/include/kvm_util.h | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing/selftests/kvm/include/kvm_util.h index bc7c242480d6..287a3ec06df4 100644 --- a/tools/testing/selftests/kvm/include/kvm_util.h +++ b/tools/testing/selftests/kvm/include/kvm_util.h @@ -702,11 +702,13 @@ static inline int __vcpu_set_reg(struct kvm_vcpu *vcpu, uint64_t id, uint64_t va  	return __vcpu_ioctl(vcpu, KVM_SET_ONE_REG, ®);  } -static inline void vcpu_get_reg(struct kvm_vcpu *vcpu, uint64_t id, void *addr) +static inline uint64_t vcpu_get_reg(struct kvm_vcpu *vcpu, uint64_t id)  { -	struct kvm_one_reg reg = { .id = id, .addr = (uint64_t)addr }; +	uint64_t val; +	struct kvm_one_reg reg = { .id = id, .addr = (uint64_t)&val };  	vcpu_ioctl(vcpu, KVM_GET_ONE_REG, ®); +	return val;  }  static inline void vcpu_set_reg(struct kvm_vcpu *vcpu, uint64_t id, uint64_t val)  {  | 
