Login
Log in using an SSO provider:
Fedora Account System
Red Hat Associate
Red Hat Customer
Login using a Red Hat Bugzilla account
Forgot Password
Create an Account
Red Hat Bugzilla – Attachment 632023 Details for
Bug 867366
virtio-serial misses irq delivery on migration
Home
New
Search
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh90 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
[?]
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Example fix by pushing the message to a bottom half
qemu-virtio-serial-bh.patch (text/plain), 2.24 KB, created by
Alexander Larsson
on 2012-10-23 10:53:52 UTC
(
hide
)
Description:
Example fix by pushing the message to a bottom half
Filename:
MIME Type:
Creator:
Alexander Larsson
Created:
2012-10-23 10:53:52 UTC
Size:
2.24 KB
patch
obsolete
>diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c >index d20bd8b..b10cde0 100644 >--- a/hw/virtio-serial-bus.c >+++ b/hw/virtio-serial-bus.c >@@ -308,6 +308,18 @@ static void flush_queued_data_bh(void *opaque) > flush_queued_data(port); > } > >+static void bh_host_connected(void *opaque) >+{ >+ VirtIOSerialPort *port = opaque; >+ >+ /* >+ * We have to let the guest know of the host connection >+ * status change >+ */ >+ send_control_event(port, VIRTIO_CONSOLE_PORT_OPEN, >+ port->host_connected); >+} >+ > void virtio_serial_throttle_port(VirtIOSerialPort *port, bool throttle) > { > if (!port) { >@@ -687,12 +699,7 @@ static int virtio_serial_load(QEMUFile *f, void *opaque, int version_id) > port->guest_connected = qemu_get_byte(f); > host_connected = qemu_get_byte(f); > if (host_connected != port->host_connected) { >- /* >- * We have to let the guest know of the host connection >- * status change >- */ >- send_control_event(port, VIRTIO_CONSOLE_PORT_OPEN, >- port->host_connected); >+ qemu_bh_schedule(port->bh_host_connected); > } > > if (version_id > 2) { >@@ -816,6 +823,7 @@ static int virtser_port_qdev_init(DeviceState *qdev) > > port->vser = bus->vser; > port->bh = qemu_bh_new(flush_queued_data_bh, port); >+ port->bh_host_connected = qemu_bh_new(bh_host_connected, port); > > assert(vsc->have_data); > >@@ -877,6 +885,7 @@ static int virtser_port_qdev_exit(DeviceState *qdev) > VirtIOSerial *vser = port->vser; > > qemu_bh_delete(port->bh); >+ qemu_bh_delete(port->bh_host_connected); > remove_port(port->vser, port->id); > > QTAILQ_REMOVE(&vser->ports, port, next); >diff --git a/hw/virtio-serial.h b/hw/virtio-serial.h >index 16e3982..9ad2e5c 100644 >--- a/hw/virtio-serial.h >+++ b/hw/virtio-serial.h >@@ -165,6 +165,12 @@ struct VirtIOSerialPort { > */ > QEMUBH *bh; > >+ /* >+ * After migration the target chr_device may be in a different state >+ * and we need to notify the guest after vm start. >+ */ >+ QEMUBH *bh_host_connected; >+ > /* Is the corresponding guest device open? */ > bool guest_connected; > /* Is this device open for IO on the host? */
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 867366
:
629222
| 632023 |
635535