*argh* Can whoever maintain the list please add Steve to the mailing list?

Sent on Steve's behalf.

Jun

----- Forwarded message from Steve Longerbeam <[EMAIL PROTECTED]> -----

Date: Fri, 26 Sep 2008 16:15:12 -0700
From: Steve Longerbeam <[EMAIL PROTECTED]>
To: David Howells <[EMAIL PROTECTED]>
CC: Jun Sun <[EMAIL PROTECTED]>, [EMAIL PROTECTED], [email protected]
Subject: Re: [PATCH 4/4] MTD: Fix a bad dependency in the Blackfin code

Jun Sun wrote:
>We applied an older version of this patch to 2.6.21 kernel (2007 distro)
>
>http://mailman.uclinux.org/pipermail/uclinux-dev/2007-February/042088.html
>
>Steve found out that an additional patch is needed to make userland XIP
>work. See the attachement. 
>
>So userland XIP on 2.6 is finally a reality! :) Thanks to David and all 
>others
>who replied.
>
>  

I still have some issues with the behavior of nommu.c:determine_vm_flags().

It seems that in the case of a private mapping over a directly-mappable 
backing store, the only requirement is that it be read-only. Is that 
correct?

If so, that check was already made in validate_mmap_request() 
(BDI_CAP_MAP_DIRECT is cleared if requesting a read/write mapping). So 
if we get to the "private file mapping for a directly mappable backing 
store" case in determine_vm_flags(), we know at this point that it is 
also a read-only mapping.

And if the backing store is capable of being directly mapped, it will 
also be readable, so the vm_flags meet the capabilities of the backing 
store in that case. So attached is another patch that implements this idea.

Steve




----- End forwarded message -----
diff -Nuar -X /home/stevel/dontdiff linux-2.6.x.davidh/drivers/mtd/mtdchar.c 
linux-2.6.x/drivers/mtd/mtdchar.c
--- linux-2.6.x.davidh/drivers/mtd/mtdchar.c    2008-09-26 15:59:01.000000000 
-0700
+++ linux-2.6.x/drivers/mtd/mtdchar.c   2008-09-24 18:50:36.000000000 -0700
@@ -10,6 +10,7 @@
 #include <linux/err.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
+#include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/sched.h>
diff -Nuar -X /home/stevel/dontdiff linux-2.6.x.davidh/mm/nommu.c 
linux-2.6.x/mm/nommu.c
--- linux-2.6.x.davidh/mm/nommu.c       2008-09-26 15:57:05.000000000 -0700
+++ linux-2.6.x/mm/nommu.c      2008-09-26 15:55:52.000000000 -0700
@@ -673,8 +673,12 @@
                 * romfs/cramfs */
                if (flags & MAP_SHARED)
                        vm_flags |= VM_MAYSHARE | VM_SHARED;
-               else if ((((vm_flags & capabilities) ^ vm_flags) & 
BDI_CAP_VMFLAGS) == 0)
+               else {
+                       /* we already know this private mapping is read-only
+                        * from the validate_mmap_request() checks above, so
+                        * we can allow it */
                        vm_flags |= VM_MAYSHARE;
+               }
        }
 
        /* refuse to let anyone share private mappings with this process if
_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to