arm/xen: Correctly check if the event channel interrupt is present
authorJulien Grall <julien.grall@linaro.org>
Wed, 6 May 2015 14:09:06 +0000 (14:09 +0000)
committerDavid Vrabel <david.vrabel@citrix.com>
Thu, 28 May 2015 11:23:10 +0000 (12:23 +0100)
The function irq_of_parse_and_map returns 0 when the IRQ is not found.

Futhermore, move the check before notifying the user that we are running on
Xen.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
arch/arm/xen/enlighten.c

index 7d0f07020c809598c8a5ea292093d3676c083548..6fbdc8fa4a199ea9be79945e55cf9a639b1806db 100644 (file)
@@ -51,7 +51,7 @@ EXPORT_SYMBOL_GPL(xen_have_vector_callback);
 int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
 EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
 
-static __read_mostly int xen_events_irq = -1;
+static __read_mostly unsigned int xen_events_irq;
 
 int xen_remap_domain_mfn_array(struct vm_area_struct *vma,
                               unsigned long addr,
@@ -179,12 +179,14 @@ static int __init xen_guest_init(void)
                return 0;
        grant_frames = res.start;
        xen_events_irq = irq_of_parse_and_map(node, 0);
+       if (!xen_events_irq) {
+               pr_debug("Xen event channel interrupt not found\n");
+               return -ENODEV;
+       }
+
        pr_info("Xen %s support found, events_irq=%d gnttab_frame=%pa\n",
                        version, xen_events_irq, &grant_frames);
 
-       if (xen_events_irq < 0)
-               return -ENODEV;
-
        xen_domain_type = XEN_HVM_DOMAIN;
 
        xen_setup_features();