aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorAndres Lagar-Cavilla <andres@lagarcavilla.org>2012-01-10 15:35:01 +0000
committerAndres Lagar-Cavilla <andres@lagarcavilla.org>2012-01-10 15:35:01 +0000
commite9f7017afe06053b9f2fa297b4076cffcfbba6e2 (patch)
tree9062d7eb7207b6dfa1b29cb9cb2566064903a1da /tools
parent6fd2fba594f611533c46a6a271ee0615e0b46fd7 (diff)
downloadxen-e9f7017afe06053b9f2fa297b4076cffcfbba6e2.tar.gz
xen-e9f7017afe06053b9f2fa297b4076cffcfbba6e2.tar.bz2
xen-e9f7017afe06053b9f2fa297b4076cffcfbba6e2.zip
libxc: Only retry mapping pages when ENOENT is returned
If the return value from the ioctl() is not ENOENT, it's possible that err[i] will not be updated and libxc will just loop forever. Although it's unlikely that err[i] would not be updated after the ioctl() gets through at least once, it's better to be defensive. Signed-off-by: Adin Scannell <adin@scannell.ca> Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.org> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/libxc/xc_linux_osdep.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/libxc/xc_linux_osdep.c b/tools/libxc/xc_linux_osdep.c
index 115203ddb4..319997947e 100644
--- a/tools/libxc/xc_linux_osdep.c
+++ b/tools/libxc/xc_linux_osdep.c
@@ -232,7 +232,7 @@ static void *linux_privcmd_map_foreign_bulk(xc_interface *xch, xc_osdep_handle h
do {
usleep(100);
rc = ioctl(fd, IOCTL_PRIVCMD_MMAPBATCH_V2, &ioctlx);
- } while ( rc < 0 && err[i] == -ENOENT );
+ } while ( rc < 0 && errno == ENOENT && err[i] == -ENOENT );
}
}