+#ifdef CONFIG_XEN_PCI
+ irq = xen_register_gsi(gsi, triggering, polarity);
+ if ((int)irq >= 0)
+ return irq;
+#endif
why not change irq to 'int' and avoid the cast?
also, please eliminate the #ifdef by turning xen_register_gsi() into a 'return -1' inline on !CONFIG_XEN_PCI.
+#ifdef CONFIG_XEN_PCI
+ xen_pci_init();
+#endif
hide the #ifdef in a header please. (like you already properly do for
xen_setup_pirqs())
+ if (rc != 0) {
if (!probing_irq(irq))
printk(KERN_INFO "Failed to obtain physical IRQ %d\n",
irq);
+ dump_stack();
generally it's better to use WARN() or WARN_ONCE() to get good debug feedback and stackdumps. (they also document the reason for the dump)
@@ -523,8 +526,6 @@
} else
irq = find_unbound_irq();
- spin_unlock(&irq_mapping_update_lock);
-
set_irq_chip_and_handler_name(irq, &xen_pirq_chip,
handle_level_irq, "pirq");
hm, looks like a stray bugfix?