KVM: arm64: selftests: Close the GIC FD in arch_timer_edge_cases
Close the GIC FD to free the reference it holds to the VM so that we can correctly clean up the VM. This also gets rid of the "KVM: debugfs: duplicate directory 395722-4" warning when running arch_timer_edge_cases. Signed-off-by: Zenghui Yu <yuzenghui@huawei.com> Reviewed-by: Miguel Luis <miguel.luis@oracle.com> Reviewed-by: Sebastian Ott <sebott@redhat.com> Link: https://lore.kernel.org/r/20250608095402.1131-1-yuzenghui@huawei.com Signed-off-by: Marc Zyngier <maz@kernel.org>
This commit is contained in:
parent
1fbe6861a6
commit
56a1498450
|
@ -954,6 +954,8 @@ static void test_init_timer_irq(struct kvm_vm *vm, struct kvm_vcpu *vcpu)
|
||||||
pr_debug("ptimer_irq: %d; vtimer_irq: %d\n", ptimer_irq, vtimer_irq);
|
pr_debug("ptimer_irq: %d; vtimer_irq: %d\n", ptimer_irq, vtimer_irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int gic_fd;
|
||||||
|
|
||||||
static void test_vm_create(struct kvm_vm **vm, struct kvm_vcpu **vcpu,
|
static void test_vm_create(struct kvm_vm **vm, struct kvm_vcpu **vcpu,
|
||||||
enum arch_timer timer)
|
enum arch_timer timer)
|
||||||
{
|
{
|
||||||
|
@ -968,12 +970,20 @@ static void test_vm_create(struct kvm_vm **vm, struct kvm_vcpu **vcpu,
|
||||||
vcpu_args_set(*vcpu, 1, timer);
|
vcpu_args_set(*vcpu, 1, timer);
|
||||||
|
|
||||||
test_init_timer_irq(*vm, *vcpu);
|
test_init_timer_irq(*vm, *vcpu);
|
||||||
vgic_v3_setup(*vm, 1, 64);
|
gic_fd = vgic_v3_setup(*vm, 1, 64);
|
||||||
|
__TEST_REQUIRE(gic_fd >= 0, "Failed to create vgic-v3");
|
||||||
|
|
||||||
sync_global_to_guest(*vm, test_args);
|
sync_global_to_guest(*vm, test_args);
|
||||||
sync_global_to_guest(*vm, CVAL_MAX);
|
sync_global_to_guest(*vm, CVAL_MAX);
|
||||||
sync_global_to_guest(*vm, DEF_CNT);
|
sync_global_to_guest(*vm, DEF_CNT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_vm_cleanup(struct kvm_vm *vm)
|
||||||
|
{
|
||||||
|
close(gic_fd);
|
||||||
|
kvm_vm_free(vm);
|
||||||
|
}
|
||||||
|
|
||||||
static void test_print_help(char *name)
|
static void test_print_help(char *name)
|
||||||
{
|
{
|
||||||
pr_info("Usage: %s [-h] [-b] [-i iterations] [-l long_wait_ms] [-p] [-v]\n"
|
pr_info("Usage: %s [-h] [-b] [-i iterations] [-l long_wait_ms] [-p] [-v]\n"
|
||||||
|
@ -1060,13 +1070,13 @@ int main(int argc, char *argv[])
|
||||||
if (test_args.test_virtual) {
|
if (test_args.test_virtual) {
|
||||||
test_vm_create(&vm, &vcpu, VIRTUAL);
|
test_vm_create(&vm, &vcpu, VIRTUAL);
|
||||||
test_run(vm, vcpu);
|
test_run(vm, vcpu);
|
||||||
kvm_vm_free(vm);
|
test_vm_cleanup(vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (test_args.test_physical) {
|
if (test_args.test_physical) {
|
||||||
test_vm_create(&vm, &vcpu, PHYSICAL);
|
test_vm_create(&vm, &vcpu, PHYSICAL);
|
||||||
test_run(vm, vcpu);
|
test_run(vm, vcpu);
|
||||||
kvm_vm_free(vm);
|
test_vm_cleanup(vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue