]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
linux-yocto/3.0: mm/msync: tweak tmpfs patch for syscall msync
authorBruce Ashfield <bruce.ashfield@windriver.com>
Mon, 7 May 2012 15:14:10 +0000 (11:14 -0400)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 8 May 2012 15:09:35 +0000 (16:09 +0100)
Bumping the routerstationpro SRCREV for the following fix:

    mm/msync: tweak tmpfs patch for syscall msync

    Commit 1c3ae5441 "mm: msync: fix issues of sys_msync on tmpfs"
    fixes the problem that sys_msync fails with tmpfs on MIPS CPU which
    has feature "cache alias".

    But it makes POSIX test cases mlockall/3-6 3-7 fail on MIPS.
    Case mlockall/3-6 creates a share memory, and maps it to memory.
      fd = shm_open(SHM_NAME, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR);
      foo = mmap(NULL, BUF_SIZE, PROT_WRITE, MAP_SHARED, fd, 0);
    Then calls mlockall to lock all of the virtual address space:
      if (mlockall(MCL_CURRENT) == -1) {
    At last tests whether the virtual address spaces are locked:
      page_ptr = (void*) ((long)foo - ((long)foo % page_size));
      result = msync(page_ptr, page_size, MS_SYNC|MS_INVALIDATE);
    It espects msync returns -1 with EBUSY but returns 0.
    Case mlockall/3-7 creates a normal file to mmap, and it fails too.

    Tweak the patch to:
    1 Moved the CONFIG_TMPFS block down in the loop so that the normal
      vma flag checking will perform.
    2 There may be other VMAs in the list after this VMA which belongs
      to tmpfs file, and we should sync them after the tmpfs one. So
      remove the break loop clauses.

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
meta-yocto/recipes-kernel/linux/linux-yocto_3.0.bbappend

index 944f6018befecffe5d6a94731e70eb9aa6f97d52..68c7cad840102520ab6a858a89760c5fb254875c 100644 (file)
@@ -5,7 +5,7 @@ KMACHINE_beagleboard = "yocto/standard/beagleboard"
 
 
 SRCREV_machine_atom-pc ?= "afdda882f902dd28693cd8701a7d497958290f09"
-SRCREV_machine_routerstationpro ?= "982522e3901fad56bb908565b22c498025ab536c"
+SRCREV_machine_routerstationpro ?= "220d89fcf345ee28fb0cdcf0f33f83b3dc7c460f"
 SRCREV_machine_mpc8315e-rdb ?= "83f422f718cf15633cb4c2d309aa041c3c354f65"
 SRCREV_machine_beagleboard ?= "8fd5a8eb4067c7032389e82d54f0e54e1e27f78c"