|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] xen: do not remap pirqs if !is_hvm_pv_evtchn_domain
# HG changeset patch
# User Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
# Date 1328009977 0
# Node ID 6c9a7381777031600ef3442a578d0fa3ce1491b2
# Parent 6ddc2937b0416596f85765e7d3c6a8db9bba6f76
xen: do not remap pirqs if !is_hvm_pv_evtchn_domain
If the guest is an HVM guest and it is not using the vector callback
mechanism, refuse to remap pirqs onto event channels.
Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Tested-by: Paulian Bogdan Marinca <paulian@xxxxxxxxxxx>
Committed-by: Keir Fraser <keir@xxxxxxx>
---
diff -r 6ddc2937b041 -r 6c9a73817770 xen/arch/x86/physdev.c
--- a/xen/arch/x86/physdev.c Tue Jan 31 11:37:03 2012 +0000
+++ b/xen/arch/x86/physdev.c Tue Jan 31 11:39:37 2012 +0000
@@ -93,6 +93,15 @@
if ( domid == DOMID_SELF && is_hvm_domain(d) )
{
+ /*
+ * Only makes sense for vector-based callback, else HVM-IRQ logic
+ * calls back into itself and deadlocks on hvm_domain.irq_lock.
+ */
+ if ( !is_hvm_pv_evtchn_domain(d) )
+ {
+ ret = -EINVAL;
+ goto free_domain;
+ }
ret = physdev_hvm_map_pirq(d, type, index, pirq_p);
goto free_domain;
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |