Module Name: src Committed By: cherry Date: Sun Jul 16 14:02:48 UTC 2017
Modified Files: src/sys/arch/amd64/amd64: genassym.cf vector.S src/sys/arch/i386/i386: genassym.cf vector.S src/sys/arch/x86/include: cpu.h intr.h src/sys/arch/xen/conf: files.xen src/sys/arch/xen/include: intr.h src/sys/arch/xen/xen: evtchn.c pci_intr_machdep.c xenevt.c Removed Files: src/sys/arch/xen/xen: isa_machdep.c Log Message: Unify the xen and native x86/ interrupt setup functions and spl traversal data structures. This is towards PVHVM. To generate a diff of this commit: cvs rdiff -u -r1.60 -r1.61 src/sys/arch/amd64/amd64/genassym.cf cvs rdiff -u -r1.49 -r1.50 src/sys/arch/amd64/amd64/vector.S cvs rdiff -u -r1.99 -r1.100 src/sys/arch/i386/i386/genassym.cf cvs rdiff -u -r1.69 -r1.70 src/sys/arch/i386/i386/vector.S cvs rdiff -u -r1.73 -r1.74 src/sys/arch/x86/include/cpu.h cvs rdiff -u -r1.50 -r1.51 src/sys/arch/x86/include/intr.h cvs rdiff -u -r1.148 -r1.149 src/sys/arch/xen/conf/files.xen cvs rdiff -u -r1.41 -r1.42 src/sys/arch/xen/include/intr.h cvs rdiff -u -r1.72 -r1.73 src/sys/arch/xen/xen/evtchn.c cvs rdiff -u -r1.27 -r0 src/sys/arch/xen/xen/isa_machdep.c cvs rdiff -u -r1.18 -r1.19 src/sys/arch/xen/xen/pci_intr_machdep.c cvs rdiff -u -r1.46 -r1.47 src/sys/arch/xen/xen/xenevt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/amd64/amd64/genassym.cf diff -u src/sys/arch/amd64/amd64/genassym.cf:1.60 src/sys/arch/amd64/amd64/genassym.cf:1.61 --- src/sys/arch/amd64/amd64/genassym.cf:1.60 Fri Nov 20 11:58:00 2015 +++ src/sys/arch/amd64/amd64/genassym.cf Sun Jul 16 14:02:48 2017 @@ -1,4 +1,4 @@ -# $NetBSD: genassym.cf,v 1.60 2015/11/20 11:58:00 maxv Exp $ +# $NetBSD: genassym.cf,v 1.61 2017/07/16 14:02:48 cherry Exp $ # # Copyright (c) 1998, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -278,11 +278,7 @@ endif define IH_FUN offsetof(struct intrhand, ih_fun) define IH_ARG offsetof(struct intrhand, ih_arg) define IH_LEVEL offsetof(struct intrhand, ih_level) -ifdef XEN -define IH_IPL_NEXT offsetof(struct intrhand, ih_ipl_next) -else define IH_NEXT offsetof(struct intrhand, ih_next) -endif ifdef COMPAT_NETBSD32 define SC_FS32 offsetof(struct netbsd32_sigcontext, sc_fs) @@ -299,13 +295,6 @@ define LINUX32_SYS_sigreturn LINUX32_S define LINUX32_SYS_exit LINUX32_SYS_exit endif -ifdef XEN -define SIZEOF_IPLSOURCE sizeof(struct iplsource) -define IS_RECURSE offsetof(struct iplsource, ipl_recurse) -define IS_RESUME offsetof(struct iplsource, ipl_resume) -define IS_HANDLERS offsetof(struct iplsource, ipl_handlers) -define EV_EVCNTL offsetof(struct evcnt, ev_count) -else define IS_RECURSE offsetof(struct intrsource, is_recurse) define IS_RESUME offsetof(struct intrsource, is_resume) define IS_EVCNT offsetof(struct intrsource, is_evcnt.ev_count) @@ -316,7 +305,6 @@ define IS_PIN offsetof(struct intrsourc define IS_TYPE offsetof(struct intrsource, is_type) define IS_MAXLEVEL offsetof(struct intrsource, is_maxlevel) define IS_LWP offsetof(struct intrsource, is_lwp) -endif define IPL_NONE IPL_NONE define IPL_PREEMPT IPL_PREEMPT Index: src/sys/arch/amd64/amd64/vector.S diff -u src/sys/arch/amd64/amd64/vector.S:1.49 src/sys/arch/amd64/amd64/vector.S:1.50 --- src/sys/arch/amd64/amd64/vector.S:1.49 Tue May 23 08:54:38 2017 +++ src/sys/arch/amd64/amd64/vector.S Sun Jul 16 14:02:48 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: vector.S,v 1.49 2017/05/23 08:54:38 nonaka Exp $ */ +/* $NetBSD: vector.S,v 1.50 2017/07/16 14:02:48 cherry Exp $ */ /*- * Copyright (c) 1998, 2007, 2008 The NetBSD Foundation, Inc. @@ -829,7 +829,9 @@ LABEL(x2apic_level_stubs) END(x2apic_level_stubs) #endif -#else /* !XEN */ +#endif /* !defined(XEN) */ + +#if defined(XEN) /* Resume/recurse procedures for spl() */ #define XENINTRSTUB(name, num, early_ack, late_ack, mask, unmask, level_mask) \ IDTVEC(recurse_ ## name ## num) ;\ @@ -851,7 +853,7 @@ IDTVEC(resume_ ## name ## num) \ movq IH_ARG(%rbx),%rdi ;\ movq %rsp,%rsi ;\ call *IH_FUN(%rbx) /* call it */ ;\ - movq IH_IPL_NEXT(%rbx),%rbx /* next handler in chain */ ;\ + movq IH_NEXT(%rbx),%rbx /* next handler in chain */ ;\ testq %rbx,%rbx ;\ jnz 6b ;\ 5: \ Index: src/sys/arch/i386/i386/genassym.cf diff -u src/sys/arch/i386/i386/genassym.cf:1.99 src/sys/arch/i386/i386/genassym.cf:1.100 --- src/sys/arch/i386/i386/genassym.cf:1.99 Wed Aug 26 03:00:53 2015 +++ src/sys/arch/i386/i386/genassym.cf Sun Jul 16 14:02:48 2017 @@ -1,4 +1,4 @@ -# $NetBSD: genassym.cf,v 1.99 2015/08/26 03:00:53 uebayasi Exp $ +# $NetBSD: genassym.cf,v 1.100 2017/07/16 14:02:48 cherry Exp $ # # Copyright (c) 1998, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -250,11 +250,7 @@ endif define IH_FUN offsetof(struct intrhand, ih_fun) define IH_ARG offsetof(struct intrhand, ih_arg) define IH_LEVEL offsetof(struct intrhand, ih_level) -ifdef XEN -define IH_IPL_NEXT offsetof(struct intrhand, ih_ipl_next) -else define IH_NEXT offsetof(struct intrhand, ih_next) -endif define CPU_INFO_SELF offsetof(struct cpu_info, ci_self) define CPU_INFO_RESCHED offsetof(struct cpu_info, ci_want_resched) @@ -322,13 +318,6 @@ endif define SIZEOF_CPU_INFO sizeof(struct cpu_info) define SIZEOF_ISTUB sizeof(struct intrstub) -ifdef XEN -define SIZEOF_IPLSOURCE sizeof(struct iplsource) -define IS_RECURSE offsetof(struct iplsource, ipl_recurse) -define IS_RESUME offsetof(struct iplsource, ipl_resume) -define IS_HANDLERS offsetof(struct iplsource, ipl_handlers) -define EV_EVCNTL offsetof(struct evcnt, ev_count) -else define SIZEOF_ISOURCE sizeof(struct intrsource) define IS_RECURSE offsetof(struct intrsource, is_recurse) define IS_RESUME offsetof(struct intrsource, is_resume) @@ -341,7 +330,6 @@ define IS_PIN offsetof(struct intrsour define IS_TYPE offsetof(struct intrsource, is_type) define IS_MAXLEVEL offsetof(struct intrsource, is_maxlevel) define IS_LWP offsetof(struct intrsource, is_lwp) -endif define TREC_SP offsetof(struct trec, tr_sp) define TREC_HPC offsetof(struct trec, tr_hpc) Index: src/sys/arch/i386/i386/vector.S diff -u src/sys/arch/i386/i386/vector.S:1.69 src/sys/arch/i386/i386/vector.S:1.70 --- src/sys/arch/i386/i386/vector.S:1.69 Tue May 23 08:54:38 2017 +++ src/sys/arch/i386/i386/vector.S Sun Jul 16 14:02:48 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: vector.S,v 1.69 2017/05/23 08:54:38 nonaka Exp $ */ +/* $NetBSD: vector.S,v 1.70 2017/07/16 14:02:48 cherry Exp $ */ /* * Copyright 2002 (c) Wasabi Systems, Inc. @@ -65,7 +65,7 @@ */ #include <machine/asm.h> -__KERNEL_RCSID(0, "$NetBSD: vector.S,v 1.69 2017/05/23 08:54:38 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vector.S,v 1.70 2017/07/16 14:02:48 cherry Exp $"); #include "opt_ddb.h" #include "opt_multiprocessor.h" @@ -892,7 +892,9 @@ LABEL(x2apic_level_stubs) .long _C_LABEL(Xresume_x2apic_level31) END(x2apic_level_stubs) #endif -#else /* XEN */ +#endif /* XEN */ + +#if defined(XEN) #define voidop(num) #define XENINTRSTUB(name, num, early_ack, late_ack, mask, unmask, level_mask) \ @@ -916,7 +918,7 @@ IDTVEC(resume_ ## name ## num) \ pushl IH_ARG(%ebx) ;\ call *IH_FUN(%ebx) /* call it */ ;\ addl $4,%esp /* toss the arg */ ;\ - movl IH_IPL_NEXT(%ebx),%ebx /* next handler in chain */ ;\ + movl IH_NEXT(%ebx),%ebx /* next handler in chain */ ;\ testl %ebx,%ebx ;\ jnz 6b ;\ \ Index: src/sys/arch/x86/include/cpu.h diff -u src/sys/arch/x86/include/cpu.h:1.73 src/sys/arch/x86/include/cpu.h:1.74 --- src/sys/arch/x86/include/cpu.h:1.73 Fri Jun 16 18:17:42 2017 +++ src/sys/arch/x86/include/cpu.h Sun Jul 16 14:02:48 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.h,v 1.73 2017/06/16 18:17:42 jdolecek Exp $ */ +/* $NetBSD: cpu.h,v 1.74 2017/07/16 14:02:48 cherry Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -125,11 +125,10 @@ struct cpu_info { uintptr_t ci_pmap_data[128 / sizeof(uintptr_t)]; #ifdef XEN - struct iplsource *ci_isources[NIPL]; u_long ci_evtmask[NR_EVENT_CHANNELS]; /* events allowed on this CPU */ -#else - struct intrsource *ci_isources[MAX_INTR_SOURCES]; #endif + struct intrsource *ci_isources[MAX_INTR_SOURCES]; + volatile int ci_mtx_count; /* Negative count of spin mutexes */ volatile int ci_mtx_oldspl; /* Old SPL at this ci_idepth */ Index: src/sys/arch/x86/include/intr.h diff -u src/sys/arch/x86/include/intr.h:1.50 src/sys/arch/x86/include/intr.h:1.51 --- src/sys/arch/x86/include/intr.h:1.50 Tue May 23 08:54:39 2017 +++ src/sys/arch/x86/include/intr.h Sun Jul 16 14:02:48 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: intr.h,v 1.50 2017/05/23 08:54:39 nonaka Exp $ */ +/* $NetBSD: intr.h,v 1.51 2017/07/16 14:02:48 cherry Exp $ */ /*- * Copyright (c) 1998, 2001, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -32,8 +32,10 @@ #ifndef _X86_INTR_H_ #define _X86_INTR_H_ +#if !defined(XEN) #define __HAVE_FAST_SOFTINTS #define __HAVE_PREEMPTION +#endif /* !defined(XEN) */ #ifdef _KERNEL #include <sys/types.h> @@ -67,7 +69,9 @@ */ struct intrstub { +#if !defined(XEN) void *ist_entry; +#endif void *ist_recurse; void *ist_resume; }; @@ -86,6 +90,10 @@ struct intrsource { void *is_recurse; /* entry for spllower */ void *is_resume; /* entry for doreti */ lwp_t *is_lwp; /* for soft interrupts */ +#if defined(XEN) + u_long ipl_evt_mask1; /* pending events for this IPL */ + u_long ipl_evt_mask2[NR_EVENT_CHANNELS]; +#endif struct evcnt is_evcnt; /* interrupt counter per cpu */ int is_flags; /* see below */ int is_type; /* level, edge */ @@ -116,8 +124,12 @@ struct intrhand { void *ih_realarg; struct intrhand *ih_next; struct intrhand **ih_prevp; +#if !defined(XEN) int ih_pin; int ih_slot; +#else + struct intrhand *ih_evt_next; +#endif struct cpu_info *ih_cpu; }; @@ -206,7 +218,9 @@ int x86_send_ipi(struct cpu_info *, int) void x86_broadcast_ipi(int); void x86_ipi_handler(void); +#ifndef XEN extern void (* const ipifunc[X86_NIPI])(struct cpu_info *); +#endif #endif /* _KERNEL */ Index: src/sys/arch/xen/conf/files.xen diff -u src/sys/arch/xen/conf/files.xen:1.148 src/sys/arch/xen/conf/files.xen:1.149 --- src/sys/arch/xen/conf/files.xen:1.148 Thu Jun 22 18:14:32 2017 +++ src/sys/arch/xen/conf/files.xen Sun Jul 16 14:02:48 2017 @@ -1,4 +1,4 @@ -# $NetBSD: files.xen,v 1.148 2017/06/22 18:14:32 khorben Exp $ +# $NetBSD: files.xen,v 1.149 2017/07/16 14:02:48 cherry Exp $ # NetBSD: files.x86,v 1.10 2003/10/08 17:30:00 bouyer Exp # NetBSD: files.i386,v 1.254 2004/03/25 23:32:10 jmc Exp @@ -399,7 +399,7 @@ file arch/xen/xen/privcmd.c dom0ops file arch/xen/x86/xen_shm_machdep.c dom0ops file arch/x86/pci/pci_machdep.c hypervisor & pci & dom0ops file arch/xen/xen/pci_intr_machdep.c hypervisor & pci -file arch/xen/xen/isa_machdep.c hypervisor & dom0ops +file arch/x86/isa/isa_machdep.c hypervisor & dom0ops file arch/xen/xen/xenevt.c xenevt & dom0ops file arch/xen/xen/xennetback_xenbus.c xvif file arch/xen/xen/xennet_checksum.c xvif | xennet Index: src/sys/arch/xen/include/intr.h diff -u src/sys/arch/xen/include/intr.h:1.41 src/sys/arch/xen/include/intr.h:1.42 --- src/sys/arch/xen/include/intr.h:1.41 Sun Jul 16 06:14:24 2017 +++ src/sys/arch/xen/include/intr.h Sun Jul 16 14:02:48 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: intr.h,v 1.41 2017/07/16 06:14:24 cherry Exp $ */ +/* $NetBSD: intr.h,v 1.42 2017/07/16 14:02:48 cherry Exp $ */ /* NetBSD intr.h,v 1.15 2004/10/31 10:39:34 yamt Exp */ /*- @@ -36,6 +36,8 @@ #include <machine/intrdefs.h> #ifndef _LOCORE +#include <xen/xen-public/xen.h> +#include <x86/intr.h> #include <xen/xen.h> #include <xen/hypervisor.h> #include <machine/pic.h> @@ -58,124 +60,14 @@ struct evtsource { char ev_evname[32]; /* event counter name */ }; -/* - * Structure describing an interrupt level. struct cpu_info has an array of - * IPL_MAX of theses. The index in the array is equal to the stub number of - * the stubcode as present in vector.s - */ - -struct intrstub { -#if 0 - void *ist_entry; -#endif - void *ist_recurse; - void *ist_resume; -}; - -/* for x86 compatibility */ -extern struct intrstub i8259_stubs[]; -extern struct intrstub ioapic_edge_stubs[]; -extern struct intrstub ioapic_level_stubs[]; -extern struct intrstub x2apic_edge_stubs[]; -extern struct intrstub x2apic_level_stubs[]; - -struct iplsource { - struct intrhand *ipl_handlers; /* handler chain */ - void *ipl_recurse; /* entry for spllower */ - void *ipl_resume; /* entry for doreti */ - struct lwp *ipl_lwp; - u_long ipl_evt_mask1; /* pending events for this IPL */ - u_long ipl_evt_mask2[NR_EVENT_CHANNELS]; -}; - - - -/* - * Interrupt handler chains. These are linked in both the evtsource and - * the iplsource. - * The handler is called with its (single) argument. - */ - -struct intrhand { - int (*ih_fun)(void *); - void *ih_arg; - int ih_level; - int (*ih_realfun)(void *); - void *ih_realarg; - struct intrhand *ih_ipl_next; - struct intrhand *ih_evt_next; - struct cpu_info *ih_cpu; -}; - -struct xen_intr_handle { - int pirq; /* also contains the APIC_INT_* flags if NIOAPIC > 0 */ - int evtch; -}; - extern struct intrstub xenev_stubs[]; -#define IUNMASK(ci,level) (ci)->ci_iunmask[(level)] - -extern void Xspllower(int); - -int splraise(int); -void spllower(int); - -#define SPL_ASSERT_BELOW(x) KDASSERT(curcpu()->ci_ilevel < (x)) - -/* - * Miscellaneous - */ -#define spl0() spllower(IPL_NONE) -#define splx(x) spllower(x) - -typedef uint8_t ipl_t; -typedef struct { - ipl_t _ipl; -} ipl_cookie_t; - -static inline ipl_cookie_t -makeiplcookie(ipl_t ipl) -{ - - return (ipl_cookie_t){._ipl = ipl}; -} - -static inline int -splraiseipl(ipl_cookie_t icookie) -{ - - return splraise(icookie._ipl); -} - -#include <sys/spl.h> - -/* - * Stub declarations. - */ - -struct pcibus_attach_args; - -typedef int intr_handle_t; #ifdef MULTIPROCESSOR -int intr_biglock_wrapper(void *); +int xen_intr_biglock_wrapper(void *); #endif -void intr_default_setup(void); -int x86_nmi(void); - -void *intr_establish(int, struct pic *, int, int, int, int (*)(void *), void *, bool); -void *intr_establish_xname(int, struct pic *, int, int, int, int (*)(void *), void *, - bool, const char *); -void intr_disestablish(struct intrhand *); -const char *intr_string(intr_handle_t); -void cpu_intr_init(struct cpu_info *); int xen_intr_map(int *, int); -#ifdef INTRDEBUG -void intr_printconfig(void); -#endif -int intr_find_mpmapping(int, int, intr_handle_t *); struct pic *intr_findpic(int); void intr_add_pcibus(struct pcibus_attach_args *); Index: src/sys/arch/xen/xen/evtchn.c diff -u src/sys/arch/xen/xen/evtchn.c:1.72 src/sys/arch/xen/xen/evtchn.c:1.73 --- src/sys/arch/xen/xen/evtchn.c:1.72 Sun Jul 16 05:03:36 2017 +++ src/sys/arch/xen/xen/evtchn.c Sun Jul 16 14:02:48 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: evtchn.c,v 1.72 2017/07/16 05:03:36 cherry Exp $ */ +/* $NetBSD: evtchn.c,v 1.73 2017/07/16 14:02:48 cherry Exp $ */ /* * Copyright (c) 2006 Manuel Bouyer. @@ -54,7 +54,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: evtchn.c,v 1.72 2017/07/16 05:03:36 cherry Exp $"); +__KERNEL_RCSID(0, "$NetBSD: evtchn.c,v 1.73 2017/07/16 14:02:48 cherry Exp $"); #include "opt_xen.h" #include "isa.h" @@ -127,7 +127,7 @@ int debug_port = -1; */ int -intr_biglock_wrapper(void *vp) +xen_intr_biglock_wrapper(void *vp) { struct intrhand *ih = vp; int ret; @@ -336,8 +336,8 @@ splx: while (iplmask & iplbit) { ci->ci_ipending &= ~iplbit; ci->ci_ilevel = i; - for (ih = ci->ci_isources[i]->ipl_handlers; - ih != NULL; ih = ih->ih_ipl_next) { + for (ih = ci->ci_isources[i]->is_handlers; + ih != NULL; ih = ih->ih_next) { KASSERT(ih->ih_cpu == ci); sti(); ih_fun = (void *)ih->ih_fun; @@ -689,11 +689,11 @@ event_set_handler(int evtch, int (*func) ih->ih_fun = ih->ih_realfun = func; ih->ih_arg = ih->ih_realarg = arg; ih->ih_evt_next = NULL; - ih->ih_ipl_next = NULL; + ih->ih_next = NULL; ih->ih_cpu = ci; #ifdef MULTIPROCESSOR if (!mpsafe) { - ih->ih_fun = intr_biglock_wrapper; + ih->ih_fun = xen_intr_biglock_wrapper; ih->ih_arg = ih; } #endif /* MULTIPROCESSOR */ @@ -758,29 +758,29 @@ event_set_iplhandler(struct cpu_info *ci struct intrhand *ih, int level) { - struct iplsource *ipls; + struct intrsource *ipls; KASSERT(ci == ih->ih_cpu); if (ci->ci_isources[level] == NULL) { - ipls = kmem_zalloc(sizeof (struct iplsource), + ipls = kmem_zalloc(sizeof (struct intrsource), KM_NOSLEEP); if (ipls == NULL) panic("can't allocate fixed interrupt source"); - ipls->ipl_recurse = xenev_stubs[level].ist_recurse; - ipls->ipl_resume = xenev_stubs[level].ist_resume; - ipls->ipl_handlers = ih; + ipls->is_recurse = xenev_stubs[level].ist_recurse; + ipls->is_resume = xenev_stubs[level].ist_resume; + ipls->is_handlers = ih; ci->ci_isources[level] = ipls; } else { ipls = ci->ci_isources[level]; - ih->ih_ipl_next = ipls->ipl_handlers; - ipls->ipl_handlers = ih; + ih->ih_next = ipls->is_handlers; + ipls->is_handlers = ih; } } int event_remove_handler(int evtch, int (*func)(void *), void *arg) { - struct iplsource *ipls; + struct intrsource *ipls; struct evtsource *evts; struct intrhand *ih; struct intrhand **ihp; @@ -805,15 +805,15 @@ event_remove_handler(int evtch, int (*fu *ihp = ih->ih_evt_next; ipls = ci->ci_isources[ih->ih_level]; - for (ihp = &ipls->ipl_handlers, ih = ipls->ipl_handlers; + for (ihp = &ipls->is_handlers, ih = ipls->is_handlers; ih != NULL; - ihp = &ih->ih_ipl_next, ih = ih->ih_ipl_next) { + ihp = &ih->ih_next, ih = ih->ih_next) { if (ih->ih_realfun == func && ih->ih_realarg == arg) break; } if (ih == NULL) panic("event_remove_handler"); - *ihp = ih->ih_ipl_next; + *ihp = ih->ih_next; mutex_spin_exit(&evtlock[evtch]); kmem_free(ih, sizeof (struct intrhand)); if (evts->ev_handlers == NULL) { Index: src/sys/arch/xen/xen/pci_intr_machdep.c diff -u src/sys/arch/xen/xen/pci_intr_machdep.c:1.18 src/sys/arch/xen/xen/pci_intr_machdep.c:1.19 --- src/sys/arch/xen/xen/pci_intr_machdep.c:1.18 Sun Jul 16 06:14:24 2017 +++ src/sys/arch/xen/xen/pci_intr_machdep.c Sun Jul 16 14:02:48 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: pci_intr_machdep.c,v 1.18 2017/07/16 06:14:24 cherry Exp $ */ +/* $NetBSD: pci_intr_machdep.c,v 1.19 2017/07/16 14:02:48 cherry Exp $ */ /* * Copyright (c) 2005 Manuel Bouyer. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pci_intr_machdep.c,v 1.18 2017/07/16 06:14:24 cherry Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pci_intr_machdep.c,v 1.19 2017/07/16 14:02:48 cherry Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -173,7 +173,7 @@ pci_intr_string(pci_chipset_tag_t pc, pc return buf; } #endif - snprintf(buf, len, "irq %d, event channel %d", + snprintf(buf, len, "irq %"PRIu64", event channel %d", ih, evtch); return buf; } @@ -215,7 +215,7 @@ pci_intr_establish(pci_chipset_tag_t pci device_xname(pic->sc_dev), APIC_IRQ_PIN(intrh)); } else #endif - snprintf(evname, sizeof(evname), "irq%d", intrh); + snprintf(evname, sizeof(evname), "irq%"PRIu64, intrh); return (void *)pirq_establish(APIC_IRQ_LEGACY_IRQ(intrh), get_pirq_to_evtch(APIC_IRQ_LEGACY_IRQ(intrh)), func, arg, level, evname); Index: src/sys/arch/xen/xen/xenevt.c diff -u src/sys/arch/xen/xen/xenevt.c:1.46 src/sys/arch/xen/xen/xenevt.c:1.47 --- src/sys/arch/xen/xen/xenevt.c:1.46 Thu Jun 1 02:45:08 2017 +++ src/sys/arch/xen/xen/xenevt.c Sun Jul 16 14:02:48 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: xenevt.c,v 1.46 2017/06/01 02:45:08 chs Exp $ */ +/* $NetBSD: xenevt.c,v 1.47 2017/07/16 14:02:48 cherry Exp $ */ /* * Copyright (c) 2005 Manuel Bouyer. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: xenevt.c,v 1.46 2017/06/01 02:45:08 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: xenevt.c,v 1.47 2017/07/16 14:02:48 cherry Exp $"); #include "opt_xen.h" #include <sys/param.h> @@ -172,11 +172,11 @@ xenevtattach(int n) ih->ih_level = level; ih->ih_fun = ih->ih_realfun = xenevt_processevt; ih->ih_arg = ih->ih_realarg = NULL; - ih->ih_ipl_next = NULL; + ih->ih_next = NULL; ih->ih_cpu = &cpu_info_primary; #ifdef MULTIPROCESSOR if (!mpsafe) { - ih->ih_fun = intr_biglock_wrapper; + ih->ih_fun = xen_intr_biglock_wrapper; ih->ih_arg = ih; } #endif /* MULTIPROCESSOR */