Commit 81e863c3 authored by Julien Grall's avatar Julien Grall Committed by David Vrabel

arm/xen: Correctly check if the event channel interrupt is present

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: default avatarJulien Grall <julien.grall@linaro.org>
Signed-off-by: default avatarStefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: default avatarIan Campbell <ian.campbell@citrix.com>
parent ba155e2d
...@@ -51,7 +51,7 @@ EXPORT_SYMBOL_GPL(xen_have_vector_callback); ...@@ -51,7 +51,7 @@ EXPORT_SYMBOL_GPL(xen_have_vector_callback);
int xen_platform_pci_unplug = XEN_UNPLUG_ALL; int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
EXPORT_SYMBOL_GPL(xen_platform_pci_unplug); 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, int xen_remap_domain_mfn_array(struct vm_area_struct *vma,
unsigned long addr, unsigned long addr,
...@@ -179,12 +179,14 @@ static int __init xen_guest_init(void) ...@@ -179,12 +179,14 @@ static int __init xen_guest_init(void)
return 0; return 0;
grant_frames = res.start; grant_frames = res.start;
xen_events_irq = irq_of_parse_and_map(node, 0); 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", pr_info("Xen %s support found, events_irq=%d gnttab_frame=%pa\n",
version, xen_events_irq, &grant_frames); version, xen_events_irq, &grant_frames);
if (xen_events_irq < 0)
return -ENODEV;
xen_domain_type = XEN_HVM_DOMAIN; xen_domain_type = XEN_HVM_DOMAIN;
xen_setup_features(); xen_setup_features();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment