I think this should not be asm-generic and lib, but kernel/irq/handle.c and include/linux/irq.h, under the CONFIG_MULTI_IRQ_HANDLER symbol already used by arm.
Also for completeness of the series please convert arm, arm64 and openrisc over to the generic version. Last but not least I think handle_arch_irq needs to be marked as __ro_after_init as a security hardening measure.