[Spice-devel] [PATCH 03/10] Fix warning due to unexpected pipe item type

Frediano Ziglio fziglio at redhat.com
Mon Nov 2 07:55:19 PST 2015


> 
> On Mon, Nov 2, 2015 at 10:55 AM, Frediano Ziglio <fziglio at redhat.com> wrote:
> > From: Marc-André Lureau <marcandre.lureau at gmail.com>
> >
> > 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 at redhat.com>
> > ---
> >  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 89cb25c..93a305a 100644
> > --- a/server/red_worker.c
> > +++ b/server/red_worker.c
> > @@ -7805,17 +7805,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)
> > @@ -8271,9 +8260,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);
> > @@ -9580,7 +9566,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 at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/spice-devel
> 
> ACK!
> 

If I remember this patch is still on the list cause form a comment from
Christophe (agreed by Jonathon) this patch should be merged to another.
Jonathon agreed to do some testing.

Frediano


More information about the Spice-devel mailing list