arm/irq: Reorder check in route_irq_to_guest() to avoid 4 layers of "if"
authorOleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Tue, 6 Dec 2016 17:53:20 +0000 (19:53 +0200)
committerStefano Stabellini <sstabellini@kernel.org>
Fri, 9 Dec 2016 19:55:14 +0000 (11:55 -0800)
Remove one layer of "if" by reordering the check
in route_irq_to_guest() to make code more clearer.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Julien Grall <julien.grall@arm.com>
xen/arch/arm/irq.c

index 508028b02ea817518ffb7c8e4542d55e7c475be3..dd62ba6733113cb69238413b736c5792ace38f07 100644 (file)
@@ -481,22 +481,19 @@ int route_irq_to_guest(struct domain *d, unsigned int virq,
         {
             struct domain *ad = irq_get_domain(desc);
 
-            if ( d == ad )
-            {
-                if ( irq_get_guest_info(desc)->virq != virq )
-                {
-                    printk(XENLOG_G_ERR
-                           "d%u: IRQ %u is already assigned to vIRQ %u\n",
-                           d->domain_id, irq, irq_get_guest_info(desc)->virq);
-                    retval = -EBUSY;
-                }
-            }
-            else
+            if ( d != ad )
             {
                 printk(XENLOG_G_ERR "IRQ %u is already used by domain %u\n",
                        irq, ad->domain_id);
                 retval = -EBUSY;
             }
+            else if ( irq_get_guest_info(desc)->virq != virq )
+            {
+                printk(XENLOG_G_ERR
+                       "d%u: IRQ %u is already assigned to vIRQ %u\n",
+                       d->domain_id, irq, irq_get_guest_info(desc)->virq);
+                retval = -EBUSY;
+            }
         }
         else
         {