Index: sys/x86/xen/xen_arch_intr.c =================================================================== --- sys/x86/xen/xen_arch_intr.c +++ sys/x86/xen/xen_arch_intr.c @@ -198,6 +198,15 @@ intr_register_pic(&xen_intr_pic); } +void +xen_arch_intr_intrcnt_init(u_int cpu, u_long **intrcntpp) +{ + char buf[MAXCOMLEN + 1]; + + snprintf(buf, sizeof(buf), "cpu%d:xen", cpu); + intrcnt_add(buf, intrcntpp); +} + /** * Search for an already allocated but currently unused Xen interrupt * source object. Index: sys/xen/arch-intr.h =================================================================== --- sys/xen/arch-intr.h +++ sys/xen/arch-intr.h @@ -60,6 +60,7 @@ /******************* Functions implemented by each architecture **************/ void xen_arch_intr_init(void); +void xen_arch_intr_intrcnt_init(u_int cpu, u_long **intrcntpp); struct xenisrc *xen_arch_intr_alloc(struct malloc_type *mtype, const char *name, enum evtchn_type type, evtchn_port_t port); void xen_arch_intr_release(struct malloc_type *mtype, struct xenisrc *isrc); Index: sys/xen/xen_intr.c =================================================================== --- sys/xen/xen_intr.c +++ sys/xen/xen_intr.c @@ -203,15 +203,13 @@ static void xen_intr_intrcnt_add(u_int cpu) { - char buf[MAXCOMLEN + 1]; struct xen_intr_pcpu_data *pcpu; pcpu = DPCPU_ID_PTR(cpu, xen_intr_pcpu); if (pcpu->evtchn_intrcnt != NULL) return; - snprintf(buf, sizeof(buf), "cpu%d:xen", cpu); - intrcnt_add(buf, &pcpu->evtchn_intrcnt); + xen_arch_intr_intrcnt_init(cpu, &pcpu->evtchn_intrcnt); } /**