--- ChangeLog | 5 +++++ ksrc/nucleus/intr.c | 15 ++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) Index: ksrc/nucleus/intr.c =================================================================== --- ksrc/nucleus/intr.c.orig +++ ksrc/nucleus/intr.c @@ -340,14 +340,19 @@ static inline int xnintr_irq_attach(xnin void (*handler) (unsigned, void *) = &xnintr_irq_handler; if (intr->flags & XN_ISR_SHARED) { -#if defined(CONFIG_XENO_OPT_SHIRQ_LEVEL) - handler = &xnintr_shirq_handler; -#endif /* CONFIG_XENO_OPT_SHIRQ_LEVEL */ - -#if defined(CONFIG_XENO_OPT_SHIRQ_EDGE) if (intr->flags & XN_ISR_EDGE) +#if defined(CONFIG_XENO_OPT_SHIRQ_EDGE) handler = &xnintr_edge_shirq_handler; +#else /* !CONFIG_XENO_OPT_SHIRQ_EDGE */ + return -ENOSYS; #endif /* CONFIG_XENO_OPT_SHIRQ_EDGE */ + else +#if defined(CONFIG_XENO_OPT_SHIRQ_LEVEL) + handler = &xnintr_shirq_handler; +#else /* !CONFIG_XENO_OPT_SHIRQ_LEVEL */ + return -ENOSYS; +#endif /* CONFIG_XENO_OPT_SHIRQ_LEVEL */ + } shirq->unhandled = 0; Index: ChangeLog =================================================================== --- ChangeLog.orig +++ ChangeLog @@ -1,3 +1,8 @@ +2006-10-16 Jan Kiszka + + * ksrc/nucleus/intr.x (xnintr_irq_attach): Return error on + mismatching shared-IRQ support. + 2006-10-15 Philippe Gerum * ksrc/arch/powerpc/patches: Upgrade to 2.6.14-ppc-1.5-00.