Bump minimum supported Xen version to 4.9 There were no changes to the libxl API between 4.8 and 4.9, so the LIBXL_API_VERSION is set to 0x040800. Note: xen.git commit c3999835df is needed in any Xen package where this patch is expected to work. It is included in Xen 4.13, but would need backporting to anything older. The dependency on xen.git commit c3999835df makes it hard to upstream this patch. See bsc#1157490 and bsc#1167007 for more details Index: libvirt-6.1.0/m4/virt-driver-libxl.m4 =================================================================== --- libvirt-6.1.0.orig/m4/virt-driver-libxl.m4 +++ libvirt-6.1.0/m4/virt-driver-libxl.m4 @@ -26,11 +26,11 @@ AC_DEFUN([LIBVIRT_DRIVER_CHECK_LIBXL], [ LIBXL_CFLAGS="" LIBXL_FIRMWARE_DIR="" LIBXL_EXECBIN_DIR="" - LIBXL_API_VERSION="-DLIBXL_API_VERSION=0x040500" + LIBXL_API_VERSION="-DLIBXL_API_VERSION=0x040800" dnl search for libxl, aka libxenlight old_with_libxl="$with_libxl" - LIBVIRT_CHECK_PKG([LIBXL], [xenlight], [4.6.0]) + LIBVIRT_CHECK_PKG([LIBXL], [xenlight], [4.9.0]) if test "x$with_libxl" = "xyes" ; then LIBXL_FIRMWARE_DIR=$($PKG_CONFIG --variable xenfirmwaredir xenlight) LIBXL_EXECBIN_DIR=$($PKG_CONFIG --variable libexec_bin xenlight) Index: libvirt-6.1.0/src/libxl/libxl_conf.c =================================================================== --- libvirt-6.1.0.orig/src/libxl/libxl_conf.c +++ libvirt-6.1.0/src/libxl/libxl_conf.c @@ -1785,7 +1785,7 @@ int libxlDriverConfigInit(libxlDriverConfigPtr cfg) { char ebuf[1024]; - unsigned int free_mem; + uint64_t free_mem; if (virFileMakePath(cfg->logDir) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, Index: libvirt-6.1.0/src/libxl/libxl_domain.c =================================================================== --- libvirt-6.1.0.orig/src/libxl/libxl_domain.c +++ libvirt-6.1.0/src/libxl/libxl_domain.c @@ -1006,8 +1006,8 @@ libxlDomainSetVcpuAffinities(libxlDriver static int libxlDomainFreeMem(libxl_ctx *ctx, libxl_domain_config *d_config) { - uint32_t needed_mem; - uint32_t free_mem; + uint64_t needed_mem; + uint64_t free_mem; int32_t target_mem; int tries = 3; int wait_secs = 10; @@ -1401,7 +1401,7 @@ libxlDomainStart(libxlDriverPrivatePtr d params.stream_version = restore_ver; #endif ret = libxl_domain_create_restore(cfg->ctx, &d_config, &domid, - restore_fd, ¶ms, NULL, + restore_fd, -1, ¶ms, NULL, &aop_console_how); libxl_domain_restore_params_dispose(¶ms); } Index: libvirt-6.1.0/tests/libxlmock.c =================================================================== --- libvirt-6.1.0.orig/tests/libxlmock.c +++ libvirt-6.1.0/tests/libxlmock.c @@ -67,7 +67,7 @@ VIR_MOCK_IMPL_RET_ARGS(libxl_get_version VIR_MOCK_STUB_RET_ARGS(libxl_get_free_memory, int, 0, libxl_ctx *, ctx, - uint32_t *, memkb); + uint64_t *, memkb); VIR_MOCK_STUB_RET_ARGS(xc_interface_close, int, 0,