From: Roger Pau Monne Date: Fri, 23 May 2014 15:57:47 +0000 (+0200) Subject: xen: fix usage of ENODATA X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=74bc41511af5c389cd9f37956bd6e7fd7de35c49;p=qemu.git 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é Signed-off-by: Stefano Stabellini Cc: xen-devel@lists.xenproject.org Cc: Stefano Stabellini Cc: Anthony Perard --- 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; }