[Xenomai-git] Jan Kiszka : native: Release fastlock to the proper heap

2009-10-27 Thread GIT version control
Module: xenomai-abe
Branch: analogy
Commit: 527ad0232f5b27d48335d89eb6f32aa760673c3e
URL:
http://git.xenomai.org/?p=xenomai-abe.git;a=commit;h=527ad0232f5b27d48335d89eb6f32aa760673c3e

Author: Jan Kiszka 
Date:   Mon Oct 19 21:24:32 2009 +0200

native: Release fastlock to the proper heap

Don't assume rt_task_delete is only called for in-kernel users, it may
be triggered via auto-cleanup also on user space objects. So check for
the creator and release the fastlock to the correct heap.

Signed-off-by: Jan Kiszka 

---

 ksrc/skins/native/mutex.c |   14 --
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/ksrc/skins/native/mutex.c b/ksrc/skins/native/mutex.c
index 20eb484..6cf7eb1 100644
--- a/ksrc/skins/native/mutex.c
+++ b/ksrc/skins/native/mutex.c
@@ -47,6 +47,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 
@@ -316,8 +317,17 @@ int rt_mutex_delete(RT_MUTEX *mutex)
err = rt_mutex_delete_inner(mutex);
 
 #ifdef CONFIG_XENO_FASTSYNCH
-   if (!err)
-   xnfree(mutex->synch_base.fastlock);
+   if (!err) {
+#ifdef CONFIG_XENO_OPT_PERVASIVE
+   if (mutex->cpid) {
+   int global = xnsynch_test_flags(&mutex->synch_base,
+   RT_MUTEX_EXPORTED);
+   xnheap_free(&xnsys_ppd_get(global)->sem_heap,
+   mutex->synch_base.fastlock);
+   } else
+#endif /* CONFIG_XENO_OPT_PERVASIVE */
+   xnfree(mutex->synch_base.fastlock);
+   }
 #endif /* CONFIG_XENO_FASTSYNCH */
 
return err;


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


[Xenomai-git] Jan Kiszka : native: Release fastlock to the proper heap

2009-10-25 Thread GIT version control
Module: xenomai-gch
Branch: for-head
Commit: 527ad0232f5b27d48335d89eb6f32aa760673c3e
URL:
http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=527ad0232f5b27d48335d89eb6f32aa760673c3e

Author: Jan Kiszka 
Date:   Mon Oct 19 21:24:32 2009 +0200

native: Release fastlock to the proper heap

Don't assume rt_task_delete is only called for in-kernel users, it may
be triggered via auto-cleanup also on user space objects. So check for
the creator and release the fastlock to the correct heap.

Signed-off-by: Jan Kiszka 

---

 ksrc/skins/native/mutex.c |   14 --
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/ksrc/skins/native/mutex.c b/ksrc/skins/native/mutex.c
index 20eb484..6cf7eb1 100644
--- a/ksrc/skins/native/mutex.c
+++ b/ksrc/skins/native/mutex.c
@@ -47,6 +47,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 
@@ -316,8 +317,17 @@ int rt_mutex_delete(RT_MUTEX *mutex)
err = rt_mutex_delete_inner(mutex);
 
 #ifdef CONFIG_XENO_FASTSYNCH
-   if (!err)
-   xnfree(mutex->synch_base.fastlock);
+   if (!err) {
+#ifdef CONFIG_XENO_OPT_PERVASIVE
+   if (mutex->cpid) {
+   int global = xnsynch_test_flags(&mutex->synch_base,
+   RT_MUTEX_EXPORTED);
+   xnheap_free(&xnsys_ppd_get(global)->sem_heap,
+   mutex->synch_base.fastlock);
+   } else
+#endif /* CONFIG_XENO_OPT_PERVASIVE */
+   xnfree(mutex->synch_base.fastlock);
+   }
 #endif /* CONFIG_XENO_FASTSYNCH */
 
return err;


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


[Xenomai-git] Jan Kiszka : native: Release fastlock to the proper heap

2009-10-20 Thread GIT version control
Module: xenomai-head
Branch: master
Commit: 527ad0232f5b27d48335d89eb6f32aa760673c3e
URL:
http://git.xenomai.org/?p=xenomai-head.git;a=commit;h=527ad0232f5b27d48335d89eb6f32aa760673c3e

Author: Jan Kiszka 
Date:   Mon Oct 19 21:24:32 2009 +0200

native: Release fastlock to the proper heap

Don't assume rt_task_delete is only called for in-kernel users, it may
be triggered via auto-cleanup also on user space objects. So check for
the creator and release the fastlock to the correct heap.

Signed-off-by: Jan Kiszka 

---

 ksrc/skins/native/mutex.c |   14 --
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/ksrc/skins/native/mutex.c b/ksrc/skins/native/mutex.c
index 20eb484..6cf7eb1 100644
--- a/ksrc/skins/native/mutex.c
+++ b/ksrc/skins/native/mutex.c
@@ -47,6 +47,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 
@@ -316,8 +317,17 @@ int rt_mutex_delete(RT_MUTEX *mutex)
err = rt_mutex_delete_inner(mutex);
 
 #ifdef CONFIG_XENO_FASTSYNCH
-   if (!err)
-   xnfree(mutex->synch_base.fastlock);
+   if (!err) {
+#ifdef CONFIG_XENO_OPT_PERVASIVE
+   if (mutex->cpid) {
+   int global = xnsynch_test_flags(&mutex->synch_base,
+   RT_MUTEX_EXPORTED);
+   xnheap_free(&xnsys_ppd_get(global)->sem_heap,
+   mutex->synch_base.fastlock);
+   } else
+#endif /* CONFIG_XENO_OPT_PERVASIVE */
+   xnfree(mutex->synch_base.fastlock);
+   }
 #endif /* CONFIG_XENO_FASTSYNCH */
 
return err;


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