Module: xenomai-rpm
Branch: for-upstream
Commit: 359a7394d4b9779fb47b62e897efbf80dbd73b4b
URL:    
http://git.xenomai.org/?p=xenomai-rpm.git;a=commit;h=359a7394d4b9779fb47b62e897efbf80dbd73b4b

Author: Philippe Gerum <r...@xenomai.org>
Date:   Fri Mar  5 12:04:37 2010 +0100

nucleus/intr: factor out attachment bit setting

---

 ksrc/nucleus/intr.c |   15 +++------------
 1 files changed, 3 insertions(+), 12 deletions(-)

diff --git a/ksrc/nucleus/intr.c b/ksrc/nucleus/intr.c
index be403b3..2d149b5 100644
--- a/ksrc/nucleus/intr.c
+++ b/ksrc/nucleus/intr.c
@@ -348,8 +348,6 @@ static inline int xnintr_irq_attach(xnintr_t *intr)
                        return err;
        }
 
-       __setbits(intr->flags, XN_ISR_ATTACHED);
-
        intr->next = NULL;
 
        /* Add the given interrupt object. No need to synchronise with the IRQ
@@ -412,16 +410,8 @@ static inline xnintr_t *xnintr_shirq_next(xnintr_t *prev)
 
 static inline int xnintr_irq_attach(xnintr_t *intr)
 {
-       int ret;
-
-       ret = xnarch_hook_irq(intr->irq, &xnintr_irq_handler,
-                             (rthal_irq_ackfn_t)intr->iack, intr);
-       if (ret)
-               return ret;
-
-       __setbits(intr->flags, XN_ISR_ATTACHED);
-
-       return 0;
+       return xnarch_hook_irq(intr->irq, &xnintr_irq_handler,
+                              (rthal_irq_ackfn_t)intr->iack, intr);
 }
 
 static inline int xnintr_irq_detach(xnintr_t *intr)
@@ -740,6 +730,7 @@ int xnintr_attach(xnintr_t *intr, void *cookie)
        if (ret)
                goto out;
 
+       __setbits(intr->flags, XN_ISR_ATTACHED);
        xnintr_stat_counter_inc();
 out:
        xnlock_put_irqrestore(&intrlock, s);


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

Reply via email to