There are actually several distinct locking domains in xen_intr.c, but
all were sharing the same lock. Both xen_intr_port_to_isrc[] and the
x86 interrupt structures needed protection. Split these two apart as a
precursor to splitting the architecture portions off the file.
The call structures around xen_intr_alloc_isrc() were rather perverse.
Notably the allocation function should be taking care of locking for
interrupt allocation needs and should also be handling the reuse of
unused interrupts.
Should the device ID be 0xa821144d?