If seals are not supported, memfd_create() will fail.
Furthermore, there is no way to disable it in this case because
'.seal' property is not registered.

This issue leads to vhost-user-test failures on RHEL 7.2:

  qemu-system-x86_64: -object memory-backend-memfd,id=mem,size=2M,: \
                      failed to create memfd: Invalid argument

Signed-off-by: Ilya Maximets <[email protected]>
---
 backends/hostmem-memfd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/backends/hostmem-memfd.c b/backends/hostmem-memfd.c
index b6836b28e5..ee39bdbde6 100644
--- a/backends/hostmem-memfd.c
+++ b/backends/hostmem-memfd.c
@@ -129,8 +129,8 @@ memfd_backend_instance_init(Object *obj)
 {
     HostMemoryBackendMemfd *m = MEMORY_BACKEND_MEMFD(obj);
 
-    /* default to sealed file */
-    m->seal = true;
+    /* default to sealed file if supported */
+    m->seal = qemu_memfd_check(MFD_ALLOW_SEALING);
 }
 
 static void
-- 
2.17.1


Reply via email to