Module: xenomai-2.4
Branch: master
Commit: 12ecebcb4a4d87ce314bf6b3feb7cab54a6e46bb
URL:    
http://git.xenomai.org/?p=xenomai-2.4.git;a=commit;h=12ecebcb4a4d87ce314bf6b3feb7cab54a6e46bb

Author: Philippe Gerum <r...@xenomai.org>
Date:   Tue Oct 27 03:10:06 2009 +0100

native/{queue, heap}: fix locking in post-release handlers

---

 ksrc/skins/native/heap.c  |    3 +++
 ksrc/skins/native/queue.c |    3 +++
 2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/ksrc/skins/native/heap.c b/ksrc/skins/native/heap.c
index b78b968..803eb73 100644
--- a/ksrc/skins/native/heap.c
+++ b/ksrc/skins/native/heap.c
@@ -335,6 +335,9 @@ int rt_heap_create(RT_HEAP *heap, const char *name, size_t 
heapsize, int mode)
 static void __heap_post_release(struct xnheap *h) /* nklock held, IRQs off */
 {
        RT_HEAP *heap = container_of(h, RT_HEAP, heap_base);
+       spl_t s;
+
+       xnlock_get_irqsave(&nklock, s);
 
        removeq(heap->rqueue, &heap->rlink);
 
diff --git a/ksrc/skins/native/queue.c b/ksrc/skins/native/queue.c
index 4b85786..faba9eb 100644
--- a/ksrc/skins/native/queue.c
+++ b/ksrc/skins/native/queue.c
@@ -298,6 +298,9 @@ int rt_queue_create(RT_QUEUE *q,
 static void __queue_post_release(struct xnheap *heap) /* nklock held, IRQs off 
*/
 {
        RT_QUEUE *q = container_of(heap, RT_QUEUE, bufpool);
+       spl_t s;
+
+       xnlock_get_irqsave(&nklock, s);
 
        removeq(q->rqueue, &q->rlink);
 


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

Reply via email to