Module: xenomai-forge
Branch: next
Commit: 2f0b8a80b405df947c6169820a6e685edaf163ea
URL:    
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=2f0b8a80b405df947c6169820a6e685edaf163ea

Author: Philippe Gerum <r...@xenomai.org>
Date:   Thu Apr 10 10:00:41 2014 +0200

analogy: drop useless atomic sections

We assume that memory transactions up to the native word width are
atomic for any architecture we support. Also, the affected code still
enforces proper memory barriers without the dropped locks.

---

 kernel/drivers/analogy/testing/fake.c |   30 +++++++++++++++---------------
 kernel/drivers/analogy/testing/loop.c |    6 +++---
 2 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/kernel/drivers/analogy/testing/fake.c 
b/kernel/drivers/analogy/testing/fake.c
index 04dc2d2..3871cc5 100644
--- a/kernel/drivers/analogy/testing/fake.c
+++ b/kernel/drivers/analogy/testing/fake.c
@@ -241,15 +241,15 @@ static void task_proc(void *arg)
 
                int running;
 
-               RTDM_EXECUTE_ATOMICALLY(running = priv->ai_running);
+               running = priv->ai_running;
                if (running && ai_push_values(ai_subd) < 0)
                        break;
 
-               RTDM_EXECUTE_ATOMICALLY(running = priv->ao_running);
+               running = priv->ao_running;
                if (running && ao_pull_values(ao_subd) < 0)
                        break;
 
-               RTDM_EXECUTE_ATOMICALLY(running = priv->ai2_running);
+               running = priv->ai2_running;
                if (running && ai2_push_values(ai2_subd) < 0)
                        break;
 
@@ -277,7 +277,7 @@ static int ai_cmd(a4l_subd_t *subd, a4l_cmd_t *cmd)
        ai_priv->current_ns = ((unsigned long)ai_priv->last_ns);
        ai_priv->reminder_ns = 0;
 
-       RTDM_EXECUTE_ATOMICALLY(priv->ai_running = 1);
+       priv->ai_running = 1;
 
        return 0;
 
@@ -302,7 +302,7 @@ static int ai_cancel(a4l_subd_t *subd)
 {
        struct fake_priv *priv = (struct fake_priv *)subd->dev->priv;
 
-       RTDM_EXECUTE_ATOMICALLY(priv->ai_running = 0);
+       priv->ai_running = 0;
 
        return 0;
 }
@@ -328,7 +328,7 @@ int ao_trigger(a4l_subd_t *subd, lsampl_t trignum)
        struct fake_priv *priv = (struct fake_priv *)subd->dev->priv;
 
        a4l_info(subd->dev, "ao_trigger: (subd=%d)\n", subd->idx);
-       RTDM_EXECUTE_ATOMICALLY(priv->ao_running = 1);
+       priv->ao_running = 1;
        return 0;
 }
 
@@ -339,17 +339,17 @@ int ao_cancel(a4l_subd_t *subd)
        int running;
 
        a4l_info(subd->dev, "ao_cancel: (subd=%d)\n", subd->idx);
-       RTDM_EXECUTE_ATOMICALLY(priv->ao_running = 0);
+       priv->ao_running = 0;
 
-       RTDM_EXECUTE_ATOMICALLY(running = priv->ai2_running);
+       running = priv->ai2_running;
        if (running) {
                a4l_subd_t *ai2_subd =
                        (a4l_subd_t *)a4l_get_subd(subd->dev, AI2_SUBD);
                /* Here, we have not saved the required amount of
                   data; so, we cannot know whether or not, it is the
                   end of the acquisition; that is why we force it */
-               RTDM_EXECUTE_ATOMICALLY(priv->ai2_running = 0);
-               RTDM_EXECUTE_ATOMICALLY(ao_priv->count = 0);
+               priv->ai2_running = 0;
+               ao_priv->count = 0;
                a4l_buf_evt(ai2_subd, A4L_BUF_EOA);
        }
 
@@ -363,7 +363,7 @@ int ai2_cmd(a4l_subd_t *subd, a4l_cmd_t *cmd)
        struct fake_priv *priv = (struct fake_priv *)subd->dev->priv;
 
        a4l_info(subd->dev, "ai2_cmd: (subd=%d)\n", subd->idx);
-       RTDM_EXECUTE_ATOMICALLY(priv->ai2_running = 1);
+       priv->ai2_running = 1;
        return 0;
 }
 
@@ -375,17 +375,17 @@ int ai2_cancel(a4l_subd_t *subd)
        int running;
 
        a4l_info(subd->dev, "ai2_cancel: (subd=%d)\n", subd->idx);
-       RTDM_EXECUTE_ATOMICALLY(priv->ai2_running = 0);
+       priv->ai2_running = 0;
 
-       RTDM_EXECUTE_ATOMICALLY(running = priv->ao_running);
+       running = priv->ao_running;
        if (running) {
                a4l_subd_t *ao_subd =
                        (a4l_subd_t *)a4l_get_subd(subd->dev, AO_SUBD);
                /* Here, we have not saved the required amount of
                   data; so, we cannot know whether or not, it is the
                   end of the acquisition; that is why we force it */
-               RTDM_EXECUTE_ATOMICALLY(priv->ao_running = 0);
-               RTDM_EXECUTE_ATOMICALLY(ai2_priv->count = 0);
+               priv->ao_running = 0;
+               ai2_priv->count = 0;
                a4l_buf_evt(ao_subd, A4L_BUF_EOA);
        }
 
diff --git a/kernel/drivers/analogy/testing/loop.c 
b/kernel/drivers/analogy/testing/loop.c
index 709f0cf..e97535d 100644
--- a/kernel/drivers/analogy/testing/loop.c
+++ b/kernel/drivers/analogy/testing/loop.c
@@ -78,7 +78,7 @@ static void loop_task_proc(void *arg)
 
                int running;
 
-               RTDM_EXECUTE_ATOMICALLY(running = priv->loop_running);
+               running = priv->loop_running;
 
                if (running) {
                        uint16_t value;
@@ -128,7 +128,7 @@ int loop_trigger(a4l_subd_t *subd, lsampl_t trignum)
 
        a4l_info(subd->dev, "loop_trigger: (subd=%d)\n", subd->idx);
 
-       RTDM_EXECUTE_ATOMICALLY(priv->loop_running = 1);
+       priv->loop_running = 1;
 
        return 0;
 }
@@ -140,7 +140,7 @@ int loop_cancel(a4l_subd_t *subd)
 
        a4l_info(subd->dev, "loop_cancel: (subd=%d)\n", subd->idx);
 
-       RTDM_EXECUTE_ATOMICALLY(priv->loop_running = 0);
+       priv->loop_running = 0;
 
        return 0;
 }


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai-git

Reply via email to