From 6c33b69e1554c38ec6fac05b1d16cdea35a2d4cb Mon Sep 17 00:00:00 2001 From: Frediano Ziglio Date: Fri, 18 Nov 2016 12:53:18 +0000 Subject: [PATCH] Support QXL remove on spice_server_remove_interface Allow to dynamically remove QXL interfaces. This could be used to support hot swapping of QXL cards. This code is actually not used in any way. QXL interfaces are destroyed by spice_server_destroy automatically. Signed-off-by: Frediano Ziglio Acked-by: Jonathon Jongsma --- server/reds.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/server/reds.c b/server/reds.c index d3503316..6064a6dd 100644 --- a/server/reds.c +++ b/server/reds.c @@ -3321,6 +3321,13 @@ SPICE_GNUC_VISIBLE int spice_server_remove_interface(SpiceBaseInstance *sin) SpiceCharDeviceInstance *char_device = SPICE_CONTAINEROF(sin, SpiceCharDeviceInstance, base); reds = red_char_device_get_server(char_device->st); spice_server_char_device_remove_interface(reds, sin); + } else if (strcmp(interface->type, SPICE_INTERFACE_QXL) == 0) { + QXLInstance *qxl; + + qxl = SPICE_CONTAINEROF(sin, QXLInstance, base); + reds = red_qxl_get_server(qxl->st); + reds->qxl_instances = g_list_remove(reds->qxl_instances, qxl); + red_qxl_destroy(qxl); } else { spice_warning("VD_INTERFACE_REMOVING unsupported"); return -1;