eeeeaf88a6
xend-devid-or-name.patch - Upstream patches from Jan 22019-x86-cpuidle-online-check.patch 22051-x86-forced-EOI.patch 22067-x86-irq-domain.patch 22068-vtd-irte-RH-bit.patch 22071-ept-get-entry-lock.patch 22084-x86-xsave-off.patch - bnc#638465 - hypervisor panic in memory handling heaplock.patch - Update to Xen 4.0.1. This is a bug fix release. OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=73
37 lines
1.3 KiB
Diff
37 lines
1.3 KiB
Diff
Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/vnc.c
|
|
===================================================================
|
|
--- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/vnc.c
|
|
+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/vnc.c
|
|
@@ -1713,6 +1713,31 @@ static int protocol_client_msg(VncState
|
|
}
|
|
|
|
set_encodings(vs, (int32_t *)(data + 4), limit);
|
|
+
|
|
+ /*
|
|
+ * The initialization of a VNC connection can race with xenfb changing
|
|
+ * the resolution. This happens when the VNC connection is already
|
|
+ * established, but the client has not yet advertised has_resize, so it
|
|
+ * won't get notified of the switch.
|
|
+ *
|
|
+ * Therefore we resend the resolution as soon as the client has sent its
|
|
+ * encodings.
|
|
+ */
|
|
+ if (vs->has_resize) {
|
|
+ /* Resize the VNC window */
|
|
+ vnc_write_u8(vs, 0); /* msg id */
|
|
+ vnc_write_u8(vs, 0);
|
|
+ vnc_write_u16(vs, 1); /* number of rects */
|
|
+ vnc_framebuffer_update(vs, 0, 0, vs->serverds.width, vs->serverds.height, -223);
|
|
+
|
|
+ /* Ensure that the new area is updated */
|
|
+ vnc_write_u8(vs, 0); /* msg id */
|
|
+ vnc_write_u8(vs, 0);
|
|
+ vnc_write_u16(vs, 1); /* number of rects */
|
|
+ send_framebuffer_update(vs, 0, 0, vs->serverds.width, vs->serverds.height);
|
|
+
|
|
+ vnc_flush(vs);
|
|
+ }
|
|
break;
|
|
case 3:
|
|
if (len == 1)
|