diff --git a/tools/testing/selftests/kvm/hardware_disable_test.c b/tools/testing/selftests/kvm/hardware_disable_test.c index f088b4af3ccc..b4edeadfa3f4 100644 --- a/tools/testing/selftests/kvm/hardware_disable_test.c +++ b/tools/testing/selftests/kvm/hardware_disable_test.c @@ -36,7 +36,9 @@ static void *run_vcpu(void *arg) struct kvm_vcpu *vcpu = arg; struct kvm_run *run = vcpu->run; +#ifndef _GNU_SOURCE kvm_sched_setaffinity(0, sizeof(cpu_set_t), &threads_cpu_set); +#endif vcpu_run(vcpu); @@ -50,7 +52,9 @@ static void *sleeping_thread(void *arg) { int fd; +#ifndef _GNU_SOURCE kvm_sched_setaffinity(0, sizeof(cpu_set_t), &threads_cpu_set); +#endif while (true) { fd = open("/dev/null", O_RDWR); @@ -80,22 +84,28 @@ static inline void check_join(pthread_t thread, void **retval) static void run_test(u32 run) { struct kvm_vcpu *vcpu; + pthread_attr_t attr; struct kvm_vm *vm; pthread_t threads[VCPU_NUM]; pthread_t throw_away; void *b; u32 i, j; + TEST_ASSERT_EQ(pthread_attr_init(&attr), 0); +#ifdef _GNU_SOURCE + TEST_ASSERT_EQ(pthread_attr_setaffinity_np(&attr, sizeof(cpu_set_t), &threads_cpu_set), 0); +#endif + vm = vm_create(VCPU_NUM); pr_debug("%s: [%d] start vcpus\n", __func__, run); for (i = 0; i < VCPU_NUM; ++i) { vcpu = vm_vcpu_add(vm, i, guest_code); - check_create_thread(&threads[i], NULL, run_vcpu, vcpu); + check_create_thread(&threads[i], &attr, run_vcpu, vcpu); for (j = 0; j < SLEEPING_THREAD_NUM; ++j) { - check_create_thread(&throw_away, NULL, sleeping_thread, + check_create_thread(&throw_away, &attr, sleeping_thread, (void *)NULL); } }