aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
authorPavel Fedin <p.fedin@samsung.com>2015-10-27 15:51:31 +0300
committerEduardo Habkost <ehabkost@redhat.com>2015-11-23 10:43:38 -0200
commita3567ba1e6171ef7cfad55ae549c0cd8bffb1195 (patch)
tree832669b99e854d59e7189c9334a60d16508dc8f5 /backends
parent541abd10a01da56c5f16582cd32d67114ec22a5c (diff)
downloadqemu-a3567ba1e6171ef7cfad55ae549c0cd8bffb1195.zip
qemu-a3567ba1e6171ef7cfad55ae549c0cd8bffb1195.tar.gz
qemu-a3567ba1e6171ef7cfad55ae549c0cd8bffb1195.tar.bz2
hostmem: Ignore ENOSYS while setting MPOL_DEFAULT
Currently hostmem backend fails if CONFIG_NUMA is enabled in QEMU (the default) but NUMA is not supported by the kernel. This makes it impossible to use ivshmem in such configurations. This patch fixes the problem by ignoring ENOSYS error if policy is set to MPOL_DEFAULT. This way the code behaves in the same way as if CONFIG_NUMA was not defined. qemu will still fail if the user specifies some other policy, so that the user knows it. Signed-off-by: Pavel Fedin <p.fedin@samsung.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Diffstat (limited to 'backends')
-rw-r--r--backends/hostmem.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/backends/hostmem.c b/backends/hostmem.c
index 41ba2af..1b4eb45 100644
--- a/backends/hostmem.c
+++ b/backends/hostmem.c
@@ -313,9 +313,11 @@ host_memory_backend_memory_complete(UserCreatable *uc, Error **errp)
assert(maxnode <= MAX_NODES);
if (mbind(ptr, sz, backend->policy,
maxnode ? backend->host_nodes : NULL, maxnode + 1, flags)) {
- error_setg_errno(errp, errno,
- "cannot bind memory to host NUMA nodes");
- return;
+ if (backend->policy != MPOL_DEFAULT || errno != ENOSYS) {
+ error_setg_errno(errp, errno,
+ "cannot bind memory to host NUMA nodes");
+ return;
+ }
}
#endif
/* Preallocate memory after the NUMA policy has been instantiated.