We implemented an virt IO port for printing channel. It works without any problem if Qemu command options specify our printing device. However, we found a bug in virtio serial driver when a VM is launched without specifying the “printing device” from the qemu command line. In this case, mouse click does not work and no any key can be typed from keyboard. In application(vdservice), it simply calls the following API to open the underline device. _handle = CreateFile(DeviceName, GENERIC_READ | GENERIC_WRITE , 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
if (_handle == INVALID_HANDLE_VALUE) { vd_printf("CreateFile() %ls failed: %lu", DeviceName, GetLastError());
return false; } For working case, virioserial driver shows that both
“com.redhat.spice.0” and “com.redhat.print.0” are opened. 00000001 0.00000000 ==>VIOSerialPortCreate Port id = 1
00000002 0.00001717 Port Name =com.redhat.spice.0
…………………………………. 00000107 0.00481843 ==>VIOSerialPortCreate Port id = 2
00000108 0.00483288 Port Name =com.redhat.print.0
00000109 0.00484705 No more buffers in queue: last_used_idx 0 vring.used->idx 0 For the failure case, “CreateFile” fails because it cannot open
“com.redhat.print.0” device. But trace message of
virioserial driver only shows that
“com.redhat.spice.0” is opened. If virioserial is not touched for
“com.redhat.print.0” device, why it affects the “com.redhat.spice.0” device? |
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel