diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-09-24 12:36:55 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-09-24 12:36:55 +0100 |
commit | bf89912fc4c0050a1e0b594fa46a218888fa473c (patch) | |
tree | 58448bf6167343e57c3005dbd240066cef4e7ae9 /xen/common/event_channel.c | |
parent | cd5e866be55e01a02992ceba24549ad47ad6b9b7 (diff) | |
download | xen-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.c | 3 |
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; |