@@ -411,6 +411,7 @@ static void run_test(struct vcpu_config *c)
struct kvm_vcpu_init init = { .target = -1, };
int new_regs = 0, missing_regs = 0, i, n;
int failed_get = 0, failed_set = 0, failed_reject = 0;
+ struct kvm_vcpu *vcpu;
struct kvm_vm *vm;
struct reg_sublist *s;
@@ -418,10 +419,10 @@ static void run_test(struct vcpu_config *c)
vm = vm_create_barebones();
prepare_vcpu_init(c, &init);
- aarch64_vcpu_add(vm, 0, &init, NULL);
- finalize_vcpu(vm, 0, c);
+ vcpu = aarch64_vcpu_add(vm, 0, &init, NULL);
+ finalize_vcpu(vm, vcpu->id, c);
- reg_list = vcpu_get_reg_list(vm, 0);
+ reg_list = vcpu_get_reg_list(vm, vcpu->id);
if (fixup_core_regs)
core_reg_fixup();
@@ -457,7 +458,7 @@ static void run_test(struct vcpu_config *c)
bool reject_reg = false;
int ret;
- ret = __vcpu_get_reg(vm, 0, reg_list->reg[i], &addr);
+ ret = __vcpu_get_reg(vm, vcpu->id, reg_list->reg[i], &addr);
if (ret) {
printf("%s: Failed to get ", config_name(c));
print_reg(c, reg.id);
@@ -469,7 +470,7 @@ static void run_test(struct vcpu_config *c)
for_each_sublist(c, s) {
if (s->rejects_set && find_reg(s->rejects_set, s->rejects_set_n, reg.id)) {
reject_reg = true;
- ret = __vcpu_ioctl(vm, 0, KVM_SET_ONE_REG, ®);
+ ret = __vcpu_ioctl(vm, vcpu->id, KVM_SET_ONE_REG, ®);
if (ret != -1 || errno != EPERM) {
printf("%s: Failed to reject (ret=%d, errno=%d) ", config_name(c), ret, errno);
print_reg(c, reg.id);
@@ -481,7 +482,7 @@ static void run_test(struct vcpu_config *c)
}
if (!reject_reg) {
- ret = __vcpu_ioctl(vm, 0, KVM_SET_ONE_REG, ®);
+ ret = __vcpu_ioctl(vm, vcpu->id, KVM_SET_ONE_REG, ®);
if (ret) {
printf("%s: Failed to set ", config_name(c));
print_reg(c, reg.id);
Track the vCPU's 'struct kvm_vcpu' object in get-reg-list instead of hardcoding '0' everywhere. Signed-off-by: Sean Christopherson <seanjc@google.com> --- tools/testing/selftests/kvm/aarch64/get-reg-list.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-)