The following changes since commit 6d7d6bc436ef3d1fb51fa8de06d4ecf004e3b6a5:
  Gilles Chanteperdrix (1):
        nucleus: defer selector block deletion to an APC.

are available in the git repository at:

  git://git.xenomai.org/xenomai-jki.git for-upstream

Jan Kiszka (2):
      nucleus: Track heap mapping on to mm-clone
      nucleus: Fix trivial build warning

 ksrc/nucleus/heap.c   |   12 +++++++++++-
 ksrc/nucleus/module.c |    2 +-
 2 files changed, 12 insertions(+), 2 deletions(-)

---

[PATCH] nucleus: Track heap mapping on to mm-clone

When the mm is cloned (due to fork), the heap mapping counter need to be
updated as well. Register an open callback with the vm-ops for this
purpose.

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
---
 ksrc/nucleus/heap.c |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/ksrc/nucleus/heap.c b/ksrc/nucleus/heap.c
index b5fb1cd..27a4ad7 100644
--- a/ksrc/nucleus/heap.c
+++ b/ksrc/nucleus/heap.c
@@ -1017,6 +1017,15 @@ static void __unreserve_and_free_heap(void *ptr, size_t 
size, int kmflags)
        }
 }
 
+static void xnheap_vmopen(struct vm_area_struct *vma)
+{
+       xnheap_t *heap = vma->vm_private_data;
+
+       spin_lock(&kheapq_lock);
+       heap->archdep.numaps++;
+       spin_unlock(&kheapq_lock);
+}
+
 static void xnheap_vmclose(struct vm_area_struct *vma)
 {
        xnheap_t *heap = vma->vm_private_data;
@@ -1037,7 +1046,8 @@ static void xnheap_vmclose(struct vm_area_struct *vma)
 }
 
 static struct vm_operations_struct xnheap_vmops = {
-      .close = &xnheap_vmclose
+       .open = &xnheap_vmopen,
+       .close = &xnheap_vmclose
 };
 
 static int xnheap_open(struct inode *inode, struct file *file)
-- 
1.6.0.2

Attachment: signature.asc
Description: OpenPGP digital signature

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

Reply via email to