[Spice-devel] [PATCH spice-server 2/2] dcc: Avoid usage of not aligned GlzEncDictRestoreData structure
Uri Lublin
uril at redhat.com
Mon May 13 12:49:35 UTC 2019
On 5/8/19 4:06 PM, Frediano Ziglio wrote:
> Copy to/from unaligned field to avoid potential unaligned access.
> Although it adds a copy it's not in a hot path (migration) and
> the structure is pretty small.
>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
Ack, but see one comment below.
I wrote a similar patch, you sent it faster :)
> ---
> server/dcc-send.c | 4 +++-
> server/dcc.c | 3 ++-
> 2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/server/dcc-send.c b/server/dcc-send.c
> index e9b01b38..9fc54046 100644
> --- a/server/dcc-send.c
> +++ b/server/dcc-send.c
> @@ -1845,8 +1845,10 @@ static void display_channel_marshall_migrate_data(RedChannelClient *rcc,
> memcpy(display_data.pixmap_cache_clients, dcc->priv->pixmap_cache->sync,
> sizeof(display_data.pixmap_cache_clients));
>
> + GlzEncDictRestoreData glz_dict_data;
Perhaps move it to the beginning of the function like all the
other local variables.
Uri.
> image_encoders_glz_get_restore_data(encoders, &display_data.glz_dict_id,
> - &display_data.glz_dict_data);
> + &glz_dict_data);
> + display_data.glz_dict_data = glz_dict_data;
>
> /* all data besided the surfaces ref */
> spice_marshaller_add(base_marshaller,
> diff --git a/server/dcc.c b/server/dcc.c
> index fdb0fbf1..271a466b 100644
> --- a/server/dcc.c
> +++ b/server/dcc.c
> @@ -1251,10 +1251,11 @@ bool dcc_handle_message(RedChannelClient *rcc, uint16_t type, uint32_t size, voi
> static int dcc_handle_migrate_glz_dictionary(DisplayChannelClient *dcc,
> SpiceMigrateDataDisplay *migrate)
> {
> + GlzEncDictRestoreData glz_dict_data = migrate->glz_dict_data;
> return image_encoders_restore_glz_dictionary(&dcc->priv->encoders,
> red_channel_client_get_client(RED_CHANNEL_CLIENT(dcc)),
> migrate->glz_dict_id,
> - &migrate->glz_dict_data);
> + &glz_dict_data);
> }
>
> static bool restore_surface(DisplayChannelClient *dcc, uint32_t surface_id)
>
More information about the Spice-devel
mailing list