[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v6 1/7] qxl: fix spice+sdl no cursor regression
From: |
Alon Levy |
Subject: |
[Qemu-devel] [PATCH v6 1/7] qxl: fix spice+sdl no cursor regression |
Date: |
Fri, 24 Feb 2012 23:19:25 +0200 |
regression introduced by 075360945860ad9bdd491921954b383bf762b0e5,
v2: lock around qemu_spice_cursor_refresh_unlocked
Reported-by: Fabiano FidĂȘncio <address@hidden>
Signed-off-by: Alon Levy <address@hidden>
---
hw/qxl.c | 4 ++++
ui/spice-display.c | 23 ++++++++++++++---------
ui/spice-display.h | 1 +
3 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/hw/qxl.c b/hw/qxl.c
index f643667..0bbf0e8 100644
--- a/hw/qxl.c
+++ b/hw/qxl.c
@@ -1545,6 +1545,10 @@ static void display_refresh(struct DisplayState *ds)
{
if (qxl0->mode == QXL_MODE_VGA) {
qemu_spice_display_refresh(&qxl0->ssd);
+ } else {
+ qemu_mutex_lock(&qxl0->ssd.lock);
+ qemu_spice_cursor_refresh_unlocked(&qxl0->ssd);
+ qemu_mutex_unlock(&qxl0->ssd.lock);
}
}
diff --git a/ui/spice-display.c b/ui/spice-display.c
index 6c302a3..c6e61d8 100644
--- a/ui/spice-display.c
+++ b/ui/spice-display.c
@@ -317,16 +317,8 @@ void qemu_spice_display_resize(SimpleSpiceDisplay *ssd)
ssd->notify++;
}
-void qemu_spice_display_refresh(SimpleSpiceDisplay *ssd)
+void qemu_spice_cursor_refresh_unlocked(SimpleSpiceDisplay *ssd)
{
- dprint(3, "%s:\n", __FUNCTION__);
- vga_hw_update();
-
- qemu_mutex_lock(&ssd->lock);
- if (ssd->update == NULL) {
- ssd->update = qemu_spice_create_update(ssd);
- ssd->notify++;
- }
if (ssd->cursor) {
ssd->ds->cursor_define(ssd->cursor);
cursor_put(ssd->cursor);
@@ -337,6 +329,19 @@ void qemu_spice_display_refresh(SimpleSpiceDisplay *ssd)
ssd->mouse_x = -1;
ssd->mouse_y = -1;
}
+}
+
+void qemu_spice_display_refresh(SimpleSpiceDisplay *ssd)
+{
+ dprint(3, "%s:\n", __func__);
+ vga_hw_update();
+
+ qemu_mutex_lock(&ssd->lock);
+ if (ssd->update == NULL) {
+ ssd->update = qemu_spice_create_update(ssd);
+ ssd->notify++;
+ }
+ qemu_spice_cursor_refresh_unlocked(ssd);
qemu_mutex_unlock(&ssd->lock);
if (ssd->notify) {
diff --git a/ui/spice-display.h b/ui/spice-display.h
index 5e52df9..a23bfc8 100644
--- a/ui/spice-display.h
+++ b/ui/spice-display.h
@@ -97,6 +97,7 @@ void qemu_spice_display_update(SimpleSpiceDisplay *ssd,
int x, int y, int w, int h);
void qemu_spice_display_resize(SimpleSpiceDisplay *ssd);
void qemu_spice_display_refresh(SimpleSpiceDisplay *ssd);
+void qemu_spice_cursor_refresh_unlocked(SimpleSpiceDisplay *ssd);
void qemu_spice_add_memslot(SimpleSpiceDisplay *ssd, QXLDevMemSlot *memslot,
qxl_async_io async);
--
1.7.9.1
- [Qemu-devel] [PATCH v6 0/7] qxl: fix hangs caused by qxl_render_update, Alon Levy, 2012/02/24
- [Qemu-devel] [PATCH v6 1/7] qxl: fix spice+sdl no cursor regression,
Alon Levy <=
- [Qemu-devel] [PATCH v6 2/7] sdl: remove NULL check, g_malloc0 can't fail, Alon Levy, 2012/02/24
- [Qemu-devel] [PATCH v6 3/7] qxl: drop qxl_spice_update_area_async definition, Alon Levy, 2012/02/24
- [Qemu-devel] [PATCH v6 4/7] qxl: require spice >= 0.8.2, Alon Levy, 2012/02/24
- [Qemu-devel] [PATCH v6 5/7] qxl: remove flipped, Alon Levy, 2012/02/24
- [Qemu-devel] [PATCH v6 6/7] qxl: introduce QXLCookie, Alon Levy, 2012/02/24
- [Qemu-devel] [PATCH v6 7/7] qxl: make qxl_render_update async, Alon Levy, 2012/02/24
- Re: [Qemu-devel] [PATCH v6 0/7] qxl: fix hangs caused by qxl_render_update, Gerd Hoffmann, 2012/02/27