From: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> The specific item type that was not being handled was PIPE_ITEM_TYPE_INVAL_ONE (#102). This item type is used by the cursor channel, but the analogous item for the display channel is PIPE_ITEM_TYPE_INVAL_PALETTE_CACHE. Use this value instead. The exact warning follows: (/usr/bin/qemu-kvm:24458): Spice-Warning **: ../../server/dcc-send.c:2442:dcc_send_item: should not be reached (/usr/bin/qemu-kvm:24458): Spice-CRITICAL **: ../../server/dcc.c:1595:release_item_before_push: invalid item type Signed-off-by: Jonathon Jongsma <jjongsma@xxxxxxxxxx> --- server/cache_item.tmpl.c | 4 +++- server/red_worker.c | 15 --------------- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/server/cache_item.tmpl.c b/server/cache_item.tmpl.c index dc314c0..ad2b579 100644 --- a/server/cache_item.tmpl.c +++ b/server/cache_item.tmpl.c @@ -21,6 +21,7 @@ #define CACHE_HASH_KEY CURSOR_CACHE_HASH_KEY #define CACHE_HASH_SIZE CURSOR_CACHE_HASH_SIZE #define CACHE_INVAL_TYPE SPICE_MSG_CURSOR_INVAL_ONE +#define PIPE_ITEM_TYPE PIPE_ITEM_TYPE_INVAL_ONE #define FUNC_NAME(name) red_cursor_cache_##name #define VAR_NAME(name) cursor_cache_##name #define CHANNEL CursorChannel @@ -32,6 +33,7 @@ #define CACHE_HASH_KEY PALETTE_CACHE_HASH_KEY #define CACHE_HASH_SIZE PALETTE_CACHE_HASH_SIZE #define CACHE_INVAL_TYPE SPICE_MSG_DISPLAY_INVAL_PALETTE +#define PIPE_ITEM_TYPE PIPE_ITEM_TYPE_INVAL_PALETTE_CACHE #define FUNC_NAME(name) red_palette_cache_##name #define VAR_NAME(name) palette_cache_##name #define CHANNEL DisplayChannel @@ -78,7 +80,7 @@ static void FUNC_NAME(remove)(CHANNELCLIENT *channel_client, CacheItem *item) channel_client->VAR_NAME(items)--; channel_client->VAR_NAME(available) += item->size; - red_channel_pipe_item_init(&channel->common.base, &item->u.pipe_data, PIPE_ITEM_TYPE_INVAL_ONE); + red_channel_pipe_item_init(&channel->common.base, &item->u.pipe_data, PIPE_ITEM_TYPE); red_channel_client_pipe_add_tail(&channel_client->common.base, &item->u.pipe_data); // for now } diff --git a/server/red_worker.c b/server/red_worker.c index 2543713..9f845e4 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -7918,17 +7918,6 @@ static inline void marshall_qxl_drawable(RedChannelClient *rcc, red_lossy_marshall_qxl_drawable(display_channel->common.worker, rcc, m, dpi); } -static inline void red_marshall_inval(RedChannelClient *rcc, - SpiceMarshaller *base_marshaller, CacheItem *cach_item) -{ - SpiceMsgDisplayInvalOne inval_one; - - red_channel_client_init_send_data(rcc, cach_item->inval_type, NULL); - inval_one.id = *(uint64_t *)&cach_item->id; - - spice_marshall_msg_cursor_inval_one(base_marshaller, &inval_one); -} - static void display_channel_marshall_migrate_data_surfaces(DisplayChannelClient *dcc, SpiceMarshaller *m, int lossy) @@ -8384,9 +8373,6 @@ static void display_channel_send_item(RedChannelClient *rcc, PipeItem *pipe_item marshall_qxl_drawable(rcc, m, dpi); break; } - case PIPE_ITEM_TYPE_INVAL_ONE: - red_marshall_inval(rcc, m, (CacheItem *)pipe_item); - break; case PIPE_ITEM_TYPE_STREAM_CREATE: { StreamAgent *agent = SPICE_CONTAINEROF(pipe_item, StreamAgent, create_item); red_display_marshall_stream_start(rcc, m, agent); @@ -9723,7 +9709,6 @@ static void display_channel_client_release_item_before_push(DisplayChannelClient free(item); break; } - case PIPE_ITEM_TYPE_INVAL_ONE: case PIPE_ITEM_TYPE_VERB: case PIPE_ITEM_TYPE_MIGRATE_DATA: case PIPE_ITEM_TYPE_PIXMAP_SYNC: -- 2.4.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel