diff --git a/configure b/configure index 5db29f0245ae4f211b83ee07d6159c02d2eb1125..f1c307bfc69caf883509d1e4f336c9a3c61a6d61 100755 --- a/configure +++ b/configure @@ -1872,6 +1872,9 @@ if test "$seccomp" != "no" ; then i386|x86_64) libseccomp_minver="2.1.0" ;; + mips) + libseccomp_minver="2.2.0" + ;; arm|aarch64) libseccomp_minver="2.2.3" ;; diff --git a/qemu-seccomp.c b/qemu-seccomp.c index 2866e3c2a6605d8432d8e0156cd830fccdadaada..cb569dc05829ff3c877f3274b44f5aab6d25986a 100644 --- a/qemu-seccomp.c +++ b/qemu-seccomp.c @@ -16,11 +16,13 @@ #include #include "sysemu/seccomp.h" +/* For some architectures (notably ARM) cacheflush is not supported until + * libseccomp 2.2.3, but configure enforces that we are using a more recent + * version on those hosts, so it is OK for this check to be less strict. + */ #if SCMP_VER_MAJOR >= 3 #define HAVE_CACHEFLUSH -#elif SCMP_VER_MAJOR == 2 && SCMP_VER_MINOR >= 3 - #define HAVE_CACHEFLUSH -#elif SCMP_VER_MAJOR == 2 && SCMP_VER_MINOR == 2 && SCMP_VER_MICRO >= 3 +#elif SCMP_VER_MAJOR == 2 && SCMP_VER_MINOR >= 2 #define HAVE_CACHEFLUSH #endif @@ -250,6 +252,7 @@ static const struct QemuSeccompSyscall seccomp_whitelist[] = { #ifdef HAVE_CACHEFLUSH { SCMP_SYS(cacheflush), 240 }, #endif + { SCMP_SYS(sysinfo), 240 }, }; int seccomp_start(void)