On Mon, 2006-10-16 at 11:42 +0200, Jan Kiszka wrote:
> In the (corner) case that someone requests to install a shared edge IRQ
> while the related support is not enabled (!CONFIG_XENO_OPT_SHIRQ_EDGE),
> BUT the opposite type (CONFIG_XENO_OPT_SHIRQ_LEVEL), Xenomai so far
> incorrectly installs the level-type handler. For the other way around,
> the non-shared dispatch handler is installed, which is also not correct.
> 
> This patch fixes the issue by returning an error on registration,
> clearly indicating the system misconfiguration to the caller.
> 

Merged, thanks.

> Jan
> plain text document attachment (pick-shared-irq-handler.patch)
> ---
>  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  <[EMAIL PROTECTED]>
> +
> +     * ksrc/nucleus/intr.x (xnintr_irq_attach): Return error on
> +     mismatching shared-IRQ support.
> +
>  2006-10-15  Philippe Gerum  <[EMAIL PROTECTED]>
>  
>       * ksrc/arch/powerpc/patches: Upgrade to 2.6.14-ppc-1.5-00.
> _______________________________________________
> Xenomai-core mailing list
> Xenomai-core@gna.org
> https://mail.gna.org/listinfo/xenomai-core
-- 
Philippe.



_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to