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