[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Embedded-pv-devel] [Xen-devel] [PATCH RFC 05/18] xen/arm: allow reassigning of hw interrupts to guest domain
 
 
Hello,
On 18/05/16 17:32, Andrii Anisov wrote:
 
From: Andrii Tseglytskyi <andrii.tseglytskyi@xxxxxxxxxxxxxxx>
Patch allows reassigning of hardware interrupts from dom0 to
other guest domain.
 
 
 Can you explain why route_irq_to_guest should  be able to cope with 
reassigning an IRQ rather than having dom0 calling 
XEN_DOMCTL_unbind_pt_irq beforehand?
 Also, this patch does more than allowing an IRQ to be reassigned from 
DOM0 to DOMU, it also allows DOMU to DOMU.
Regards,
 
Signed-off-by: Andrii Tseglytskyi <andrii.tseglytskyi@xxxxxxxxxxxxxxx>
Signed-off-by: Iurii Konovalenko <iurii.konovalenko@xxxxxxxxxxxxxxx>
---
  xen/arch/arm/irq.c | 19 +++++++++++++++----
  1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 1f38605..c470613 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -481,12 +481,23 @@ int route_irq_to_guest(struct domain *d, unsigned int 
virq,
          }
          if ( test_bit(_IRQ_GUEST, &desc->status) )
-            printk(XENLOG_G_ERR "IRQ %u is already used by domain %u\n",
-                   irq, ad->domain_id);
+        {
+            printk(XENLOG_G_DEBUG "IRQ %u is reassigned from domain %u to domain 
%u\n",
+                    irq, ad->domain_id, d->domain_id);
+
+            retval = gic_remove_irq_from_guest(ad, irq, desc);
+            if ( retval )
+                printk(XENLOG_G_ERR "failed to remove IRQ %u from domain %u 
(%d)\n",
+                        irq, ad->domain_id, retval);
+            xfree(desc->action);
+            desc->action = NULL;
+        }
          else
+        {
              printk(XENLOG_G_ERR "IRQ %u is already used by Xen\n", irq);
-        retval = -EBUSY;
-        goto out;
+                       retval = -EBUSY;
+                       goto out;
+        }
      }
      retval = __setup_irq(desc, 0, action);
 
--
Julien Grall
_______________________________________________
Embedded-pv-devel mailing list
Embedded-pv-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/embedded-pv-devel 
 
    
     |