On 14/02/20 15:59, Andrew Jones wrote: > Without this hack kvm/queue kvm selftests don't compile for x86_64. > --- > tools/testing/selftests/kvm/demand_paging_test.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/tools/testing/selftests/kvm/demand_paging_test.c b/tools/testing/selftests/kvm/demand_paging_test.c > index df1fc38b4df1..ec8860b70129 100644 > --- a/tools/testing/selftests/kvm/demand_paging_test.c > +++ b/tools/testing/selftests/kvm/demand_paging_test.c > @@ -20,6 +20,10 @@ > #include <linux/bitops.h> > #include <linux/userfaultfd.h> > > +#ifndef __NR_userfaultfd > +#define __NR_userfaultfd 282 > +#endif > + > #include "test_util.h" > #include "kvm_util.h" > #include "processor.h" > This is because we're getting a limited version of asm/unistd.h from tools/arch/x86/include/asm/unistd_64.h. So: ------------ 8< ---------------- From: Paolo Bonzini <pbonzini@xxxxxxxxxx> Subject: [PATCH] fixup! KVM: selftests: Add demand paging content to the demand paging test Without this, kvm selftests don't compile for x86_64 on old-enough userspace. diff --git a/tools/arch/x86/include/asm/unistd_64.h b/tools/arch/x86/include/asm/unistd_64.h index cb52a3a8b8fc..4205ed4158bf 100644 --- a/tools/arch/x86/include/asm/unistd_64.h +++ b/tools/arch/x86/include/asm/unistd_64.h @@ -1,4 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __NR_userfaultfd +#define __NR_userfaultfd 282 +#endif #ifndef __NR_perf_event_open # define __NR_perf_event_open 298 #endif diff --git a/tools/testing/selftests/kvm/demand_paging_test.c b/tools/testing/selftests/kvm/demand_paging_test.c index df1fc38b4df1..dd6c5ee56201 100644 --- a/tools/testing/selftests/kvm/demand_paging_test.c +++ b/tools/testing/selftests/kvm/demand_paging_test.c @@ -13,6 +13,7 @@ #include <stdlib.h> #include <sys/syscall.h> #include <unistd.h> +#include <asm/unistd.h> #include <time.h> #include <poll.h> #include <pthread.h> @@ -24,6 +25,8 @@ #include "kvm_util.h" #include "processor.h" +#ifdef __NR_userfaultfd + /* The memory slot index demand page */ #define TEST_MEM_SLOT_INDEX 1 @@ -678,3 +681,15 @@ int main(int argc, char *argv[]) return 0; } + +#else /* __NR_userfaultfd */ + +#warning "missing __NR_userfaultfd definition" + +int main(void) +{ + printf("skip: Skipping userfaultfd test (missing __NR_userfaultfd)\n"); + return KSFT_SKIP; +} + +#endif /* __NR_userfaultfd */ Paolo