<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/mm/nommu.c, branch v3.0.80</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>mm: prevent mmap_cache race in find_vma()</title>
<updated>2013-04-12T16:18:09+00:00</updated>
<author>
<name>Jan Stancek</name>
<email>jstancek@redhat.com</email>
</author>
<published>2013-04-08T20:00:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=05fc9336dbfe557067f472074c123d9474393f02'/>
<id>05fc9336dbfe557067f472074c123d9474393f02</id>
<content type='text'>
commit b6a9b7f6b1f21735a7456d534dc0e68e61359d2c upstream.

find_vma() can be called by multiple threads with read lock
held on mm-&gt;mmap_sem and any of them can update mm-&gt;mmap_cache.
Prevent compiler from re-fetching mm-&gt;mmap_cache, because other
readers could update it in the meantime:

               thread 1                             thread 2
                                        |
  find_vma()                            |  find_vma()
    struct vm_area_struct *vma = NULL;  |
    vma = mm-&gt;mmap_cache;               |
    if (!(vma &amp;&amp; vma-&gt;vm_end &gt; addr     |
        &amp;&amp; vma-&gt;vm_start &lt;= addr)) {    |
                                        |    mm-&gt;mmap_cache = vma;
    return vma;                         |
     ^^ compiler may optimize this      |
        local variable out and re-read  |
        mm-&gt;mmap_cache                  |

This issue can be reproduced with gcc-4.8.0-1 on s390x by running
mallocstress testcase from LTP, which triggers:

  kernel BUG at mm/rmap.c:1088!
    Call Trace:
     ([&lt;000003d100c57000&gt;] 0x3d100c57000)
      [&lt;000000000023a1c0&gt;] do_wp_page+0x2fc/0xa88
      [&lt;000000000023baae&gt;] handle_pte_fault+0x41a/0xac8
      [&lt;000000000023d832&gt;] handle_mm_fault+0x17a/0x268
      [&lt;000000000060507a&gt;] do_protection_exception+0x1e2/0x394
      [&lt;0000000000603a04&gt;] pgm_check_handler+0x138/0x13c
      [&lt;000003fffcf1f07a&gt;] 0x3fffcf1f07a
    Last Breaking-Event-Address:
      [&lt;000000000024755e&gt;] page_add_new_anon_rmap+0xc2/0x168

Thanks to Jakub Jelinek for his insight on gcc and helping to
track this down.

Signed-off-by: Jan Stancek &lt;jstancek@redhat.com&gt;
Acked-by: David Rientjes &lt;rientjes@google.com&gt;
Signed-off-by: Hugh Dickins &lt;hughd@google.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
[bwh: Backported to 3.2: adjust context, indentation]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit b6a9b7f6b1f21735a7456d534dc0e68e61359d2c upstream.

find_vma() can be called by multiple threads with read lock
held on mm-&gt;mmap_sem and any of them can update mm-&gt;mmap_cache.
Prevent compiler from re-fetching mm-&gt;mmap_cache, because other
readers could update it in the meantime:

               thread 1                             thread 2
                                        |
  find_vma()                            |  find_vma()
    struct vm_area_struct *vma = NULL;  |
    vma = mm-&gt;mmap_cache;               |
    if (!(vma &amp;&amp; vma-&gt;vm_end &gt; addr     |
        &amp;&amp; vma-&gt;vm_start &lt;= addr)) {    |
                                        |    mm-&gt;mmap_cache = vma;
    return vma;                         |
     ^^ compiler may optimize this      |
        local variable out and re-read  |
        mm-&gt;mmap_cache                  |

This issue can be reproduced with gcc-4.8.0-1 on s390x by running
mallocstress testcase from LTP, which triggers:

  kernel BUG at mm/rmap.c:1088!
    Call Trace:
     ([&lt;000003d100c57000&gt;] 0x3d100c57000)
      [&lt;000000000023a1c0&gt;] do_wp_page+0x2fc/0xa88
      [&lt;000000000023baae&gt;] handle_pte_fault+0x41a/0xac8
      [&lt;000000000023d832&gt;] handle_mm_fault+0x17a/0x268
      [&lt;000000000060507a&gt;] do_protection_exception+0x1e2/0x394
      [&lt;0000000000603a04&gt;] pgm_check_handler+0x138/0x13c
      [&lt;000003fffcf1f07a&gt;] 0x3fffcf1f07a
    Last Breaking-Event-Address:
      [&lt;000000000024755e&gt;] page_add_new_anon_rmap+0xc2/0x168

Thanks to Jakub Jelinek for his insight on gcc and helping to
track this down.

Signed-off-by: Jan Stancek &lt;jstancek@redhat.com&gt;
Acked-by: David Rientjes &lt;rientjes@google.com&gt;
Signed-off-by: Hugh Dickins &lt;hughd@google.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
[bwh: Backported to 3.2: adjust context, indentation]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>NOMMU: Don't need to clear vm_mm when deleting a VMA</title>
<updated>2012-03-12T17:32:56+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2012-02-23T13:51:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0f062a5c0e3b23803c1f5b927ef5e8ba5ec52ff1'/>
<id>0f062a5c0e3b23803c1f5b927ef5e8ba5ec52ff1</id>
<content type='text'>
commit b94cfaf6685d691dc3fab023cf32f65e9b7be09c upstream.

Don't clear vm_mm in a deleted VMA as it's unnecessary and might
conceivably break the filesystem or driver VMA close routine.

Reported-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit b94cfaf6685d691dc3fab023cf32f65e9b7be09c upstream.

Don't clear vm_mm in a deleted VMA as it's unnecessary and might
conceivably break the filesystem or driver VMA close routine.

Reported-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>NOMMU: Lock i_mmap_mutex for access to the VMA prio list</title>
<updated>2012-03-01T00:33:36+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2012-02-23T13:50:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=251ebc7bb45c7e27b8868b13fb56fedeedfc1da4'/>
<id>251ebc7bb45c7e27b8868b13fb56fedeedfc1da4</id>
<content type='text'>
commit 918e556ec214ed2f584e4cac56d7b29e4bb6bf27 upstream.

Lock i_mmap_mutex for access to the VMA prio list to prevent concurrent
access.  Currently, certain parts of the mmap handling are protected by
the region mutex, but not all.

Reported-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 918e556ec214ed2f584e4cac56d7b29e4bb6bf27 upstream.

Lock i_mmap_mutex for access to the VMA prio list to prevent concurrent
access.  Currently, certain parts of the mmap handling are protected by
the region mutex, but not all.

Reported-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>mm/nommu.c: fix remap_pfn_range()</title>
<updated>2011-07-09T04:14:44+00:00</updated>
<author>
<name>Bob Liu</name>
<email>lliubbo@gmail.com</email>
</author>
<published>2011-07-08T22:39:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8f3b1327aa454bc8283e96bca7669c3c88b83f79'/>
<id>8f3b1327aa454bc8283e96bca7669c3c88b83f79</id>
<content type='text'>
remap_pfn_range() means map physical address pfn&lt;&lt;PAGE_SHIFT to user addr.

For nommu arch it's implemented by vma-&gt;vm_start = pfn &lt;&lt; PAGE_SHIFT which
is wrong acroding the original meaning of this function.  And some driver
developer using remap_pfn_range() with correct parameter will get
unexpected result because vm_start is changed.  It should be implementd
like addr = pfn &lt;&lt; PAGE_SHIFT but which is meanless on nommu arch, this
patch just make it simply return.

Parameter name and setting of vma-&gt;vm_flags also be fixed.

Signed-off-by: Bob Liu &lt;lliubbo@gmail.com&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
Cc: Mike Frysinger &lt;vapier@gentoo.org&gt;
Cc: Bob Liu &lt;lliubbo@gmail.com&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
remap_pfn_range() means map physical address pfn&lt;&lt;PAGE_SHIFT to user addr.

For nommu arch it's implemented by vma-&gt;vm_start = pfn &lt;&lt; PAGE_SHIFT which
is wrong acroding the original meaning of this function.  And some driver
developer using remap_pfn_range() with correct parameter will get
unexpected result because vm_start is changed.  It should be implementd
like addr = pfn &lt;&lt; PAGE_SHIFT but which is meanless on nommu arch, this
patch just make it simply return.

Parameter name and setting of vma-&gt;vm_flags also be fixed.

Signed-off-by: Bob Liu &lt;lliubbo@gmail.com&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
Cc: Mike Frysinger &lt;vapier@gentoo.org&gt;
Cc: Bob Liu &lt;lliubbo@gmail.com&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nommu: add page alignment to mmap</title>
<updated>2011-05-25T15:39:38+00:00</updated>
<author>
<name>Bob Liu</name>
<email>lliubbo@gmail.com</email>
</author>
<published>2011-05-25T00:12:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f67d9b1576c1c6e02100f8b27f4e9d66bbeb4d49'/>
<id>f67d9b1576c1c6e02100f8b27f4e9d66bbeb4d49</id>
<content type='text'>
Currently on nommu arch mmap(),mremap() and munmap() doesn't do
page_align() which isn't consist with mmu arch and cause some issues.

First, some drivers' mmap() function depends on vma-&gt;vm_end - vma-&gt;start
is page aligned which is true on mmu arch but not on nommu.  eg: uvc
camera driver.

Second munmap() may return -EINVAL[split file] error in cases when end is
not page aligned(passed into from userspace) but vma-&gt;vm_end is aligned
dure to split or driver's mmap() ops.

Add page alignment to fix those issues.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Bob Liu &lt;lliubbo@gmail.com&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Greg Ungerer &lt;gerg@snapgear.com&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently on nommu arch mmap(),mremap() and munmap() doesn't do
page_align() which isn't consist with mmu arch and cause some issues.

First, some drivers' mmap() function depends on vma-&gt;vm_end - vma-&gt;start
is page aligned which is true on mmu arch but not on nommu.  eg: uvc
camera driver.

Second munmap() may return -EINVAL[split file] error in cases when end is
not page aligned(passed into from userspace) but vma-&gt;vm_end is aligned
dure to split or driver's mmap() ops.

Add page alignment to fix those issues.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Bob Liu &lt;lliubbo@gmail.com&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Greg Ungerer &lt;gerg@snapgear.com&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mm: nommu: fix a compile warning in do_mmap_pgoff()</title>
<updated>2011-05-25T15:39:07+00:00</updated>
<author>
<name>Namhyung Kim</name>
<email>namhyung@gmail.com</email>
</author>
<published>2011-05-25T00:11:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=bb005a59e08733bb416126dc184f73120fc6366b'/>
<id>bb005a59e08733bb416126dc184f73120fc6366b</id>
<content type='text'>
Because 'ret' is declared as int, not unsigned long, no need to cast the
error contants into unsigned long.  If you compile this code on a 64-bit
machine somehow, you'll see following warning:

    CC      mm/nommu.o
  mm/nommu.c: In function `do_mmap_pgoff':
  mm/nommu.c:1411: warning: overflow in implicit constant conversion

Signed-off-by: Namhyung Kim &lt;namhyung@gmail.com&gt;
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Because 'ret' is declared as int, not unsigned long, no need to cast the
error contants into unsigned long.  If you compile this code on a 64-bit
machine somehow, you'll see following warning:

    CC      mm/nommu.o
  mm/nommu.c: In function `do_mmap_pgoff':
  mm/nommu.c:1411: warning: overflow in implicit constant conversion

Signed-off-by: Namhyung Kim &lt;namhyung@gmail.com&gt;
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mm: nommu: fix a potential memory leak in do_mmap_private()</title>
<updated>2011-05-25T15:39:06+00:00</updated>
<author>
<name>Namhyung Kim</name>
<email>namhyung@gmail.com</email>
</author>
<published>2011-05-25T00:11:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7223bb4a829628bdf37d544ed4363d99bac1ade6'/>
<id>7223bb4a829628bdf37d544ed4363d99bac1ade6</id>
<content type='text'>
If f_op-&gt;read() fails and sysctl_nr_trim_pages &gt; 1, there could be a
memory leak between @region-&gt;vm_end and @region-&gt;vm_top.

Signed-off-by: Namhyung Kim &lt;namhyung@gmail.com&gt;
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If f_op-&gt;read() fails and sysctl_nr_trim_pages &gt; 1, there could be a
memory leak between @region-&gt;vm_end and @region-&gt;vm_top.

Signed-off-by: Namhyung Kim &lt;namhyung@gmail.com&gt;
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mm: nommu: check the vma list when unmapping file-mapped vma</title>
<updated>2011-05-25T15:39:06+00:00</updated>
<author>
<name>Namhyung Kim</name>
<email>namhyung@gmail.com</email>
</author>
<published>2011-05-25T00:11:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d75a310c42c616c168953ed45c1091074f97828c'/>
<id>d75a310c42c616c168953ed45c1091074f97828c</id>
<content type='text'>
Now we have the sorted vma list, use it in do_munmap() to check that we
have an exact match.

Signed-off-by: Namhyung Kim &lt;namhyung@gmail.com&gt;
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now we have the sorted vma list, use it in do_munmap() to check that we
have an exact match.

Signed-off-by: Namhyung Kim &lt;namhyung@gmail.com&gt;
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mm: nommu: find vma using the sorted vma list</title>
<updated>2011-05-25T15:39:06+00:00</updated>
<author>
<name>Namhyung Kim</name>
<email>namhyung@gmail.com</email>
</author>
<published>2011-05-25T00:11:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e922c4c5360980bfeb862b3ec307d36bb344dcae'/>
<id>e922c4c5360980bfeb862b3ec307d36bb344dcae</id>
<content type='text'>
Now we have the sorted vma list, use it in the find_vma[_exact]() rather
than doing linear search on the rb-tree.

Signed-off-by: Namhyung Kim &lt;namhyung@gmail.com&gt;
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now we have the sorted vma list, use it in the find_vma[_exact]() rather
than doing linear search on the rb-tree.

Signed-off-by: Namhyung Kim &lt;namhyung@gmail.com&gt;
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mm: nommu: don't scan the vma list when deleting</title>
<updated>2011-05-25T15:39:05+00:00</updated>
<author>
<name>Namhyung Kim</name>
<email>namhyung@gmail.com</email>
</author>
<published>2011-05-25T00:11:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b951bf2c4693bfc9744e11293be859209f65f579'/>
<id>b951bf2c4693bfc9744e11293be859209f65f579</id>
<content type='text'>
Since commit 297c5eee3724 ("mm: make the vma list be doubly linked") made
it a doubly linked list, we don't need to scan the list when deleting
@vma.

And the original code didn't update the prev pointer. Fix it too.

Signed-off-by: Namhyung Kim &lt;namhyung@gmail.com&gt;
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since commit 297c5eee3724 ("mm: make the vma list be doubly linked") made
it a doubly linked list, we don't need to scan the list when deleting
@vma.

And the original code didn't update the prev pointer. Fix it too.

Signed-off-by: Namhyung Kim &lt;namhyung@gmail.com&gt;
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
