console: remove do_safe_dpy_refresh

Drop the temporary workaround for the broken display updates.
All display adapters are updated, so this should be safe without
causing regressions.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20170614084538.32480-1-kraxel@redhat.com
This commit is contained in:
Gerd Hoffmann 2017-06-14 10:45:38 +02:00
parent a4f113fd69
commit 3f8f1313e0

View File

@ -1579,39 +1579,16 @@ bool dpy_gfx_check_format(QemuConsole *con,
return true; return true;
} }
/*
* Safe DPY refresh for TCG guests. We use the exclusive mechanism to
* ensure the TCG vCPUs are quiescent so we can avoid races between
* dirty page tracking for direct frame-buffer access by the guest.
*
* This is a temporary stopgap until we've fixed the dirty tracking
* races in display adapters.
*/
static void do_safe_dpy_refresh(DisplayChangeListener *dcl)
{
qemu_mutex_unlock_iothread();
start_exclusive();
qemu_mutex_lock_iothread();
dcl->ops->dpy_refresh(dcl);
qemu_mutex_unlock_iothread();
end_exclusive();
qemu_mutex_lock_iothread();
}
static void dpy_refresh(DisplayState *s) static void dpy_refresh(DisplayState *s)
{ {
DisplayChangeListener *dcl; DisplayChangeListener *dcl;
QLIST_FOREACH(dcl, &s->listeners, next) { QLIST_FOREACH(dcl, &s->listeners, next) {
if (dcl->ops->dpy_refresh) { if (dcl->ops->dpy_refresh) {
if (tcg_enabled()) {
do_safe_dpy_refresh(dcl);
} else {
dcl->ops->dpy_refresh(dcl); dcl->ops->dpy_refresh(dcl);
} }
} }
} }
}
void dpy_text_cursor(QemuConsole *con, int x, int y) void dpy_text_cursor(QemuConsole *con, int x, int y)
{ {