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

Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org>
Date:   Sun Jan 22 19:32:47 2012 +0100

arm: fix heaps pre-faulting with kernel newer than 2.6.22

---

 ksrc/arch/arm/hal.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/ksrc/arch/arm/hal.c b/ksrc/arch/arm/hal.c
index 1ba9457..30eeca7 100644
--- a/ksrc/arch/arm/hal.c
+++ b/ksrc/arch/arm/hal.c
@@ -431,11 +431,19 @@ void __rthal_arm_fault_range(struct vm_area_struct *vma)
 {
        unsigned long addr;
 
-       if ((vma->vm_flags & VM_MAYREAD))
+       if ((vma->vm_flags & VM_MAYREAD)) {
+               unsigned flags;
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 22)
+               flags = (vma->vm_flags & VM_MAYWRITE) ? FAULT_FLAG_WRITE : 0;
+#else /* linux <= 2.6.22 */
+               flags = vma->vm_flags & VM_MAYWRITE
+#endif /* linux <= 2.6.22 */
+
                for (addr = vma->vm_start;
                     addr != vma->vm_end; addr += PAGE_SIZE)
-                       handle_mm_fault(vma->vm_mm, vma, addr,
-                                       vma->vm_flags & VM_MAYWRITE);
+                       handle_mm_fault(vma->vm_mm, vma, addr, flags);
+       }
 }
 
 static inline


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

Reply via email to