xen_intr_handle_upcall() was originally implemented as a direct call
from an x86 assembly language interrupt hook. This works if you're
x86-only, but is problematic for other architectures.
The lapic_eoi() call is only needed on x86. Using a driver_filter_t
hook removes the need to call critical_enter()/critical_exit().
Additionally the interrupt counters get taken care of outside of the Xen
driver.
Since this allows reporting of stray interrupts (unlikely, but bugs
could exist), implement the functionality. Presently I don't believe
any Xen device drivers have the potential to report stray interrupts,
but this allows them to do so. Currently I believe this only works on
ARM64.