aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/event_channel.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-09-24 12:36:55 +0100
committerKeir Fraser <keir.fraser@citrix.com>2008-09-24 12:36:55 +0100
commitbf89912fc4c0050a1e0b594fa46a218888fa473c (patch)
tree58448bf6167343e57c3005dbd240066cef4e7ae9 /xen/common/event_channel.c
parentcd5e866be55e01a02992ceba24549ad47ad6b9b7 (diff)
downloadxen-bf89912fc4c0050a1e0b594fa46a218888fa473c.tar.gz
xen-bf89912fc4c0050a1e0b594fa46a218888fa473c.tar.bz2
xen-bf89912fc4c0050a1e0b594fa46a218888fa473c.zip
x86: Properly synchronise updates to pirq-to-vector mapping.
Per-domain irq mappings are now protected by d->evtchn_lock and by the per-vector irq_desc lock. Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/common/event_channel.c')
-rw-r--r--xen/common/event_channel.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index 006d5eca3a..f7a0e87bc7 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -387,7 +387,8 @@ static long __evtchn_close(struct domain *d1, int port1)
break;
case ECS_PIRQ:
- pirq_guest_unbind(d1, chn1->u.pirq);
+ if ( pirq_guest_unbind(d1, chn1->u.pirq) != 0 )
+ BUG();
d1->pirq_to_evtchn[chn1->u.pirq] = 0;
break;