aboutsummaryrefslogtreecommitdiff
path: root/xen-hvm.c
diff options
context:
space:
mode:
authorRoger Pau Monne <roger.pau@citrix.com>2014-05-23 17:57:47 +0200
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>2014-08-01 15:57:28 +0000
commit74bc41511af5c389cd9f37956bd6e7fd7de35c49 (patch)
tree3ac3141be2dad8be31e92eb75dce281cdd5a314f /xen-hvm.c
parent541bbb07eb197a870661ed702ae1f15c7d46aea6 (diff)
xen: fix usage of ENODATA
ENODATA doesn't exist on FreeBSD, so ENODATA errors returned by the hypervisor are translated to ENOENT. Also, the error code is returned in errno if the call returns -1, so compare the error code with the value in errno instead of the value returned by the function. Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Cc: xen-devel@lists.xenproject.org Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Cc: Anthony Perard <anthony.perard@citrix.com>
Diffstat (limited to 'xen-hvm.c')
-rw-r--r--xen-hvm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/xen-hvm.c b/xen-hvm.c
index a2486cfd7e..91de2e230b 100644
--- a/xen-hvm.c
+++ b/xen-hvm.c
@@ -513,11 +513,14 @@ static void xen_sync_dirty_bitmap(XenIOState *state,
start_addr >> TARGET_PAGE_BITS, npages,
bitmap);
if (rc < 0) {
- if (rc != -ENODATA) {
+#ifndef ENODATA
+#define ENODATA ENOENT
+#endif
+ if (errno == ENODATA) {
memory_region_set_dirty(framebuffer, 0, size);
DPRINTF("xen: track_dirty_vram failed (0x" TARGET_FMT_plx
", 0x" TARGET_FMT_plx "): %s\n",
- start_addr, start_addr + size, strerror(-rc));
+ start_addr, start_addr + size, strerror(errno));
}
return;
}