[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-4.1-testing] xen: do not remap pirqs if !is_hvm_pv_evtchn_domain



# HG changeset patch
# User Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
# Date 1328010449 0
# Node ID 00c4b19f264811d14c83b4d0fa7eac80fd55d26e
# Parent  69610d3a7ba7daab47919c1a63162c0ff1e33e37
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>
xen-unstable changeset:   24629:6c9a73817770
xen-unstable date:        Tue Jan 31 11:39:37 2012 +0000
---


diff -r 69610d3a7ba7 -r 00c4b19f2648 xen/arch/x86/physdev.c
--- a/xen/arch/x86/physdev.c    Tue Jan 31 11:45:57 2012 +0000
+++ b/xen/arch/x86/physdev.c    Tue Jan 31 11:47:29 2012 +0000
@@ -93,6 +93,15 @@
 
     if ( map->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, map);
         goto free_domain;
     }

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.