aboutsummaryrefslogtreecommitdiff
path: root/hw/xen_console.c
diff options
context:
space:
mode:
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>2012-03-27 16:02:21 +0000
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>2012-03-27 16:05:15 +0000
commit028c85f0fffe5d4fdd435e06af4188397acf1cb6 (patch)
tree9d58cf1d62815a116efc70a51fa21f31e660d109 /hw/xen_console.c
parent8a22565b7c2d1920b02b94e7a8021c65895a3a22 (diff)
downloadqemu-028c85f0fffe5d4fdd435e06af4188397acf1cb6.zip
qemu-028c85f0fffe5d4fdd435e06af4188397acf1cb6.tar.gz
qemu-028c85f0fffe5d4fdd435e06af4188397acf1cb6.tar.bz2
xen_console: ignore console disconnect events from console/0
The first console has a different location compared to other PV devices (console, rather than device/console/0) and doesn't obey the xenstore state protocol. We already special case the first console in con_init and con_initialise, we should also do it in con_disconnect. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Diffstat (limited to 'hw/xen_console.c')
-rw-r--r--hw/xen_console.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/xen_console.c b/hw/xen_console.c
index edcb31c..3794b19 100644
--- a/hw/xen_console.c
+++ b/hw/xen_console.c
@@ -248,6 +248,9 @@ static void con_disconnect(struct XenDevice *xendev)
{
struct XenConsole *con = container_of(xendev, struct XenConsole, xendev);
+ if (!xendev->dev) {
+ return;
+ }
if (con->chr)
qemu_chr_add_handlers(con->chr, NULL, NULL, NULL, NULL);
xen_be_unbind_evtchn(&con->xendev);