From b9d1950675c67f10870debe164a226eef64f65d5 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 18 Mar 2008 11:29:18 +0000 Subject: minios: Fix lost events evtchn_bind_interdomain used to clear any already pending event before binding a handler, because else the handler may be called before it is ready. That however leads to missed events, which I had to workaround for the HVM case. This changes the semantics of bind_evtchn, and thus of all the event channel binding functions (bind_virq, evtchn_alloc_unbound, evtchn_bind_interdomain) into not unmasking the event itself, hence letting the caller initialize properly before unmasking the port (e.g. record the port number in an appropriate place). Signed-off-by: Samuel Thibault --- extras/mini-os/console/xencons_ring.c | 1 + 1 file changed, 1 insertion(+) (limited to 'extras/mini-os/console') diff --git a/extras/mini-os/console/xencons_ring.c b/extras/mini-os/console/xencons_ring.c index f0cf9203ae..583e4bcb92 100644 --- a/extras/mini-os/console/xencons_ring.c +++ b/extras/mini-os/console/xencons_ring.c @@ -86,6 +86,7 @@ int xencons_ring_init(void) printk("XEN console request chn bind failed %i\n", err); return err; } + unmask_evtchn(start_info.console.domU.evtchn); /* In case we have in-flight data after save/restore... */ notify_daemon(); -- cgit v1.2.3