[Spice-devel] [PATCH spice-server v2 05/12] Check running state in red_qxl_set_client_capabilities
Jonathon Jongsma
jjongsma at redhat.com
Thu Mar 28 19:28:44 UTC 2019
Acked-by: Jonathon Jongsma <jjongsma at redhat.com>
On Tue, 2019-03-26 at 19:10 +0000, Frediano Ziglio wrote:
> No reasons to expose red_qxl_is_running, this was used to not
> send capability is the state was not running.
>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
> server/display-channel.c | 3 ---
> server/red-qxl.c | 5 ++++-
> server/red-qxl.h | 3 ---
> server/red-worker.h | 1 +
> 4 files changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/server/display-channel.c b/server/display-channel.c
> index 1af87ba4..e9368668 100644
> --- a/server/display-channel.c
> +++ b/server/display-channel.c
> @@ -2566,9 +2566,6 @@ static void
> guest_set_client_capabilities(DisplayChannel *display)
> #define
> CLEAR_CAP(a,c) \
> ((a)[(c) / 8] &= ~(1 << ((c) % 8)))
>
> - if (!red_qxl_is_running(display->priv->qxl)) {
> - return;
> - }
> if ((red_channel_get_n_clients(RED_CHANNEL(display)) == 0)) {
> red_qxl_set_client_capabilities(display->priv->qxl, FALSE,
> caps);
> } else {
> diff --git a/server/red-qxl.c b/server/red-qxl.c
> index e3fbf7b7..6dbd224c 100644
> --- a/server/red-qxl.c
> +++ b/server/red-qxl.c
> @@ -68,6 +68,7 @@ struct QXLState {
>
> #define GL_DRAW_COOKIE_INVALID (~((uint64_t) 0))
>
> +/* used by RedWorker */
> bool red_qxl_is_running(QXLInstance *qxl)
> {
> return qxl->st->running;
> @@ -1048,7 +1049,9 @@ void
> red_qxl_set_client_capabilities(QXLInstance *qxl,
> {
> QXLInterface *interface = qxl_get_interface(qxl);
>
> - interface->set_client_capabilities(qxl, client_present, caps);
> + if (qxl->st->running) {
> + interface->set_client_capabilities(qxl, client_present,
> caps);
> + }
> }
>
> void red_qxl_async_complete(QXLInstance *qxl, uint64_t cookie)
> diff --git a/server/red-qxl.h b/server/red-qxl.h
> index 521f3659..94753948 100644
> --- a/server/red-qxl.h
> +++ b/server/red-qxl.h
> @@ -44,9 +44,6 @@ const char* red_qxl_get_device_address(const
> QXLInstance *qxl);
> const uint32_t* red_qxl_get_device_display_ids(const QXLInstance
> *qxl);
> size_t red_qxl_get_monitors_count(const QXLInstance *qxl);
>
> -/* check if QXL is running, should be used inside the worker thread
> */
> -bool red_qxl_is_running(QXLInstance *qxl);
> -
> /* Wrappers around QXLInterface vfuncs */
> void red_qxl_get_init_info(QXLInstance *qxl, QXLDevInitInfo *info);
> int red_qxl_get_command(QXLInstance *qxl, struct QXLCommandExt
> *cmd);
> diff --git a/server/red-worker.h b/server/red-worker.h
> index 54ab4da8..34c5b4af 100644
> --- a/server/red-worker.h
> +++ b/server/red-worker.h
> @@ -35,6 +35,7 @@ void red_worker_free(RedWorker *worker);
> struct Dispatcher *red_qxl_get_dispatcher(QXLInstance *qxl);
> void red_qxl_destroy_primary_surface_complete(QXLState *qxl_state);
> void red_qxl_create_primary_surface_complete(QXLState *qxl_state,
> const QXLDevSurfaceCreate* surface);
> +bool red_qxl_is_running(QXLInstance *qxl);
> void red_qxl_set_running(QXLInstance *qxl, bool running);
>
> typedef uint32_t RedWorkerMessage;
More information about the Spice-devel
mailing list