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:
parent
a4f113fd69
commit
3f8f1313e0
23
ui/console.c
23
ui/console.c
@ -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)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user