From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH V2 3/3] libxl: Fix cd-insert with qemu-xen. Date: Mon, 8 Oct 2012 19:55:22 +0100 Message-ID: <1349722522-25748-4-git-send-email-anthony.perard@citrix.com> References: <1349722522-25748-1-git-send-email-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1349722522-25748-1-git-send-email-anthony.perard@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Xen Devel Cc: Anthony PERARD , Ian Jackson , Ian Campbell List-Id: xen-devel@lists.xenproject.org If qemu-xen is used as a device model, the command to insert, change or eject a cdrom will go through QMP. XenStore is still updated even if QEMU will not read from it. Signed-off-by: Anthony PERARD --- tools/libxl/libxl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 0cf4768..3366ccf 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -2141,12 +2141,6 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk, rc = ERROR_FAIL; goto out; } - if (dm_ver != LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL) { - LOG(ERROR, "cdrom-insert does not work with %s", - libxl_device_model_version_to_string(dm_ver)); - rc = ERROR_INVAL; - goto out; - } disks = libxl_device_disk_list(ctx, domid, &num); for (i = 0; i < num; i++) { @@ -2170,6 +2164,12 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk, rc = libxl__device_from_disk(gc, domid, disk, &device); if (rc) goto out; + + if (dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN) { + rc = libxl__qmp_insert_cdrom(gc, domid, disk); + if (rc) goto out; + } + path = libxl__device_backend_path(gc, &device); insert = flexarray_make(gc, 4, 1); -- Anthony PERARD