)]}'
{
  "log": [
    {
      "commit": "53a7706d5ed8f1a53ba062b318773160cc476dde",
      "tree": "a1990d90d5af3686b7a83b2bbc2ae6463971efc5",
      "parents": [
        "5fdb2002131cd4e210b9638a4fc932ec7be491d1"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Thu Jan 13 15:46:14 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:36 2011 -0800"
      },
      "message": "mlock: do not hold mmap_sem for extended periods of time\n\n__get_user_pages gets a new \u0027nonblocking\u0027 parameter to signal that the\ncaller is prepared to re-acquire mmap_sem and retry the operation if\nneeded.  This is used to split off long operations if they are going to\nblock on a disk transfer, or when we detect contention on the mmap_sem.\n\n[akpm@linux-foundation.org: remove ref to rwsem_is_contended()]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29c185e5c681ca00d863d161eda7eadb93e32ee5",
      "tree": "f1b8a601ea8cae381e2c6d9246414e0b9723ea83",
      "parents": [
        "9a14f653dfe349c0916e6a78c413effa2fa3f001"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Dec 24 12:08:30 2010 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Dec 24 12:08:30 2010 +0900"
      },
      "message": "nommu: Provide stubbed alloc/free_vm_area() implementation.\n\nNow that these have been introduced in to the vmalloc API, sync up the\nnommu side of things. At present we don\u0027t deal with VMAs as such, so for\nthe time being these will simply BUG() out. In the future it should be\npossible to support this interface by layering on top of the vm_regions.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "9a14f653dfe349c0916e6a78c413effa2fa3f001",
      "tree": "f0f6165e89cf76ec754a0ab4625e37620edf15be",
      "parents": [
        "eda4b716ea1f2a647a39cebae66b3fae4c4b80e4"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Dec 24 11:50:34 2010 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Dec 24 11:50:34 2010 +0900"
      },
      "message": "nommu: Fix up vmalloc_node() symbol export regression.\n\nCommit e1ca778 (\"mm: add vzalloc() and vzalloc_node() helpers\") ended up\naccidentally deleting the vmalloc_node() symbol export, resulting in:\n\n\"vmalloc_node\" [net/core/pktgen.ko] undefined!\n\"vmalloc_node\" [net/netfilter/x_tables.ko] undefined!\n\nregressions.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "04c3496152394d17e3bc2316f9731ee3e8a026bc",
      "tree": "1c0a1275a3a3ef3f4aad36fd4cd5500980f5f0d7",
      "parents": [
        "3a3a1af37f0405d15c0b64a6ce7f4878084442e0"
      ],
      "author": {
        "name": "Steven J. Magnani",
        "email": "steve@digidescorp.com",
        "time": "Wed Nov 24 12:56:54 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 25 06:50:38 2010 +0900"
      },
      "message": "nommu: yield CPU while disposing VM\n\nDepending on processor speed, page size, and the amount of memory a\nprocess is allowed to amass, cleanup of a large VM may freeze the system\nfor many seconds.  This can result in a watchdog timeout.\n\nMake sure other tasks receive some service when cleaning up large VMs.\n\nSigned-off-by: Steven J. Magnani \u003csteve@digidescorp.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "120a795da07c9a02221ca23464c28a7c6ad7de1d",
      "tree": "14e0f5ab35e9397f4a1b2f5e24b8394a601aa409",
      "parents": [
        "af2951325bd6c26cb2c91943c7b11aed53504056"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 30 02:54:44 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 30 08:45:43 2010 -0400"
      },
      "message": "audit mmap\n\nNormal syscall audit doesn\u0027t catch 5th argument of syscall.  It also\ndoesn\u0027t catch the contents of userland structures pointed to be\nsyscall argument, so for both old and new mmap(2) ABI it doesn\u0027t\nrecord the descriptor we are mapping.  For old one it also misses\nflags.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e1ca7788dec6773b1a2bce51b7141948f2b8bccf",
      "tree": "500edef0ca88f398647f99e63be0a38307314319",
      "parents": [
        "7bbc0905ea4f7a471a7f79d0bea5d538f5114fc9"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Tue Oct 26 14:22:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:10 2010 -0700"
      },
      "message": "mm: add vzalloc() and vzalloc_node() helpers\n\nAdd vzalloc() and vzalloc_node() to encapsulate the\nvmalloc-then-memset-zero operation.\n\nUse __GFP_ZERO to zero fill the allocated memory.\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "297c5eee372478fc32fec5fe8eed711eedb13f3d",
      "tree": "18415eae0833ff4767943f985900524d6b1d73f1",
      "parents": [
        "36423a5ed5e4ea95ceedb68fad52965033e11639"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 16:24:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 21 08:49:21 2010 -0700"
      },
      "message": "mm: make the vma list be doubly linked\n\nIt\u0027s a really simple list, and several of the users want to go backwards\nin it to find the previous vma.  So rather than have to look up the\nprevious entry with \u0027find_vma_prev()\u0027 or something similar, just make it\ndoubly linked instead.\n\nTested-by: Ian Campbell \u003cijc@hellion.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe622e76fddd986e56f22842a6ce292504727ef1",
      "tree": "7e901e8d5f42a76c0e9e8e33d75b6ff791a7b759",
      "parents": [
        "c7887325230aec47d47a32562a6e26014a0fafca"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Aug 13 11:25:12 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 13 16:55:25 2010 -0700"
      },
      "message": "NOMMU: Remove an extraneous no_printk()\n\nRemove an extraneous no_printk() in mm/nommu.c that got missed when the\nfunction got generalised from several things that used it in commit\n12fdff3fc248 (\"Add a dummy printk function for the maintenance of unused\nprintks\").\n\nWithout this, the following error is observed:\n\n  mm/nommu.c:41: error: conflicting types for \u0027no_printk\u0027\n  include/linux/kernel.h:314: error: previous definition of \u0027no_printk\u0027 was here\n\nReported-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c7b204547bc3d342a4e31196fe14803581d279f",
      "tree": "87a3300d266eed413012efd0a985a72caad4a856",
      "parents": [
        "0cae3457b1a6e88f31020272bcfd90c178716053"
      ],
      "author": {
        "name": "Bernd Schmidt",
        "email": "bernds_cb1@t-online.de",
        "time": "Tue May 25 23:43:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 26 08:19:23 2010 -0700"
      },
      "message": "nommu: allow private mappings of read-only devices\n\nSlightly rearrange the logic that determines capabilities and vm_flags.\nDisable BDI_CAP_MAP_DIRECT in all cases if the device can\u0027t support the\nprotections.  Allow private readonly mappings of readonly backing devices.\n\nSigned-off-by: Bernd Schmidt \u003cbernds_cb1@t-online.de\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-by: David McCullough \u003cdavidm@snapgear.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1ee65d85904c5dd4b9cea1b15d5e85e20eae8a1",
      "tree": "5de7d6dd923a04eda69fdedd1209ea249ef081cf",
      "parents": [
        "7561e8ca0dfaf6fca3feef982830de3b65300e5b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Mar 25 16:48:44 2010 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 25 14:13:27 2010 -0700"
      },
      "message": "NOMMU: Fix __get_user_pages() to pin last page on offset buffers\n\nFix __get_user_pages() to make it pin the last page on a buffer that doesn\u0027t\nbegin at the start of a page, but is a multiple of PAGE_SIZE in size.\n\nThe problem is that __get_user_pages() advances the pointer too much when it\niterates to the next page if the page it\u0027s currently looking at isn\u0027t used from\nthe first byte.  This can cause the end of a short VMA to be reached\nprematurely, resulting in the last page being lost.\n\nSigned-off-by: Steven J. Magnani \u003csteve@digidescorp.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7561e8ca0dfaf6fca3feef982830de3b65300e5b",
      "tree": "8b3fa49efdec009515b9de7503160877953c4027",
      "parents": [
        "39f1cd635cbe8a42c3c74fa6bf9f61c1156bd27b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Mar 25 16:48:38 2010 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 25 14:13:26 2010 -0700"
      },
      "message": "NOMMU: Revert \u0027nommu: get_user_pages(): pin last page on non-page-aligned start\u0027\n\nRevert the following patch:\n\n\tcommit c08c6e1f54c85fc299cf9f88cf330d6dd28a9a1d\n\tAuthor: Steven J. Magnani \u003csteve@digidescorp.com\u003e\n\tDate:   Fri Mar 5 13:42:24 2010 -0800\n\n\tnommu: get_user_pages(): pin last page on non-page-aligned start\n\nAs it assumes that the mappings begin at the start of pages - something that\nisn\u0027t necessarily true on NOMMU systems.  On NOMMU systems, it is possible for\na mapping to only occupy part of the page, and not necessarily touch either end\nof it; in fact it\u0027s also possible for multiple non-overlapping mappings to\ncoexist on one page (consider direct mappings of ROMFS files, for example).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steven J. Magnani \u003csteve@digidescorp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fa30460ea502133a18a07b14452cd660906f16f",
      "tree": "0e7bd3404258fae1adc8813a7fc3c21c13ba3cba",
      "parents": [
        "28b8e8d4e2e3e27aa911b5aee59d5194a878f53e"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Mar 23 13:35:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 24 16:31:20 2010 -0700"
      },
      "message": "nommu: fix an incorrect comment in the do_mmap_shared_file()\n\nFix an incorrect comment in the do_mmap_shared_file().  If a mapping is\nrequested MAP_SHARED, then a private copy cannot be made and still provide\ncorrect semantics.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReported-by: Dave Hudson \u003cuclinux@blueteddy.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a4679373cf4ee0e7792dc56205365732b725c2c1",
      "tree": "6cf8040f608ad46ae7c605284af1ca585fb50eaa",
      "parents": [
        "5d0e52830e9ae09b872567f4aca3dfb5b5918079"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Mar 10 15:21:15 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:32 2010 -0800"
      },
      "message": "Add generic sys_old_mmap()\n\nAdd a generic implementation of the old mmap() syscall, which expects its\nargument in a memory block and switch all architectures over to use it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nAcked-by: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c08c6e1f54c85fc299cf9f88cf330d6dd28a9a1d",
      "tree": "b03659b467641e445b9f4a96423fd20ff806b7fb",
      "parents": [
        "f047f4f3792344901e1ea18a180515d7d5349e02"
      ],
      "author": {
        "name": "Steven J. Magnani",
        "email": "steve@digidescorp.com",
        "time": "Fri Mar 05 13:42:24 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:27 2010 -0800"
      },
      "message": "nommu: get_user_pages(): pin last page on non-page-aligned start\n\nThe noMMU version of get_user_pages() fails to pin the last page when the\nstart address isn\u0027t page-aligned.  The patch fixes this in a way that\nmakes find_extend_vma() congruent to its MMU cousin.\n\nSigned-off-by: Steven J. Magnani \u003csteve@digidescorp.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5beb49305251e5669852ed541e8e2f2f7696c53e",
      "tree": "46457450a22f23938b24904aeba5d4ada2f53b20",
      "parents": [
        "648bcc771145172a14bc35eeb849ed08f6aa4f1e"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Fri Mar 05 13:42:07 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "mm: change anon_vma linking to fix multi-process server scalability issue\n\nThe old anon_vma code can lead to scalability issues with heavily forking\nworkloads.  Specifically, each anon_vma will be shared between the parent\nprocess and all its child processes.\n\nIn a workload with 1000 child processes and a VMA with 1000 anonymous\npages per process that get COWed, this leads to a system with a million\nanonymous pages in the same anon_vma, each of which is mapped in just one\nof the 1000 processes.  However, the current rmap code needs to walk them\nall, leading to O(N) scanning complexity for each page.\n\nThis can result in systems where one CPU is walking the page tables of\n1000 processes in page_referenced_one, while all other CPUs are stuck on\nthe anon_vma lock.  This leads to catastrophic failure for a benchmark\nlike AIM7, where the total number of processes can reach in the tens of\nthousands.  Real workloads are still a factor 10 less process intensive\nthan AIM7, but they are catching up.\n\nThis patch changes the way anon_vmas and VMAs are linked, which allows us\nto associate multiple anon_vmas with a VMA.  At fork time, each child\nprocess gets its own anon_vmas, in which its COWed pages will be\ninstantiated.  The parents\u0027 anon_vma is also linked to the VMA, because\nnon-COWed pages could be present in any of the children.\n\nThis reduces rmap scanning complexity to O(1) for the pages of the 1000\nchild processes, with O(N) complexity for at most 1/N pages in the system.\n This reduces the average scanning cost in heavily forking workloads from\nO(N) to 2.\n\nThe only real complexity in this patch stems from the fact that linking a\nVMA to anon_vmas now involves memory allocations.  This means vma_adjust\ncan fail, if it needs to attach a VMA to anon_vma structures.  This in\nturn means error handling needs to be added to the calling functions.\n\nA second source of complexity is that, because there can be multiple\nanon_vmas, the anon_vma linking in vma_adjust can no longer be done under\n\"the\" anon_vma lock.  To prevent the rmap code from walking up an\nincomplete VMA, this patch introduces the VM_LOCK_RMAP VMA flag.  This bit\nflag uses the same slot as the NOMMU VM_MAPPED_COPY, with an ifdef in mm.h\nto make sure it is impossible to compile a kernel that needs both symbolic\nvalues for the same bitflag.\n\nSome test results:\n\nWithout the anon_vma changes, when AIM7 hits around 9.7k users (on a test\nbox with 16GB RAM and not quite enough IO), the system ends up running\n\u003e99% in system time, with every CPU on the same anon_vma lock in the\npageout code.\n\nWith these changes, AIM7 hits the cross-over point around 29.7k users.\nThis happens with ~99% IO wait time, there never seems to be any spike in\nsystem time.  The anon_vma lock contention appears to be resolved.\n\n[akpm@linux-foundation.org: cleanups]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e6608724c640924aad1d556d17df33ebaa6124d",
      "tree": "b2d90646f5ee52f5b7807bbc0abe09db9adbe478",
      "parents": [
        "81759b5b221107488bda99fe7beeb7b734f61133"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 15 17:01:39 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:40 2010 -0800"
      },
      "message": "nommu: fix shared mmap after truncate shrinkage problems\n\nFix a problem in NOMMU mmap with ramfs whereby a shared mmap can happen\nover the end of a truncation.  The problem is that\nramfs_nommu_check_mappings() checks that the reduced file size against the\nVMA tree, but not the vm_region tree.\n\nThe following sequence of events can cause the problem:\n\n\tfd \u003d open(\"/tmp/x\", O_RDWR|O_TRUNC|O_CREAT, 0600);\n\tftruncate(fd, 32 * 1024);\n\ta \u003d mmap(NULL, 32 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\tb \u003d mmap(NULL, 16 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\tmunmap(a, 32 * 1024);\n\tftruncate(fd, 16 * 1024);\n\tc \u003d mmap(NULL, 32 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\nMapping \u0027a\u0027 creates a vm_region covering 32KB of the file.  Mapping \u0027b\u0027\nsees that the vm_region from \u0027a\u0027 is covering the region it wants and so\nshares it, pinning it in memory.\n\nMapping \u0027a\u0027 then goes away and the file is truncated to the end of VMA\n\u0027b\u0027.  However, the region allocated by \u0027a\u0027 is still in effect, and has\n_not_ been reduced.\n\nMapping \u0027c\u0027 is then created, and because there\u0027s a vm_region covering the\ndesired region, get_unmapped_area() is _not_ called to repeat the check,\nand the mapping is granted, even though the pages from the latter half of\nthe mapping have been discarded.\n\nHowever:\n\n\td \u003d mmap(NULL, 16 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\nMapping \u0027d\u0027 should work, and should end up sharing the region allocated by\n\u0027a\u0027.\n\nTo deal with this, we shrink the vm_region struct during the truncation,\nlest do_mmap_pgoff() take it as licence to share the full region\nautomatically without calling the get_unmapped_area() file op again.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "efc1a3b16930c41d64ffefde16b87d82f603a8a0",
      "tree": "1f651e22f534f1b3eacd2fab97e9351aa75abd0b",
      "parents": [
        "779c10232ceb11c1b259232c4845cfb2850287b7"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 15 17:01:35 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:40 2010 -0800"
      },
      "message": "nommu: don\u0027t need get_unmapped_area() for NOMMU\n\nget_unmapped_area() is unnecessary for NOMMU as no-one calls it.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "779c10232ceb11c1b259232c4845cfb2850287b7",
      "tree": "972b07acdcff03b20c84d42425a64b231df52aaa",
      "parents": [
        "1e2ae599d37e60958c03ca5e46b1f657619a30cd"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 15 17:01:34 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:40 2010 -0800"
      },
      "message": "nommu: remove a superfluous check of vm_region::vm_usage\n\nIn split_vma(), there\u0027s no need to check if the VMA being split has a\nregion that\u0027s in use by more than one VMA because:\n\n (1) The preceding test prohibits splitting of non-anonymous VMAs and regions\n     (eg: file or chardev backed VMAs).\n\n (2) Anonymous regions can\u0027t be mapped multiple times because there\u0027s no handle\n     by which to refer to the already existing region.\n\n (3) If a VMA has previously been split, then the region backing it has also\n     been split into two regions, each of usage 1.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e2ae599d37e60958c03ca5e46b1f657619a30cd",
      "tree": "0a0c9ff0370fbefd4eb8fe3a44106880c1aae8cb",
      "parents": [
        "ed5e5894b234ce4793d78078c026915b853e0678"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 15 17:01:33 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:40 2010 -0800"
      },
      "message": "nommu: struct vm_region\u0027s vm_usage count need not be atomic\n\nThe vm_usage count field in struct vm_region does not need to be atomic as\nit\u0027s only even modified whilst nommu_region_sem is write locked.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7959722b951cffcd61a0a35229d007deeed8c2dd",
      "tree": "18badc77e7c79042c9321c279f9b47e8af3b36c5",
      "parents": [
        "cfe79c00a2f4f687eed8b7534d1d3d3d35540c29"
      ],
      "author": {
        "name": "Jie Zhang",
        "email": "jie.zhang@analog.com",
        "time": "Wed Jan 06 17:23:28 2010 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 18:16:02 2010 -0800"
      },
      "message": "NOMMU: Use copy_*_user_page() in access_process_vm()\n\nThe MMU code uses the copy_*_user_page() variants in access_process_vm()\nrather than copy_*_user() as the former includes an icache flush.  This\nis important when doing things like setting software breakpoints with\ngdb.  So switch the NOMMU code over to do the same.\n\nThis patch makes the reasonable assumption that copy_from_user_page()\nwon\u0027t fail - which is probably fine, as we\u0027ve checked the VMA from which\nwe\u0027re copying is usable, and the copy is not allowed to cross VMAs.  The\none case where it might go wrong is if the VMA is a device rather than\nRAM, and that device returns an error which - in which case rubbish will\nbe returned rather than EIO.\n\nSigned-off-by: Jie Zhang \u003cjie.zhang@analog.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: David McCullough \u003cdavid_mccullough@mcafee.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cfe79c00a2f4f687eed8b7534d1d3d3d35540c29",
      "tree": "62c603938e7b740ca16ce1012a6ee7ab08b3f727",
      "parents": [
        "04e4f2b18c8de1389d1e00fef0f42a8099910daf"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Wed Jan 06 17:23:23 2010 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 18:16:02 2010 -0800"
      },
      "message": "NOMMU: Avoiding duplicate icache flushes of shared maps\n\nWhen working with FDPIC, there are many shared mappings of read-only\ncode regions between applications (the C library, applet packages like\nbusybox, etc.), but the current do_mmap_pgoff() function will issue an\nicache flush whenever a VMA is added to an MM instead of only doing it\nwhen the map is initially created.\n\nThe flush can instead be done when a region is first mmapped PROT_EXEC.\nNote that we may not rely on the first mapping of a region being\nexecutable - it\u0027s possible for it to be PROT_READ only, so we have to\nremember whether we\u0027ve flushed the region or not, and then flush the\nentire region when a bit of it is made executable.\n\nHowever, this also affects the brk area.  That will no longer be\nexecutable.  We can mprotect() it to PROT_EXEC on MPU-mode kernels, but\nfor NOMMU mode kernels, when it increases the brk allocation, making\nsys_brk() flush the extra from the icache should suffice.  The brk area\nprobably isn\u0027t used by NOMMU programs since the brk area can only use up\nthe leavings from the stack allocation, where the stack allocation is\nlarger than requested.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66f0dc481e5b802ab363b979fc1753410c7d82b5",
      "tree": "9f8609685f07d410bc6536a0d3e47e366edf93d4",
      "parents": [
        "75c85a0bc13367aabb36e8208d4e373b022b43b3"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Wed Dec 30 20:17:34 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 30 12:23:27 2009 -0800"
      },
      "message": "mm: move sys_mmap_pgoff from util.c\n\nMove sys_mmap_pgoff() from mm/util.c to mm/mmap.c and mm/nommu.c,\nwhere we\u0027d expect to find such code: especially now that it contains\nthe MAP_HUGETLB handling.  Revert mm/util.c to how it was in 2.6.32.\n\nThis patch just ignores MAP_HUGETLB in the nommu case, as in 2.6.32,\nwhereas 2.6.33-rc2 reported -ENOSYS.  Perhaps validate_mmap_request()\nshould reject it with -EINVAL?  Add that later if necessary.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea637639591def87a54cea811cbac796980cb30d",
      "tree": "7ea3e4baf2ffade539ae30192521d331f8e863fa",
      "parents": [
        "5dc37642cbce34619e4588a9f0bdad1d2f870956"
      ],
      "author": {
        "name": "Jie Zhang",
        "email": "jie.zhang@analog.com",
        "time": "Mon Dec 14 18:00:02 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:24 2009 -0800"
      },
      "message": "nommu: fix malloc performance by adding uninitialized flag\n\nThe NOMMU code currently clears all anonymous mmapped memory.  While this\nis what we want in the default case, all memory allocation from userspace\nunder NOMMU has to go through this interface, including malloc() which is\nallowed to return uninitialized memory.  This can easily be a significant\nperformance penalty.  So for constrained embedded systems were security is\nirrelevant, allow people to avoid clearing memory unnecessarily.\n\nThis also alters the ELF-FDPIC binfmt such that it obtains uninitialised\nmemory for the brk and stack region.\n\nSigned-off-by: Jie Zhang \u003cjie.zhang@analog.com\u003e\nSigned-off-by: Robin Getz \u003crgetz@blackfin.uclinux.org\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89a8640279f8bb78aaf778d1fc5c4a6778f18064",
      "tree": "c768adbc88d0482d4fdd0ff8385fe77c01ae1534",
      "parents": [
        "2e2ec952350f25242f2e0539db16b1e46f9eb01b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Oct 30 13:13:26 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 31 12:11:37 2009 -0700"
      },
      "message": "NOMMU: Don\u0027t pass NULL pointers to fput() in do_mmap_pgoff()\n\nDon\u0027t pass NULL pointers to fput() in the error handling paths of the NOMMU\ndo_mmap_pgoff() as it can\u0027t handle it.\n\nThe following can be used as a test program:\n\n\tint main() { static long long a[1024 * 1024 * 20] \u003d { 0 }; return a;}\n\nWithout the patch, the code oopses in atomic_long_dec_and_test() as called by\nfput() after the kernel complains that it can\u0027t allocate that big a chunk of\nmemory.  With the patch, the kernel just complains about the allocation size\nand then the program segfaults during execve() as execve() can\u0027t complete the\nallocation of all the new ELF program segments.\n\nReported-by: Robin Getz \u003crgetz@blackfin.uclinux.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Robin Getz \u003crgetz@blackfin.uclinux.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0f37e2f77731b3473fa6bd5ee53255d9a9cdb40",
      "tree": "3c26d3ed1a453156e9c208ccb5567a8954dba064",
      "parents": [
        "6f5071020d5ec89b5d095aa488db604adb921aec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Sep 27 22:29:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:39:25 2009 -0700"
      },
      "message": "const: mark struct vm_struct_operations\n\n* mark struct vm_area_struct::vm_ops as const\n* mark vm_ops in AGP code\n\nBut leave TTM code alone, something is fishy there with global vm_ops\nbeing used.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06aab5a3084e1d825384fa353e6df4c7949c8683",
      "tree": "f4db2f267151e2173b86ee4b945bf07688d6ffd2",
      "parents": [
        "934831d060ccd5471ecbc562804a8d3ccd6e562c"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Sep 24 12:33:48 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 17:20:29 2009 -0700"
      },
      "message": "NOMMU: Ignore mmap() address param as it is a hint\n\nIgnore the address parameter given to NOMMU mmap() as it is a hint, rather\nthan giving an error if it\u0027s non-zero.  MAP_FIXED still gets an error.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "645d83c5db970a1c57225e155113b4aa2451e920",
      "tree": "c86d3fb382e0ebabd8b96bb7883a8258c1cfe9d7",
      "parents": [
        "c775197d59995228909957e9f0ec128de2590682"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Sep 24 15:13:10 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 17:18:38 2009 -0700"
      },
      "message": "NOMMU: Fix MAP_PRIVATE mmap() of objects where the data can be mapped directly\n\nFix MAP_PRIVATE mmap() of files and devices where the data in the backing store\nmight be mapped directly.  Use the BDI_CAP_MAP_DIRECT capability flag to govern\nwhether or not we should be trying to map a file directly.  This can be used to\ndetermine whether or not a region has been filled in at the point where we call\ndo_mmap_shared() or do_mmap_private().\n\nThe BDI_CAP_MAP_DIRECT capability flag is cleared by validate_mmap_request() if\nthere\u0027s any reason we can\u0027t use it.  It\u0027s also cleared in do_mmap_pgoff() if\nf_op-\u003eget_unmapped_area() fails.\n\nWithout this fix, attempting to run a program from a RomFS image on a\nnon-mappable MTD partition results in a BUG as the kernel attempts XIP, and\nthis can be caught in gdb:\n\nProgram received signal SIGABRT, Aborted.\n0xc005dce8 in add_nommu_region (region\u003d\u003cvalue optimized out\u003e) at mm/nommu.c:547\n(gdb) bt\n#0  0xc005dce8 in add_nommu_region (region\u003d\u003cvalue optimized out\u003e) at mm/nommu.c:547\n#1  0xc005f168 in do_mmap_pgoff (file\u003d0xc31a6620, addr\u003d\u003cvalue optimized out\u003e, len\u003d3808, prot\u003d3, flags\u003d6146, pgoff\u003d0) at mm/nommu.c:1373\n#2  0xc00a96b8 in elf_fdpic_map_file (params\u003d0xc33fbbec, file\u003d0xc31a6620, mm\u003d0xc31bef60, what\u003d0xc0213144 \"executable\") at mm.h:1145\n#3  0xc00aa8b4 in load_elf_fdpic_binary (bprm\u003d0xc316cb00, regs\u003d\u003cvalue optimized out\u003e) at fs/binfmt_elf_fdpic.c:343\n#4  0xc006b588 in search_binary_handler (bprm\u003d0x6, regs\u003d0xc33fbce0) at fs/exec.c:1234\n#5  0xc006c648 in do_execve (filename\u003d\u003cvalue optimized out\u003e, argv\u003d0xc3ad14cc, envp\u003d0xc3ad1460, regs\u003d0xc33fbce0) at fs/exec.c:1356\n#6  0xc0008cf0 in sys_execve (name\u003d\u003cvalue optimized out\u003e, argv\u003d0xc3ad14cc, envp\u003d0xc3ad1460) at arch/frv/kernel/process.c:263\n#7  0xc00075dc in __syscall_call () at arch/frv/kernel/entry.S:897\n\nNote that this fix does the following commit differently:\n\n\tcommit a190887b58c32d19c2eee007c5eb8faa970a69ba\n\tAuthor: David Howells \u003cdhowells@redhat.com\u003e\n\tDate:   Sat Sep 5 11:17:07 2009 -0700\n\tnommu: fix error handling in do_mmap_pgoff()\n\nReported-by: Graff Yang \u003cgraff.yang@gmail.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "25d9e2d15286281ec834b829a4aaf8969011f1cd",
      "tree": "e4329a481ca197afae30f04335e023c7d04f7d67",
      "parents": [
        "eca6f534e61919b28fb21aafbd1c2983deae75be"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Fri Aug 21 02:35:05 2009 +1000"
      },
      "committer": {
        "name": "al",
        "email": "al@dizzy.pdmi.ras.ru",
        "time": "Thu Sep 24 08:41:47 2009 -0400"
      },
      "message": "truncate: new helpers\n\nIntroduce new truncate helpers truncate_pagecache and inode_newsize_ok.\nvmtruncate is also consolidated from mm/memory.c and mm/nommu.c and\ninto mm/truncate.c.\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4266c97a3ef4604561a22212eb0eab8a3c338971",
      "tree": "35b7627d6f8d1e5b236d604d02aaee8215fbb5c0",
      "parents": [
        "4fd8da8d62416d0dae05603ab5990a498d9aeb12"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Wed Sep 23 17:05:53 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:22:10 2009 -0700"
      },
      "message": "nommu: fix two build breakages\n\nMy 58fa879e1e640a1856f736b418984ebeccee1c95 \"mm: FOLL flags for GUP flags\"\nbroke CONFIG_NOMMU build by forgetting to update nommu.c foll_flags type:\n\n  mm/nommu.c:171: error: conflicting types for `__get_user_pages\u0027\n  mm/internal.h:254: error: previous declaration of `__get_user_pages\u0027 was here\n  make[1]: *** [mm/nommu.o] Error 1\n\nMy 03f6462a3ae78f36eb1f0ee8b4d5ae2f7859c1d5 \"mm: move highest_memmap_pfn\"\nbroke CONFIG_NOMMU build by forgetting to add a nommu.c highest_memmap_pfn:\n\n  mm/built-in.o: In function `memmap_init_zone\u0027:\n  (.meminit.text+0x326): undefined reference to `highest_memmap_pfn\u0027\n  mm/built-in.o: In function `memmap_init_zone\u0027:\n  (.meminit.text+0x32d): undefined reference to `highest_memmap_pfn\u0027\n\nFix both breakages, and give myself 30 lashes (ouch!)\n\nReported-by: Michal Simek \u003cmichal.simek@petalogix.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eb8cdec4a984fde123a91250dcc9e0bddf5eafdc",
      "tree": "9f97b5949e6e63ae947363149b62ed224dad5ab9",
      "parents": [
        "02e87d1a934c70e3599eb7a29db783806d329e17"
      ],
      "author": {
        "name": "Bernd Schmidt",
        "email": "bernds_cb1@t-online.de",
        "time": "Mon Sep 21 17:03:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:43 2009 -0700"
      },
      "message": "nommu: add support for Memory Protection Units (MPU)\n\nSome architectures (like the Blackfin arch) implement some of the\n\"simpler\" features that one would expect out of a MMU such as memory\nprotection.\n\nIn our case, we actually get read/write/exec protection down to the page\nboundary so processes can\u0027t stomp on each other let alone the kernel.\n\nThere is a performance decrease (which depends greatly on the workload)\nhowever as the hardware/software interaction was not optimized at design\ntime.\n\nSigned-off-by: Bernd Schmidt \u003cbernds_cb1@t-online.de\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58fa879e1e640a1856f736b418984ebeccee1c95",
      "tree": "dc37bce8379e29c46e79f105cc71d137b14965cf",
      "parents": [
        "a13ea5b759645a0779edc6dbfec9abfd83220844"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:40 2009 -0700"
      },
      "message": "mm: FOLL flags for GUP flags\n\n__get_user_pages() has been taking its own GUP flags, then processing\nthem into FOLL flags for follow_page().  Though oddly named, the FOLL\nflags are more widely used, so pass them to __get_user_pages() now.\nSorry, VM flags, VM_FAULT flags and FAULT_FLAGs are still distinct.\n\n(The patch to __get_user_pages() looks peculiar, with both gup_flags\nand foll_flags: the gup_flags remain constant; but as before there\u0027s\nan exceptional case, out of scope of the patch, in which foll_flags\nper page have FOLL_WRITE masked off.)\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1c3aff1ceec2cc86810e2690e67873ff0c505862",
      "tree": "bf2f1badfd3f8859299f00c8a95c0a11e5cfa778",
      "parents": [
        "408e82b78bcc9f1b47c76e833c3df97f675947de"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:40 2009 -0700"
      },
      "message": "mm: remove unused GUP flags\n\nGUP_FLAGS_IGNORE_VMA_PERMISSIONS and GUP_FLAGS_IGNORE_SIGKILL were\nflags added solely to prevent __get_user_pages() from doing some of\nwhat it usually does, in the munlock case: we can now remove them.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72ff13b7036bc7923e0f2b5f4a724ca260d49aab",
      "tree": "5c2cd317f9001ce5a49341852ccb1f1bf291e089",
      "parents": [
        "cff397e6b3c5bd67e26946792e81ab064c9acc1f"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinder@kernel.org",
        "time": "Mon Sep 21 17:02:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:35 2009 -0700"
      },
      "message": "mm: includecheck fix for mm/nommu.c\n\nFix the following \u0027make includecheck\u0027 warning:\n\n  mm/nommu.c: internal.h is included more than once.\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a190887b58c32d19c2eee007c5eb8faa970a69ba",
      "tree": "deff588d04f3e42662484b0281e1beceb3cf9f4e",
      "parents": [
        "4e49627b9bc29a14b393c480e8c979e3bc922ef7"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sat Sep 05 11:17:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 11:30:42 2009 -0700"
      },
      "message": "nommu: fix error handling in do_mmap_pgoff()\n\nFix the error handling in do_mmap_pgoff().  If do_mmap_shared_file() or\ndo_mmap_private() fail, we jump to the error_put_region label at which\npoint we cann __put_nommu_region() on the region - but we haven\u0027t yet\nadded the region to the tree, and so __put_nommu_region() may BUG\nbecause the region tree is empty or it may corrupt the region tree.\n\nTo get around this, we can afford to add the region to the region tree\nbefore calling do_mmap_shared_file() or do_mmap_private() as we keep\nnommu_region_sem write-locked, so no-one can race with us by seeing a\ntransient region.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28d7a6ae92c099d81cbea08c20be0d2cf7ccd7ca",
      "tree": "7db56042d0c3e6749c749e1608b3e699485326cf",
      "parents": [
        "191529756633052680dd9d23ad63744ca5aa02a1"
      ],
      "author": {
        "name": "Graff Yang",
        "email": "graff.yang@gmail.com",
        "time": "Tue Aug 18 14:11:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 18 16:31:13 2009 -0700"
      },
      "message": "nommu: check fd read permission in validate_mmap_request()\n\nAccording to the POSIX (1003.1-2008), the file descriptor shall have been\nopened with read permission, regardless of the protection options specified to\nmmap().  The ltp test cases mmap06/07 need this.\n\nSigned-off-by: Graff Yang \u003cgraff.yang@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "788084aba2ab7348257597496befcbccabdc98a3",
      "tree": "2da42d746d67b16ef705229a1b5a3528ec19c725",
      "parents": [
        "8cf948e744e0218af604c32edecde10006dc8e9e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jul 31 12:54:11 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 17 15:09:11 2009 +1000"
      },
      "message": "Security/SELinux: seperate lsm specific mmap_min_addr\n\nCurrently SELinux enforcement of controls on the ability to map low memory\nis determined by the mmap_min_addr tunable.  This patch causes SELinux to\nignore the tunable and instead use a seperate Kconfig option specific to how\nmuch space the LSM should protect.\n\nThe tunable will now only control the need for CAP_SYS_RAWIO and SELinux\npermissions will always protect the amount of low memory designated by\nCONFIG_LSM_MMAP_MIN_ADDR.\n\nThis allows users who need to disable the mmap_min_addr controls (usual reason\nbeing they run WINE as a non-root user) to do so and still have SELinux\ncontrols preventing confined domains (like a web server) from being able to\nmap some area of low memory.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "5a475ce4692f668b2615ae4ea1365c7c2d93f1dd",
      "tree": "0349690bce5fe2396a3788bb1a4084ffd87ee308",
      "parents": [
        "d960eea974f5e500c0dcb95a934239cc1f481cfd",
        "1c6a307a54668eda556f499c94e75086aaf8f80f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 01 11:46:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 01 11:46:30 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:\n  sh: LCDC dcache flush for deferred io\n  sh: Fix compiler error and include the definition of IS_ERR_VALUE\n  sh: re-add LCDC fbdev support to the Migo-R defconfig\n  sh: fix se7724 ceu names\n  sh: ms7724se: Enable sh_eth in defconfig.\n  arch/sh/boards/mach-se/7206/io.c: Remove unnecessary semicolons\n  sh: ms7724se: Add sh_eth support\n  nommu: provide follow_pfn().\n  sh: Kill off unused DEBUG_BOOTMEM symbol.\n  perf_counter tools: add cpu_relax()/rmb() definitions for sh.\n  sh64: Hook up page fault events for software perf counters.\n  sh: Hook up page fault events for software perf counters.\n  sh: make set_perf_counter_pending() static inline.\n  clocksource: sh_tmu: Make undefined TCOR behaviour less undefined.\n"
    },
    {
      "commit": "dfc2f91ac29f5ef50e74bf15a1a6b6aa6b952e62",
      "tree": "0b3eb3ae6b7b21226cf8e1410aa6dd6d0e07a110",
      "parents": [
        "1fbcf37128cc19bd67d9a736fb634dc444e907d7"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jun 26 04:31:57 2009 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jun 26 04:31:57 2009 +0900"
      },
      "message": "nommu: provide follow_pfn().\n\nWith the introduction of follow_pfn() as an exported symbol, modules have\nbegun making use of it. Unfortunately this was not reflected on nommu at\nthe time, so the in-tree users have subsequently all blown up with link\nerrors there.\n\nThis provides a simple follow_pfn() that just returns addr \u003e\u003e PAGE_SHIFT,\nwhich will do the right thing on nommu. There is no need to do range\nchecking within the vma, as the find_vma() case will already take care of\nthis.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "9d73777e500929b71dcfed16eec05f6760e345a6",
      "tree": "7b2d0e7a619b4a5c994ca8789e680f6e7642849c",
      "parents": [
        "ab420e6d9c2511b862d753b70efb4e979faa0714"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jun 25 11:58:55 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 25 11:22:13 2009 -0700"
      },
      "message": "clarify get_user_pages() prototype\n\nCurrently the 4th parameter of get_user_pages() is called len, but its\nin pages, not bytes. Rename the thing to nr_pages to avoid future\nconfusion.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "35f2c2f6f6ae13ef23c4f68e6d3073753077ca43",
      "tree": "9196736b9a1a70ae8dfaa9504b0ce94552a09d73",
      "parents": [
        "c3fa109a5894077d1eaf8731ea741a15dd117b3c"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Tue Jun 09 17:48:56 2009 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Jun 10 09:24:09 2009 +1000"
      },
      "message": "nommu: Provide mmap_min_addr definition.\n\nWith the \"security: use mmap_min_addr indepedently of security models\"\nchange, mmap_min_addr is used in common areas, which susbsequently blows\nup the nommu build. This stubs in the definition in the nommu case as\nwell.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n\n--\n\n mm/nommu.c |    3 +++\n 1 file changed, 3 insertions(+)\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "8c9ed899b44c19e81859fbb0e9d659fe2f8630fc",
      "tree": "6cc4ebd5d050accad0d706e596f8ea1609d26bc9",
      "parents": [
        "ee7fee0b91ceb1c057c67fcc573b2d8dfe6d92c5"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu May 07 11:41:37 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 07 12:03:41 2009 -0700"
      },
      "message": "NOMMU: Don\u0027t check vm_region::vm_start is page aligned in add_nommu_region()\n\nDon\u0027t check vm_region::vm_start is page aligned in add_nommu_region() because\nthe region may reflect some non-page-aligned mapped file, such as could be\nobtained from RomFS XIP.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc4d5c292b68ef02514d2072dcbf82d090c34875",
      "tree": "6baf6c7a472e57e99e1b6555c277060f7065f482",
      "parents": [
        "3a6be87fd1e5cdbbc3b6a14d02a3efa9ecba1d3f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed May 06 16:03:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 06 16:36:10 2009 -0700"
      },
      "message": "nommu: make the initial mmap allocation excess behaviour Kconfig configurable\n\nNOMMU mmap() has an option controlled by a sysctl variable that determines\nwhether the allocations made by do_mmap_private() should have the excess\nspace trimmed off and returned to the allocator.  Make the initial setting\nof this variable a Kconfig configuration option.\n\nThe reason there can be excess space is that the allocator only allocates\nin power-of-2 size chunks, but mmap()\u0027s can be made in sizes that aren\u0027t a\npower of 2.\n\nThere are two alternatives:\n\n (1) Keep the excess as dead space.  The dead space then remains unused for the\n     lifetime of the mapping.  Mappings of shared objects such as libc, ld.so\n     or busybox\u0027s text segment may retain their dead space forever.\n\n (2) Return the excess to the allocator.  This means that the dead space is\n     limited to less than a page per mapping, but it means that for a transient\n     process, there\u0027s more chance of fragmentation as the excess space may be\n     reused fairly quickly.\n\nDuring the boot process, a lot of transient processes are created, and\nthis can cause a lot of fragmentation as the pagecache and various slabs\ngrow greatly during this time.\n\nBy turning off the trimming of excess space during boot and disabling\nbatching of frees, Coldfire can manage to boot.\n\nA better way of doing things might be to have /sbin/init turn this option\noff.  By that point libc, ld.so and init - which are all long-duration\nprocesses - have all been loaded and trimmed.\n\nReported-by: Lanttor Guo \u003clanttor.guo@freescale.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-by: Lanttor Guo \u003clanttor.guo@freescale.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00a62ce91e554198ef28234c91c36f850f5a3bc9",
      "tree": "367ef134219deef91903c3fa0eb108c13658f2c7",
      "parents": [
        "0763ed2355198cdef2f6a2098e9d52eb1fe4365d"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Apr 30 15:08:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 02 15:36:10 2009 -0700"
      },
      "message": "mm: fix Committed_AS underflow on large NR_CPUS environment\n\nThe Committed_AS field can underflow in certain situations:\n\n\u003e         # while true; do cat /proc/meminfo  | grep _AS; sleep 1; done | uniq -c\n\u003e               1 Committed_AS: 18446744073709323392 kB\n\u003e              11 Committed_AS: 18446744073709455488 kB\n\u003e               6 Committed_AS:    35136 kB\n\u003e               5 Committed_AS: 18446744073709454400 kB\n\u003e               7 Committed_AS:    35904 kB\n\u003e               3 Committed_AS: 18446744073709453248 kB\n\u003e               2 Committed_AS:    34752 kB\n\u003e               9 Committed_AS: 18446744073709453248 kB\n\u003e               8 Committed_AS:    34752 kB\n\u003e               3 Committed_AS: 18446744073709320960 kB\n\u003e               7 Committed_AS: 18446744073709454080 kB\n\u003e               3 Committed_AS: 18446744073709320960 kB\n\u003e               5 Committed_AS: 18446744073709454080 kB\n\u003e               6 Committed_AS: 18446744073709320960 kB\n\nBecause NR_CPUS can be greater than 1000 and meminfo_proc_show() does\nnot check for underflow.\n\nBut NR_CPUS proportional isn\u0027t good calculation.  In general,\npossibility of lock contention is proportional to the number of online\ncpus, not theorical maximum cpus (NR_CPUS).\n\nThe current kernel has generic percpu-counter stuff.  using it is right\nway.  it makes code simplify and percpu_counter_read_positive() don\u0027t\nmake underflow issue.\n\nReported-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[All kernel versions]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33e5d76979cf01e3834814fe0aea569d1d602c1a",
      "tree": "58a03e5da59db203245da10db144a4f6f61a83ba",
      "parents": [
        "5482415a5ecc0cd791a5d885cc3db8281401078f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Apr 02 16:56:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "nommu: fix a number of issues with the per-MM VMA patch\n\nFix a number of issues with the per-MM VMA patch:\n\n (1) Make mmap_pages_allocated an atomic_long_t, just in case this is used on\n     a NOMMU system with more than 2G pages.  Makes no difference on a 32-bit\n     system.\n\n (2) Report vma-\u003evm_pgoff * PAGE_SIZE as a 64-bit value, not a 32-bit value,\n     lest it overflow.\n\n (3) Move the allocation of the vm_area_struct slab back for fork.c.\n\n (4) Use KMEM_CACHE() for both vm_area_struct and vm_region slabs.\n\n (5) Use BUG_ON() rather than if () BUG().\n\n (6) Make the default validate_nommu_regions() a static inline rather than a\n     #define.\n\n (7) Make free_page_series()\u0027s objection to pages with a refcount !\u003d 1 more\n     informative.\n\n (8) Adjust the __put_nommu_region() banner comment to indicate that the\n     semaphore must be held for writing.\n\n (9) Limit the number of warnings about munmaps of non-mmapped regions.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05ae6fa31874eda2484da13c5dc4ddee8a47a0a4",
      "tree": "c8fb50ace8d0f7f56d37b6157cc217d565b30f2c",
      "parents": [
        "b9d57f94bb0ed56a5a2b58552a9ff4453013ff0b"
      ],
      "author": {
        "name": "Greg Ungerer",
        "email": "gerg@uclinux.org",
        "time": "Tue Jan 13 17:30:22 2009 +1000"
      },
      "committer": {
        "name": "Greg Ungerer",
        "email": "gerg@uclinux.org",
        "time": "Tue Jan 27 16:42:03 2009 +1000"
      },
      "message": "uclinux: add process name to allocation error message\n\nThis patch adds the name of the process to the bad allocation error\nmessage on non-MMU systems.\n\nChanged suggested by jsujjavanich@syntech-fuelmaster.com\n\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\n"
    },
    {
      "commit": "eb6434d9e79a72d35d68811efd68fe8bab8f5baf",
      "tree": "a6cdf0330403cfbea2df4a4f775e104da17dd1a4",
      "parents": [
        "f686359e0da5ae71459ee045646a5f508f9ff6d8"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Jan 21 17:45:47 2009 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Jan 21 17:45:47 2009 +0900"
      },
      "message": "nommu: Stub in vm_map_ram()/vm_unmap_ram()/vm_unmap_aliases().\n\nPresently we do not support these interfaces, so make them BUG() wrappers\nas per the rest of the vmap interface on nommu. Fixes up the modular xfs\nbuild.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "6a6160a7b5c27b3c38651baef92a14fa7072b3c1",
      "tree": "a4a7640bd12611c445dfc013f69ce307674d1b13",
      "parents": [
        "64fd1de3d821659ac0a3004fd5ee1de59e64af30"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:15 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:23 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 13\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "2ed7c03ec17779afb4fcfa3b8c61df61bd4879ba",
      "tree": "4e0fefd574bab5470a02edf439727f472a9663c6",
      "parents": [
        "4c696ba7982501d43dea11dbbaabd2aa8a19cc42"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:13:54 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:14 2009 +0100"
      },
      "message": "[CVE-2009-0029] Convert all system calls to return a long\n\nConvert all system calls to return a long. This should be a NOP since all\nconverted types should have the same size anyway.\nWith the exception of sys_exit_group which returned void. But that doesn\u0027t\nmatter since the system call doesn\u0027t return.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "ab2e83ead4eca9e045daac4cbf66eb1e7a244bb2",
      "tree": "0e42c62476d09a5b7389ba02eb093448af36c58b",
      "parents": [
        "0f3e442a403a344a5d0a49af9ecd7632b7e7343a"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jan 08 12:04:48 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:48 2009 +0000"
      },
      "message": "NOMMU: Teach kobjsize() about VMA regions.\n\nNow that we no longer use compound pages for all large allocations,\nkobjsize() actively breaks things like binfmt_flat by always handing\nback PAGE_SIZE for mmap\u0027ed regions. Fix this up by looking up the\nVMA region for non-compounds.\n\nIdeally binfmt_flat wants to get rid of kobjsize() completely, but\nthis is an incremental step.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\n"
    },
    {
      "commit": "dd8632a12e500a684478fea0951f380478d56fed",
      "tree": "1a12f441f9de14fd233faa92cf13a5fbb0319f41",
      "parents": [
        "8feae13110d60cc6287afabc2887366b0eb226c2"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "message": "NOMMU: Make mmap allocation page trimming behaviour configurable.\n\nNOMMU mmap allocates a piece of memory for an mmap that\u0027s rounded up in size to\nthe nearest power-of-2 number of pages.  Currently it then discards the excess\npages back to the page allocator, making that memory available for use by other\nthings.  This can, however, cause greater amount of fragmentation.\n\nTo counter this, a sysctl is added in order to fine-tune the trimming\nbehaviour.  The default behaviour remains to trim pages aggressively, while\nthis can either be disabled completely or set to a higher page-granular\nwatermark in order to have finer-grained control.\n\nvm region vm_top bits taken from an earlier patch by David Howells.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\n"
    },
    {
      "commit": "8feae13110d60cc6287afabc2887366b0eb226c2",
      "tree": "b3188986faab70e753e00ea8670a11ba8ec844c0",
      "parents": [
        "41836382ebb415d68d3ebc4525e78e871fe58baf"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "message": "NOMMU: Make VMAs per MM as for MMU-mode linux\n\nMake VMAs per mm_struct as for MMU-mode linux.  This solves two problems:\n\n (1) In SYSV SHM where nattch for a segment does not reflect the number of\n     shmat\u0027s (and forks) done.\n\n (2) In mmap() where the VMA\u0027s vm_mm is set to point to the parent mm by an\n     exec\u0027ing process when VM_EXECUTABLE is specified, regardless of the fact\n     that a VMA might be shared and already have its vm_mm assigned to another\n     process or a dead process.\n\nA new struct (vm_region) is introduced to track a mapped region and to remember\nthe circumstances under which it may be shared and the vm_list_struct structure\nis discarded as it\u0027s no longer required.\n\nThis patch makes the following additional changes:\n\n (1) Regions are now allocated with alloc_pages() rather than kmalloc() and\n     with no recourse to __GFP_COMP, so the pages are not composite.  Instead,\n     each page has a reference on it held by the region.  Anything else that is\n     interested in such a page will have to get a reference on it to retain it.\n     When the pages are released due to unmapping, each page is passed to\n     put_page() and will be freed when the page usage count reaches zero.\n\n (2) Excess pages are trimmed after an allocation as the allocation must be\n     made as a power-of-2 quantity of pages.\n\n (3) VMAs are added to the parent MM\u0027s R/B tree and mmap lists.  As an MM may\n     end up with overlapping VMAs within the tree, the VMA struct address is\n     appended to the sort key.\n\n (4) Non-anonymous VMAs are now added to the backing inode\u0027s prio list.\n\n (5) Holes may be punched in anonymous VMAs with munmap(), releasing parts of\n     the backing region.  The VMA and region structs will be split if\n     necessary.\n\n (6) sys_shmdt() only releases one attachment to a SYSV IPC shared memory\n     segment instead of all the attachments at that addresss.  Multiple\n     shmat()\u0027s return the same address under NOMMU-mode instead of different\n     virtual addresses as under MMU-mode.\n\n (7) Core dumping for ELF-FDPIC requires fewer exceptions for NOMMU-mode.\n\n (8) /proc/maps is now the global list of mapped regions, and may list bits\n     that aren\u0027t actually mapped anywhere.\n\n (9) /proc/meminfo gains a line (tagged \"MmapCopy\") that indicates the amount\n     of RAM currently allocated by mmap to hold mappable regions that can\u0027t be\n     mapped directly.  These are copies of the backing device or file if not\n     anonymous.\n\nThese changes make NOMMU mode more similar to MMU mode.  The downside is that\nNOMMU mode requires some extra memory to track things over NOMMU without this\npatch (VMAs are no longer shared, and there are now region structs).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "41836382ebb415d68d3ebc4525e78e871fe58baf",
      "tree": "05e0dab9662420bd157f8805083a729e433dd869",
      "parents": [
        "9c93af1ede9418bb3f1b9dd442faf91ba796a0ff"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "message": "NOMMU: Delete askedalloc and realalloc variables\n\nDelete the askedalloc and realalloc variables as nothing actually uses the\nvalue calculated.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "acfa4380efe77e290d3a96b11cd4c9f24f4fbb18",
      "tree": "d656232c7ef39c83681c2de4c8e28ba439242f66",
      "parents": [
        "9742df331deb3fce95b321f38d4ea0c4e75edb63"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 04 10:06:33 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 05 11:54:28 2009 -0500"
      },
      "message": "inode-\u003ei_op is never NULL\n\nWe used to have rather schizophrenic set of checks for NULL -\u003ei_op even\nthough it had been eliminated years ago.  You\u0027d need to go out of your\nway to set it to NULL explicitly _and_ a bunch of code would die on\nsuch inodes anyway.  After killing two remaining places that still\ndid that bogosity, all that crap can go away.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "731572d39fcd3498702eda4600db4c43d51e0b26",
      "tree": "f892907ae20539845f353d72d2a2bf202b67e007",
      "parents": [
        "6c89161b10f5771ee0b51ada0fce0e8835e72ade"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Wed Oct 29 14:01:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:47 2008 -0700"
      },
      "message": "nfsd: fix vm overcommit crash\n\nJunjiro R.  Okajima reported a problem where knfsd crashes if you are\nusing it to export shmemfs objects and run strict overcommit.  In this\nsituation the current-\u003emm based modifier to the overcommit goes through a\nNULL pointer.\n\nWe could simply check for NULL and skip the modifier but we\u0027ve caught\nother real bugs in the past from mm being NULL here - cases where we did\nneed a valid mm set up (eg the exec bug about a year ago).\n\nTo preserve the checks and get the logic we want shuffle the checking\naround and add a new helper to the vm_ security wrappers\n\nAlso fix a current-\u003emm reference in nommu that should use the passed mm\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix build]\nReported-by: Junjiro R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b291f000393f5a0b679012b39d79fbc85c018233",
      "tree": "28eb785d4d157d3396e4377294e6054635a4bd90",
      "parents": [
        "89e004ea55abe201b29e2d6e35124101f1288ef7"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Oct 18 20:26:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:30 2008 -0700"
      },
      "message": "mlock: mlocked pages are unevictable\n\nMake sure that mlocked pages also live on the unevictable LRU, so kswapd\nwill not scan them over and over again.\n\nThis is achieved through various strategies:\n\n1) add yet another page flag--PG_mlocked--to indicate that\n   the page is locked for efficient testing in vmscan and,\n   optionally, fault path.  This allows early culling of\n   unevictable pages, preventing them from getting to\n   page_referenced()/try_to_unmap().  Also allows separate\n   accounting of mlock\u0027d pages, as Nick\u0027s original patch\n   did.\n\n   Note:  Nick\u0027s original mlock patch used a PG_mlocked\n   flag.  I had removed this in favor of the PG_unevictable\n   flag + an mlock_count [new page struct member].  I\n   restored the PG_mlocked flag to eliminate the new\n   count field.\n\n2) add the mlock/unevictable infrastructure to mm/mlock.c,\n   with internal APIs in mm/internal.h.  This is a rework\n   of Nick\u0027s original patch to these files, taking into\n   account that mlocked pages are now kept on unevictable\n   LRU list.\n\n3) update vmscan.c:page_evictable() to check PageMlocked()\n   and, if vma passed in, the vm_flags.  Note that the vma\n   will only be passed in for new pages in the fault path;\n   and then only if the \"cull unevictable pages in fault\n   path\" patch is included.\n\n4) add try_to_unlock() to rmap.c to walk a page\u0027s rmap and\n   ClearPageMlocked() if no other vmas have it mlocked.\n   Reuses as much of try_to_unmap() as possible.  This\n   effectively replaces the use of one of the lru list links\n   as an mlock count.  If this mechanism let\u0027s pages in mlocked\n   vmas leak through w/o PG_mlocked set [I don\u0027t know that it\n   does], we should catch them later in try_to_unmap().  One\n   hopes this will be rare, as it will be relatively expensive.\n\nOriginal mm/internal.h, mm/rmap.c and mm/mlock.c changes:\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n\nsplitlru: introduce __get_user_pages():\n\n  New munlock processing need to GUP_FLAGS_IGNORE_VMA_PERMISSIONS.\n  because current get_user_pages() can\u0027t grab PROT_NONE pages theresore it\n  cause PROT_NONE pages can\u0027t munlock.\n\n[akpm@linux-foundation.org: fix this for pagemap-pass-mm-into-pagewalkers.patch]\n[akpm@linux-foundation.org: untangle patch interdependencies]\n[akpm@linux-foundation.org: fix things after out-of-order merging]\n[hugh@veritas.com: fix page-flags mess]\n[lee.schermerhorn@hp.com: fix munlock page table walk - now requires \u0027mm\u0027]\n[kosaki.motohiro@jp.fujitsu.com: build fix]\n[kosaki.motohiro@jp.fujitsu.com: fix truncate race and sevaral comments]\n[kosaki.motohiro@jp.fujitsu.com: splitlru: introduce __get_user_pages()]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1af446edfe3239b2b731f3458b3c285c397464cc",
      "tree": "b1ff67e6c7be9f0d08fed583154c12301a6d9c38",
      "parents": [
        "d8eb2fab18b856fcaebe2619e8eaaa152baebc66"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Aug 04 16:01:47 2008 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Aug 04 16:01:47 2008 +0900"
      },
      "message": "nommu: Provide vmalloc_exec().\n\nNow that SH has switched to vmalloc_exec() for PAGE_KERNEL_EXEC usage,\nit\u0027s apparent that nommu has no vmalloc_exec() definition of its own.\nStub in the one from mm/vmalloc.c.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "fa8e26ccd485216fc45c8c2dd1ec3b7ef1a0a2f8",
      "tree": "b6c3059593d7d185aaf7f5b69c363a48b18c5bb1",
      "parents": [
        "0d094efeb1e98010c6b99923f1eb7e17bf1e3a74"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: tracehook_expect_breakpoints\n\nThis adds tracehook_expect_breakpoints() as a formal hook for the nommu\ncode to use for its, \"Is text-poking likely?\" check at mmap time.  This\nnames the actual semantics the code means to test, and documents it.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a1603be58f11edb1b30cb1e40cfbdd4439289d0",
      "tree": "822e2711385da42bd3b53472b74ee99963913915",
      "parents": [
        "f969c5672b16b857e5231ad3c78f08d8ef3305aa"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jun 12 16:29:55 2008 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 12 07:56:17 2008 -0700"
      },
      "message": "nommu: Correct kobjsize() page validity checks.\n\nThis implements a few changes on top of the recent kobjsize() refactoring\nintroduced by commit 6cfd53fc03670c7a544a56d441eb1a6cc800d72b.\n\nAs Christoph points out:\n\n\tvirt_to_head_page cannot return NULL. virt_to_page also\n\tdoes not return NULL. pfn_valid() needs to be used to\n\tfigure out if a page is valid.  Otherwise the page struct\n\treference that was returned may have PageReserved() set\n\tto indicate that it is not a valid page.\n\nAs discussed further in the thread, virt_addr_valid() is the preferable\nway to validate the object pointer in this case. In addition to fixing\nup the reserved page case, it also has the benefit of encapsulating the\nhack introduced by commit 4016a1390d07f15b267eecb20e76a48fd5c524ef on\nthe impacted platforms, allowing us to get rid of the extra checking in\nkobjsize() for the platforms that don\u0027t perform this type of bizarre\nmemory_end abuse (every nommu platform that isn\u0027t blackfin). If blackfin\ndecides to get in line with every other platform and use PageReserved\nfor the DMA pages in question, kobjsize() will also continue to work\nfine.\n\nIt also turns out that compound_order() will give us back 0-order for\nnon-head pages, so we can get rid of the PageCompound check and just\nuse compound_order() directly. Clean that up while we\u0027re at it.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nReviewed-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6cfd53fc03670c7a544a56d441eb1a6cc800d72b",
      "tree": "806badd9dc55ff81822694037ff10425b99eacaa",
      "parents": [
        "6f09bdfc717a0e1a89a029001484d5a195faab64"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jun 05 22:46:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 06 11:29:09 2008 -0700"
      },
      "message": "nommu: fix kobjsize() for SLOB and SLUB\n\nkobjsize() has been abusing page-\u003eindex as a method for sorting out\ncompound order, which blows up both for page cache pages, and SLOB\u0027s\nreuse of the index in struct slob_page.\n\nPresently we are not able to accurately size arbitrary pointers that\ndon\u0027t come from kmalloc(), so the best we can do is sort out the\ncompound order from the head page if it\u0027s a compound page, or default\nto 0-order if it\u0027s impossible to ksize() the object.\n\nObviously this leaves quite a bit to be desired in terms of object\nsizing accuracy, but the behaviour is unchanged over the existing\nimplementation, while fixing the page-\u003eindex oopses originally reported\nhere:\n\n\thttp://marc.info/?l\u003dlinux-mm\u0026m\u003d121127773325245\u0026w\u003d2\n\nAccuracy could also be improved by having SLUB and SLOB both set PG_slab\non ksizeable pages, rather than just handling the __GFP_COMP cases\nirregardless of the PG_slab setting, as made possibly with Pekka\u0027s\npatches:\n\n\thttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d121139439900534\u0026w\u003d2\n\thttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d121139440000537\u0026w\u003d2\n\thttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d121139440000540\u0026w\u003d2\n\nThis is primarily a bugfix for nommu systems for 2.6.26, with the aim\nbeing to gradually kill off kobjsize() and its particular brand of\nobject abuse entirely.\n\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80119ef5c8153e0a6cc5edf00c083dc98a9bd348",
      "tree": "a2af11a3991b1bebe9d764ab6d4d28891e86eda2",
      "parents": [
        "6c7c6afbb8c0e60d32a563cae7c6889211e9d9d8"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Fri May 23 13:04:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 24 09:56:09 2008 -0700"
      },
      "message": "mm: fix atomic_t overflow in vm\n\nThe atomic_t type is 32bit but a 64bit system can have more than 2^32\npages of virtual address space available.  Without this we overflow on\nludicrously large mappings\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "925d1c401fa6cfd0df5d2e37da8981494ccdec07",
      "tree": "4f3b7a09311cd99783b822350628125e44f9902d",
      "parents": [
        "e93b4ea20adb20f1f1f07f10ba5d7dd739d2843e"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Tue Apr 29 01:01:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:17 2008 -0700"
      },
      "message": "procfs task exe symlink\n\nThe kernel implements readlink of /proc/pid/exe by getting the file from\nthe first executable VMA.  Then the path to the file is reconstructed and\nreported as the result.\n\nBecause of the VMA walk the code is slightly different on nommu systems.\nThis patch avoids separate /proc/pid/exe code on nommu systems.  Instead of\nwalking the VMAs to find the first executable file-backed VMA we store a\nreference to the exec\u0027d file in the mm_struct.\n\nThat reference would prevent the filesystem holding the executable file\nfrom being unmounted even after unmapping the VMAs.  So we track the number\nof VM_EXECUTABLE VMAs and drop the new reference when the last one is\nunmapped.  This avoids pinning the mounted filesystem.\n\n[akpm@linux-foundation.org: improve comments]\n[yamamoto@valinux.co.jp: fix dup_mmap]\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc:\"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4016a1390d07f15b267eecb20e76a48fd5c524ef",
      "tree": "ae9ce9bd7d2fd784a396893c4d4b2a79b2d7342d",
      "parents": [
        "468fd62ed9090ccbe872489df5d0d099510df4b5"
      ],
      "author": {
        "name": "Michael Hennerich",
        "email": "Michael.Hennerich@analog.com",
        "time": "Mon Apr 28 02:13:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:26 2008 -0700"
      },
      "message": "mm/nommu.c: return 0 from kobjsize with invalid objects\n\nDon\u0027t perform kobjsize operations on objects the kernel doesn\u0027t manage.\n\nOn Blackfin, drivers can get dma coherent memory by calling a function\ndma_alloc_coherent(). We do this in nommu by configuring a chunk of uncached\nmemory at the top of memory.\n\nSince we don\u0027t want the kernel to use the uncached memory, we lie to the\nkernel, and tell it that it\u0027s max memory is between 0, and the start of the\nuncached dma coherent section.\n\nthis all works well, until this memory gets exposed into userspace (with a\nframe buffer), when you look at the process\u0027s maps, it shows the framebuf:\n\nroot:/proc\u003e cat maps\n[snip]\n03f0ef00-03f34700 rw-p 00000000 1f:00 192        /dev/fb0\nroot:/proc\u003e\n\nThis is outside the \"normal\" range for the kernel. When the kernel tries to\nfind the size of this object (when you run ps), it dies in nommu.c in\nkobjsize.\n\nBUG_ON(page-\u003eindex \u003e\u003d MAX_ORDER);\n\nsince the page we are referring to is outside what the kernel thinks is it\u0027s\nmax valid memory.\n\nroot:~\u003e while [ 1 ]; ps \u003e /dev/null; done\nkernel BUG at mm/nommu.c:119!\nKernel panic - not syncing: BUG!\n\nWe fixed this by adding a check to reject out of range object pointers as it\nalready does that for NULL pointers.\n\nSigned-off-by: Michael Hennerich \u003cMichael.Hennerich@analog.com\u003e\nSigned-off-by: Robin Getz \u003crgetz@blackfin.uclinux.org\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f905bc447c303fefcb180c7e8b641746ffa6cf87",
      "tree": "390d3f3490eb6b22a40598775538dd5bbd9653c1",
      "parents": [
        "f156ac8c7aeddb2d85294b7a3b849178625e15e2"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Feb 04 22:29:59 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:21 2008 -0800"
      },
      "message": "nommu: add new vmalloc_user() and remap_vmalloc_range() interfaces.\n\nThis builds on top of the earlier vmalloc_32_user() work introduced by\nb50731732f926d6c49fd0724616a7344c31cd5cf, as we now have places in the nommu\nallmodconfig that hit up against these missing APIs.\n\nAs vmalloc_32_user() is already implemented, this is moved over to\nvmalloc_user() and simply made a wrapper.  As all current nommu platforms are\n32-bit addressable, there\u0027s no special casing we have to do for ZONE_DMA and\nthings of that nature as per GFP_VMALLOC32.\n\nremap_vmalloc_range() needs to check VM_USERMAP in order to figure out whether\nwe permit the remap or not, which means that we also have to rework the\nvmalloc_user() code to grovel for the VMA and set the flag.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: David McCullough \u003cdavid_mccullough@securecomputing.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3bdda02aa547a0753b4fdbc105e86ef9046b30b",
      "tree": "969557274d94bd0a8e3c638b796c0a13f3e3afd2",
      "parents": [
        "48667e7a43c1a1e0ba743f93ae946f8cb34ff2f9"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "vmalloc: add const to void* parameters\n\nMake vmalloc functions work the same way as kfree() and friends that\ntake a const void * argument.\n\n[akpm@linux-foundation.org: fix consts, coding-style]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7cd94146cd504016315608e297219f9fb7b1413b",
      "tree": "1d118d6af0a6d3efb9be66f7305827aee2ceffea",
      "parents": [
        "8869477a49c3e99def1fcdadd6bbc407fea14b45"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Mon Nov 26 18:47:40 2007 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 06 00:25:10 2007 +1100"
      },
      "message": "Security: round mmap hint address above mmap_min_addr\n\nIf mmap_min_addr is set and a process attempts to mmap (not fixed) with a\nnon-null hint address less than mmap_min_addr the mapping will fail the\nsecurity checks.  Since this is just a hint address this patch will round\nsuch a hint address above mmap_min_addr.\n\ngcj was found to try to be very frugal with vm usage and give hint addresses\nin the 8k-32k range.  Without this patch all such programs failed and with\nthe patch they happily get a higher address.\n\nThis patch is wrappad in CONFIG_SECURITY since mmap_min_addr doesn\u0027t exist\nwithout it and there would be no security check possible no matter what.  So\nwe should not bother compiling in this rounding if it is just a waste of\ntime.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "f2b8544f5f50073fcc705e16b45a6821d50eb080",
      "tree": "53c6d6fc035ed4d907276ef2ab2e8aab853e9919",
      "parents": [
        "cbf67812b2f1431c5e432ddecd202984c6882f2a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Oct 29 13:15:39 2007 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 29 07:53:26 2007 -0700"
      },
      "message": "NOMMU: mm/nommu.c needs linux/module.h\n\nmm/nommu.c needs to #include linux/module.h for it to understand EXPORT_*()\nmacros.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8518609deeacebafd71855f87cc411adb0c3be4e",
      "tree": "899ae1c7eaa49aa4641351868d77fc6c60006ed7",
      "parents": [
        "3a4fa0a25da81600ea0bcd75692ae8ca6050d165"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Fri Oct 19 23:11:38 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Oct 19 23:11:38 2007 +0200"
      },
      "message": "Explain clearly why kmalloc() can\u0027t use __GFP_HIGHMEM.\n\nFix the wishy-washy comment to clearly explain why kmalloc() can\u0027t\nuse the __GFP_HIGHMEM zone modifier.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "cbfee34520666862f8ff539e580c48958fbb7706",
      "tree": "ded5cafce333e908a0fbeda1f7c55eaf7c1fbaaa",
      "parents": [
        "b53767719b6cd8789392ea3e7e2eb7b8906898f0"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Oct 16 23:31:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:07 2007 -0700"
      },
      "message": "security/ cleanups\n\nThis patch contains the following cleanups that are now possible:\n- remove the unused security_operations-\u003einode_xattr_getsuffix\n- remove the no longer used security_operations-\u003eunregister_security\n- remove some no longer required exit code\n- remove a bunch of no longer used exports\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34b4e4aa3c470ce8fa2bd78abb1741b4b58baad7",
      "tree": "91d620288f1aaf63c12dc84ca1015465818601f2",
      "parents": [
        "afe1ab4d577892822de2c8e803fbfaed6ec44ba3"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Wed Aug 22 14:01:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Aug 22 19:52:45 2007 -0700"
      },
      "message": "fix NULL pointer dereference in __vm_enough_memory()\n\nThe new exec code inserts an accounted vma into an mm struct which is not\ncurrent-\u003emm.  The existing memory check code has a hard coded assumption\nthat this does not happen as does the security code.\n\nAs the correct mm is known we pass the mm to the security method and the\nhelper function.  A new security test is added for the case where we need\nto pass the mm and the existing one is modified to pass current-\u003emm to\navoid the need to change large amounts of code.\n\n(Thanks to Tobias for fixing rejects and testing)\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: WU Fengguang \u003cwfg@mail.ustc.edu.cn\u003e\nCc: James Morris \u003cjmorris@redhat.com\u003e\nCc: Tobias Diedrich \u003cranma+kernel@tdiedrich.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b50731732f926d6c49fd0724616a7344c31cd5cf",
      "tree": "2bc72fc6bf200b3696666ff1ef21f7e60a379d35",
      "parents": [
        "df336d1c7b6fd510fa6d3a028f999e7586c7026e"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Sat Jul 21 04:37:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jul 21 17:49:14 2007 -0700"
      },
      "message": "nommu: vmalloc_32_user()/vm_insert_page() and symbol exports.\n\nTrying to survive an allmodconfig on a nommu platform results in many\nscreen lengths of module unhappiness.  Many of the mmap related things that\nbinfmt_flat hooks in to are never exported despite being global, and there\nare also missing definitions for vmalloc_32_user() and vm_insert_page().\n\nI\u0027ve implemented vmalloc_32_user() trying to stick as close to the\nmm/vmalloc.c implementation as possible, though we don\u0027t have any need for\nVM_USERMAP, so groveling for the VMA can be skipped.  vm_insert_page() has\nbeen stubbed for now in order to keep the build happy.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0217ac04ca6591841e5665f518e38064f4e65bd",
      "tree": "d3309094bb734d34773f97d642593e298a5cfcfc",
      "parents": [
        "ed2f2f9b3ff8debdf512f7687b232c3c1d7d60d7"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jul 19 01:47:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "mm: fault feedback #1\n\nChange -\u003efault prototype.  We now return an int, which contains\nVM_FAULT_xxx code in the low byte, and FAULT_RET_xxx code in the next byte.\n FAULT_RET_ code tells the VM whether a page was found, whether it has been\nlocked, and potentially other things.  This is not quite the way he wanted\nit yet, but that\u0027s changed in the next patch (which requires changes to\narch code).\n\nThis means we no longer set VM_CAN_INVALIDATE in the vma in order to say\nthat a page is locked which requires filemap_nopage to go away (because we\ncan no longer remain backward compatible without that flag), but we were\ngoing to do that anyway.\n\nstruct fault_data is renamed to struct vm_fault as Linus asked. address\nis now a void __user * that we should firmly encourage drivers not to use\nwithout really good reason.\n\nThe page is now returned via a page pointer in the vm_fault struct.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54cb8821de07f2ffcd28c380ce9b93d5784b40d7",
      "tree": "1de676534963d96af42863b20191bc9f80060dea",
      "parents": [
        "d00806b183152af6d24f46f0c33f14162ca1262a"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jul 19 01:46:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "mm: merge populate and nopage into fault (fixes nonlinear)\n\nNonlinear mappings are (AFAIKS) simply a virtual memory concept that encodes\nthe virtual address -\u003e file offset differently from linear mappings.\n\n-\u003epopulate is a layering violation because the filesystem/pagecache code\nshould need to know anything about the virtual memory mapping.  The hitch here\nis that the -\u003enopage handler didn\u0027t pass down enough information (ie.  pgoff).\n But it is more logical to pass pgoff rather than have the -\u003enopage function\ncalculate it itself anyway (because that\u0027s a similar layering violation).\n\nHaving the populate handler install the pte itself is likewise a nasty thing\nto be doing.\n\nThis patch introduces a new fault handler that replaces -\u003enopage and\n-\u003epopulate and (later) -\u003enopfn.  Most of the old mechanism is still in place\nso there is a lot of duplication and nice cleanups that can be removed if\neveryone switches over.\n\nThe rationale for doing this in the first place is that nonlinear mappings are\nsubject to the pagefault vs invalidate/truncate race too, and it seemed stupid\nto duplicate the synchronisation logic rather than just consolidate the two.\n\nAfter this patch, MAP_NONBLOCK no longer sets up ptes for pages present in\npagecache.  Seems like a fringe functionality anyway.\n\nNOPAGE_REFAULT is removed.  This should be implemented with -\u003efault, and no\nusers have hit mainline yet.\n\n[akpm@linux-foundation.org: cleanup]\n[randy.dunlap@oracle.com: doc. fixes for readahead]\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57c8f63e8e7a4a95d7fcc49e3953341fb4039899",
      "tree": "cf0bd22654e4aff40c5d11775e949aba558922df",
      "parents": [
        "54a3bdd76e82d7f64e5504409c55b51e48c3a10a"
      ],
      "author": {
        "name": "Greg Ungerer",
        "email": "gerg@snapgear.com",
        "time": "Sun Jul 15 23:38:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:37 2007 -0700"
      },
      "message": "nommu: stub expand_stack() for nommu case\n\nBe consistent with VM mmap, implement expand_stack().  We can\u0027t actually do\nanything other than return an error in the no MMU case though.\n\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed0321895182ffb6ecf210e066d87911b270d587",
      "tree": "832bb54666f73b06e55322df40f915c5e9ef64d7",
      "parents": [
        "13bddc2e9d591e31bf20020dc19ea6ca85de420e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 28 15:55:21 2007 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Jul 11 22:52:29 2007 -0400"
      },
      "message": "security: Protection for exploiting null dereference using mmap\n\nAdd a new security check on mmap operations to see if the user is attempting\nto mmap to low area of the address space.  The amount of space protected is\nindicated by the new proc tunable /proc/sys/vm/mmap_min_addr and defaults to\n0, preserving existing behavior.\n\nThis patch uses a new SELinux security class \"memprotect.\"  Policy already\ncontains a number of allow rules like a_t self:process * (unconfined_t being\none of them) which mean that putting this check in the process class (its\nbest current fit) would make it useless as all user processes, which we also\nwant to protect against, would be allowed. By taking the memprotect name of\nthe new class it will also make it possible for us to move some of the other\nmemory protect permissions out of \u0027process\u0027 and into the new class next time\nwe bump the policy version number (which I also think is a good future idea)\n\nAcked-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nAcked-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "1eeb66a1bb973534dc3d064920a5ca683823372e",
      "tree": "19c22d611e6adefb352dbc107b859e4d13ba38c1",
      "parents": [
        "e3869792990f708c97be5877499cada70d469bd3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 08 00:27:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:04 2007 -0700"
      },
      "message": "move die notifier handling to common code\n\nThis patch moves the die notifier handling to common code.  Previous\nvarious architectures had exactly the same code for it.  Note that the new\ncode is compiled unconditionally, this should be understood as an appel to\nthe other architecture maintainer to implement support for it aswell (aka\nsprinkling a notify_die or two in the proper place)\n\narm had a notifiy_die that did something totally different, I renamed it to\narm_notify_die as part of the patch and made it static to the file it\u0027s\ndeclared and used at.  avr32 used to pass slightly less information through\nthis interface and I brought it into line with the other architectures.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix vmalloc_sync_all bustage]\n[bryan.wu@analog.com: fix vmalloc_sync_all in nommu]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Bryan Wu \u003cbryan.wu@analog.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a04de6dbe1772d98fddf5099738d6f508e86e21",
      "tree": "1f11a5f326657b05320faceedf3bd1f7531238e6",
      "parents": [
        "c3724b129b5a1a1789a2dc5348685a236ae02479"
      ],
      "author": {
        "name": "Wu, Bryan",
        "email": "bryan.wu@analog.com",
        "time": "Wed Apr 11 23:28:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Apr 12 15:31:42 2007 -0700"
      },
      "message": "[PATCH] nommu: fix bug ip_conntrack does not work on nommu\n\nnum_physpages is not exported out in mm/nommu.c, so the ip_conntrack module\nlink will fail.\n\nSigned-off-by: Bryan Wu \u003cbryan.wu@analog.com\u003e\nAcked-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "165b239270be610a1e3999cb0d2e4e2c1f2a8fd4",
      "tree": "3ae32cc616047b3960d1fe33b0583faa3094b82c",
      "parents": [
        "d56e03cd275486eb8141116a7af2df7457cb0115"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Mar 22 00:11:24 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Mar 22 19:39:06 2007 -0700"
      },
      "message": "[PATCH] NOMMU: make SYSV SHM nattch work correctly\n\nMake the SYSV SHM nattch counter work correctly by forcing multiple VMAs to\nbe produced to represent MAP_SHARED segments, even if they overlap exactly.\n\nUsing this test program:\n\n\thttp://people.redhat.com/~dhowells/doshm.c\n\nRun as:\n\n\tdoshm sysv\n\nI can see nattch going from one before the patch:\n\n\t# /doshm sysv\n\tCommand: sysv\n\tshmid: 65536\n\tmemory: 0xc3700000\n\tc0b00000-c0b04000 rw-p 00000000 00:00 0\n\tc0bb0000-c0bba788 r-xs 00000000 00:0b 14582157  /lib/ld-uClibc-0.9.28.so\n\tc3180000-c31dede4 r-xs 00000000 00:0b 14582179  /lib/libuClibc-0.9.28.so\n\tc3520000-c352278c rw-p 00000000 00:0b 13763417  /doshm\n\tc3584000-c35865e8 r-xs 00000000 00:0b 13763417  /doshm\n\tc3588000-c358aa00 rw-p 00008000 00:0b 14582157  /lib/ld-uClibc-0.9.28.so\n\tc3590000-c359b6c0 rw-p 00000000 00:00 0\n\tc3620000-c3640000 rwxp 00000000 00:00 0\n\tc3700000-c37fa000 rw-S 00000000 00:06 1411      /SYSV00000000 (deleted)\n\tc3700000-c37fa000 rw-S 00000000 00:06 1411      /SYSV00000000 (deleted)\n\tnattch 1\n\nTo two after the patch:\n\n\t# /doshm sysv\n\tCommand: sysv\n\tshmid: 0\n\tmemory: 0xc3700000\n\tc0bb0000-c0bba788 r-xs 00000000 00:0b 14582157  /lib/ld-uClibc-0.9.28.so\n\tc3180000-c31dede4 r-xs 00000000 00:0b 14582179  /lib/libuClibc-0.9.28.so\n\tc3320000-c3340000 rwxp 00000000 00:00 0\n\tc3530000-c35325e8 r-xs 00000000 00:0b 13763417  /doshm\n\tc3534000-c353678c rw-p 00000000 00:0b 13763417  /doshm\n\tc3538000-c353aa00 rw-p 00008000 00:0b 14582157  /lib/ld-uClibc-0.9.28.so\n\tc3590000-c359b6c0 rw-p 00000000 00:00 0\n\tc35a4000-c35a8000 rw-p 00000000 00:00 0\n\tc3700000-c37fa000 rw-S 00000000 00:06 1369      /SYSV00000000 (deleted)\n\tc3700000-c37fa000 rw-S 00000000 00:06 1369      /SYSV00000000 (deleted)\n\tnattch 2\n\nThat\u0027s +1 to nattch for each shmat() made.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d56e03cd275486eb8141116a7af2df7457cb0115",
      "tree": "adc85d1c9b342a9dd68451780cd555c8fc483dbc",
      "parents": [
        "8da38d7bac802ed2a09a79aaae9961c806a1847c"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Mar 22 00:11:23 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Mar 22 19:39:05 2007 -0700"
      },
      "message": "[PATCH] NOMMU: supply get_unmapped_area() to fix NOMMU SYSV SHM\n\nSupply a get_unmapped_area() to fix NOMMU SYSV SHM support.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9536ae7205d255bc94616b72910fc6e16c861fe",
      "tree": "4c91e2fbe096958ab8f7476306c4a61c30cbe502",
      "parents": [
        "1b04fe9a8ef10774174897b15d753b9de85fe9e9"
      ],
      "author": {
        "name": "Josef Sipek",
        "email": "jsipek@fsl.cs.sunysb.edu",
        "time": "Fri Dec 08 02:37:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:47 2006 -0800"
      },
      "message": "[PATCH] struct path: convert mm\n\nSigned-off-by: Josef Sipek \u003cjsipek@fsl.cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4668edc334ee90cf50c382c3e423cfc510b5a126",
      "tree": "ee25ca93e72031f7f333b6c251a57a55ef089c90",
      "parents": [
        "304e61e6fbadec586dfe002b535f169a04248e49"
      ],
      "author": {
        "name": "Burman Yan",
        "email": "yan_952@hotmail.com",
        "time": "Wed Dec 06 20:38:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:41 2006 -0800"
      },
      "message": "[PATCH] kernel core: replace kmalloc+memset with kzalloc\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f81cff0d4067e41fd7383d9c013cc82da7c169d2",
      "tree": "92c5c8a647e31be6b3e09dcce42ec261d43ad2f5",
      "parents": [
        "3363c9b0ed8f6b5a241d63018cad242ae458cdf9"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Wed Dec 06 12:02:59 2006 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 07:41:26 2006 -0800"
      },
      "message": "[PATCH] uclinux: fix mmap() of directory for nommu case\n\nI was playing with blackfin when i hit a neat bug ... doing an open() on a\ndirectory and then passing that fd to mmap() would cause the kernel to hang\n\nafter poking into the code a bit more, i found that\nmm/nommu.c:validate_mmap_request() checks the length and if it is 0, just\nreturns the address ... this is in stark contrast to mmu\u0027s\nmm/mmap.c:do_mmap_pgoff() where it returns -EINVAL for 0 length requests ...\ni then noticed that some other parts of the logic is out of date between the\ntwo funcs, so perhaps that\u0027s the easy fix ?\n\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c1c8897f830c66649b6866a0cbe21c263466295e",
      "tree": "6f17adbbf83097500aa6ef0465e24da564509645",
      "parents": [
        "f3e299fe3d53a0d78fea4e46ec3e0cadf375246c"
      ],
      "author": {
        "name": "Michael Opdenacker",
        "email": "michael@free-electrons.com",
        "time": "Tue Oct 03 23:21:02 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Oct 03 23:21:02 2006 +0200"
      },
      "message": "Spelling fix: \"control\" instead of \"cotrol\"\n\nThis patch against fixes a spelling mistake (\"control\" instead of \"cotrol\").\n\nSigned-off-by: Michael Opdenacker \u003cmichael@free-electrons.com\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "3fcd03e07008ec0f667dfb7626171165699ea5c2",
      "tree": "311370abb953013b7ffa458b63b376706560061e",
      "parents": [
        "ab8e92efcf3f7972f30033cad75f180aef4f3abc"
      ],
      "author": {
        "name": "Gavin Lambert",
        "email": "gavinl@compacsort.com",
        "time": "Sat Sep 30 23:27:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:17 2006 -0700"
      },
      "message": "[PATCH] NOMMU: don\u0027t try and give NULL to fput()\n\nDon\u0027t try and give NULL to fput() in the error handling in do_mmap_pgoff()\nas it\u0027ll cause an oops.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "930e652a21a08986b03d1f370f933057dc0db2dc",
      "tree": "c422f35bc2e7c17f58cb14544919affa52d8bac6",
      "parents": [
        "0112c4c6461fed12ed9bcb249f967bc17a23f6c4"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 27 01:50:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:15 2006 -0700"
      },
      "message": "[PATCH] NOMMU: Make futexes work under NOMMU conditions\n\nMake futexes work under NOMMU conditions.\n\nThis can be tested by running this in one shell:\n\n\t#define SYSERROR(X, Y) \\\n\t\tdo { if ((long)(X) \u003d\u003d -1L) { perror(Y); exit(1); }} while(0)\n\n\tint main()\n\t{\n\t\tint shmid, tmp, *f, n;\n\n\t\tshmid \u003d shmget(23, 4, IPC_CREAT|0666);\n\t\tSYSERROR(shmid, \"shmget\");\n\n\t\tf \u003d shmat(shmid, NULL, 0);\n\t\tSYSERROR(f, \"shmat\");\n\n\t\tn \u003d *f;\n\t\tprintf(\"WAIT: %p{%x}\\n\", f, n);\n\t\ttmp \u003d futex(f, FUTEX_WAIT, n, NULL, NULL, 0);\n\t\tSYSERROR(tmp, \"futex\");\n\t\tprintf(\"WAITED: %d\\n\", tmp);\n\n\t\ttmp \u003d shmdt(f);\n\t\tSYSERROR(tmp, \"shmdt\");\n\n\t\texit(0);\n\t}\n\nAnd then this in the other shell:\n\n\t#define SYSERROR(X, Y) \\\n\t\tdo { if ((long)(X) \u003d\u003d -1L) { perror(Y); exit(1); }} while(0)\n\n\tint main()\n\t{\n\t\tint shmid, tmp, *f;\n\n\t\tshmid \u003d shmget(23, 4, IPC_CREAT|0666);\n\t\tSYSERROR(shmid, \"shmget\");\n\n\t\tf \u003d shmat(shmid, NULL, 0);\n\t\tSYSERROR(f, \"shmat\");\n\n\t\t(*f)++;\n\t\tprintf(\"WAKE: %p{%x}\\n\", f, *f);\n\t\ttmp \u003d futex(f, FUTEX_WAKE, 1, NULL, NULL, 0);\n\t\tSYSERROR(tmp, \"futex\");\n\t\tprintf(\"WOKE: %d\\n\", tmp);\n\n\t\ttmp \u003d shmdt(f);\n\t\tSYSERROR(tmp, \"shmdt\");\n\n\t\texit(0);\n\t}\n\nThe first program will set up a SYSV IPC SHM segment and wait on a futex in it\nfor the number at the start to change.  The program will increment that number\nand wake the first program up.  This leads to output of the form:\n\n\tSHELL 1\t\t\tSHELL 2\n\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\t# /dowait\n\tWAIT: 0xc32ac000{0}\n\t\t\t\t# /dowake\n\t\t\t\tWAKE: 0xc32ac000{1}\n\tWAITED: 0\t\tWOKE: 1\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6fa5f80bc34da1a49b42117602b44441402cac2f",
      "tree": "7cdc7bf5c0df29b218c9c40d6cddd5124587b7a5",
      "parents": [
        "3034097a5017dd9281b1f795e80af9859627850e"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 27 01:50:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:14 2006 -0700"
      },
      "message": "[PATCH] NOMMU: Make mremap() partially work for NOMMU kernels\n\nMake mremap() partially work for NOMMU kernels.  It may resize a VMA provided\nthat it doesn\u0027t exceed the size of the slab object in which the storage is\nallocated that the VMA refers to.  Shareable VMAs may not be resized.\n\nMoving VMAs (as permitted by MREMAP_MAYMOVE) is not currently supported.\n\nThis patch also makes use of the fact that the VMA list is now ordered to cut\nit short when possible.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3034097a5017dd9281b1f795e80af9859627850e",
      "tree": "d03d6749ac52e6c23020bd9caa5fdee301ca8fa6",
      "parents": [
        "dbf8685c8e21404e3a8ed244bd0219d3c4b89101"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 27 01:50:20 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:14 2006 -0700"
      },
      "message": "[PATCH] NOMMU: Order the per-mm_struct VMA list\n\nOrder the per-mm_struct VMA list by address so that searching it can be cut\nshort when the appropriate address has been exceeded.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d00c7b993712e4bb16d0012b35b654e40159b327",
      "tree": "79f8fc60f8e41e054abc39b5d69e84d7a389777c",
      "parents": [
        "7b4d5b8b39fd3701ed3693a89f2bd8f6ef49bce2"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 27 01:50:19 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:14 2006 -0700"
      },
      "message": "[PATCH] NOMMU: Permit ptrace to ignore non-PROT_WRITE VMAs in NOMMU mode\n\nPermit ptrace to modify a section that\u0027s non-shared but is marked\nunwritable, such as is obtained by mapping the text segment of an ELF-FDPIC\nexecutable binary with into a binary that\u0027s being ptraced[*].\n\n[*] Under NOMMU conditions ptrace causes read-only MAP_PRIVATE mmaps to become\n    totally private copies because if a private mapping was actually shared\n    then the debugging setting breakpoints in it would potentially crash\n    other processes.\n\nThis is done by using the VM_MAYWRITE flag rather than the VM_WRITE flag\nwhen deciding whether to permit a write.\n\nWithout this patch a debugger can\u0027t set breakpoints in the mapped text\nsections of executables that are mapped read-only private, even if the\nmmap() syscall has taken a private copy because PT_PTRACED is set.\n\nIn addition, VM_MAYREAD is used instead of VM_READ for similar reasons.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7b4d5b8b39fd3701ed3693a89f2bd8f6ef49bce2",
      "tree": "b1741de6753ec41a45a7b69276eeccb1bcb3e46d",
      "parents": [
        "910e46da4b4e93d56ffea318c64afa41868d5e6d"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 27 01:50:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:14 2006 -0700"
      },
      "message": "[PATCH] NOMMU: Check VMA protections\n\nCheck the VMA protections in get_user_pages() against what\u0027s being asked.\n\nThis checks to see that we don\u0027t accidentally write on a non-writable VMA or\npermit an I/O mapping VMA to be accessed (which may lack page structs).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "910e46da4b4e93d56ffea318c64afa41868d5e6d",
      "tree": "67f7dd9086dcf456101c843a1e310e7090a590db",
      "parents": [
        "0159b141d8b1f9b9f9cffacae47bec1e05c63b8b"
      ],
      "author": {
        "name": "Sonic Zhang",
        "email": "sonic.adi@gmail.com",
        "time": "Wed Sep 27 01:50:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:14 2006 -0700"
      },
      "message": "[PATCH] Check if start address is in vma region in NOMMU function get_user_pages()\n\nIn NOMMU arch, if run \"cat /proc/self/mem\", data from physical address 0\nare read.  This behavior is different from MMU arch.  In IA32, message\n\"cat: /proc/self/mem: Input/output error\" is reported.\n\nThis issue is rootcaused by not validate the start address in NOMMU\nfunction get_user_pages().  Following patch solves this issue.\n\nSigned-off-by: Sonic Zhang \u003csonic.adi@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0159b141d8b1f9b9f9cffacae47bec1e05c63b8b",
      "tree": "2555ce3afb2307b4532be4247d1f87e06f0071d0",
      "parents": [
        "5da6185bca064e35aa73a7c1f27488d2b96434f4"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 27 01:50:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:14 2006 -0700"
      },
      "message": "[PATCH] NOMMU: Use find_vma() rather than reimplementing a VMA search\n\nUse find_vma() in the NOMMU version of access_process_vm() rather than\nreimplementing it.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0ec76a110f432e98277e464b82ace8dd66571689",
      "tree": "3ed8de0ea6869fe17bec7689c493a2db02f73f4a",
      "parents": [
        "361f6ed1d00f666a1a7c33f3e9aaccb713f9b9e4"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 27 01:50:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:14 2006 -0700"
      },
      "message": "[PATCH] NOMMU: Check that access_process_vm() has a valid target\n\nCheck that access_process_vm() is accessing a valid mapping in the target\nprocess.\n\nThis limits ptrace() accesses and accesses through /proc/\u003cpid\u003e/maps to only\nthose regions actually mapped by a program.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "972d1a7b140569084439a81265a0f15b74e924e0",
      "tree": "e86e676e407503ef3d98020a88bb925235f11434",
      "parents": [
        "8417bba4b151346ed475fcc923693c9e3be89063"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:51 2006 -0700"
      },
      "message": "[PATCH] ZVC: Support NR_SLAB_RECLAIMABLE / NR_SLAB_UNRECLAIMABLE\n\nRemove the atomic counter for slab_reclaim_pages and replace the counter\nand NR_SLAB with two ZVC counter that account for unreclaimable and\nreclaimable slab pages: NR_SLAB_RECLAIMABLE and NR_SLAB_UNRECLAIMABLE.\n\nChange the check in vmscan.c to refer to to NR_SLAB_RECLAIMABLE.  The\nintend seems to be to check for slab pages that could be freed.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22c4af4092fc2e037ce2e2922023fc222cf0c443",
      "tree": "97482fe36e2e121f62ce8ebf66eaa3fdbb303462",
      "parents": [
        "52fa259b5aaf310657e5d30be48a300860741447"
      ],
      "author": {
        "name": "Luke Yang",
        "email": "luke.adi@gmail.com",
        "time": "Fri Jul 14 00:24:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:53 2006 -0700"
      },
      "message": "[PATCH] nommu: export two symbols for drivers to use\n\nnommu.c needs to export two more symbols for drivers to use:\nremap_pfn_range and unmap_mapping_range.\n\nSigned-off-by: Luke Yang \u003cluke.adi@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "347ce434d57da80fd5809c0c836f206a50999c26",
      "tree": "f730d151be77977f594e5cc083a93bbeb4c602cc",
      "parents": [
        "65ba55f500a37272985d071c9bbb35256a2f7c14"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:34 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_pagecache to per zone counter\n\nCurrently a single atomic variable is used to establish the size of the page\ncache in the whole machine.  The zoned VM counters have the same method of\nimplementation as the nr_pagecache code but also allow the determination of\nthe pagecache size per zone.\n\nRemove the special implementation for nr_pagecache and make it a zoned counter\nnamed NR_FILE_PAGES.\n\nUpdates of the page cache counters are always performed with interrupts off.\nWe can therefore use the __ variant here.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d5ddc79bcaab6975e7671805c3578407dc33b764",
      "tree": "de29b6d1c43fa6f5a1aca52ad6c2cc6027edc1fc",
      "parents": [
        "6d9f78396583244258080f3369889644c06c37c8"
      ],
      "author": {
        "name": "Hideo AOKI",
        "email": "haoki@redhat.com",
        "time": "Mon Apr 10 22:53:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:32 2006 -0700"
      },
      "message": "[PATCH] overcommit: use totalreserve_pages for nommu\n\nThis patch is an enhancement of OVERCOMMIT_GUESS algorithm in\n__vm_enough_memory() in mm/nommu.c.\n\nWhen the OVERCOMMIT_GUESS algorithm calculates the number of free pages,\nthe algorithm subtracts the number of reserved pages from the result\nnr_free_pages().\n\nSigned-off-by: Hideo Aoki \u003chaoki@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "84097518d1ecd2330f9488e4c2d09953a3340e74",
      "tree": "50981fe0584c456a1a86e6d7f611eec223b5f536",
      "parents": [
        "0f8053a509ceba4a077a50ea7b77039b5559b428"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:01 2006 -0800"
      },
      "message": "[PATCH] mm: nommu use compound pages\n\nNow that compound page handling is properly fixed in the VM, move nommu\nover to using compound pages rather than rolling their own refcounting.\n\nnommu vm page refcounting is broken anyway, but there is no need to have\ndivergent code in the core VM now, nor when it gets fixed.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\n\n(Needs testing, please).\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f61388822a6040ff462c5f7260daa0f1017f2db0",
      "tree": "51f9b93f4127d94ebbe5bc6321c025bbc4852f7e",
      "parents": [
        "e8788c0cce63e0cc8689a123d1ce0af1e28cd583"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Feb 28 16:59:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 28 20:53:44 2006 -0800"
      },
      "message": "[PATCH] nommu: implement vmalloc_node()\n\nFix oprofile linkage.   Pointed out by \"Luke Yang\" \u003cluke.adi@gmail.com\u003e.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7a9166e3b037296366cea6f3c97f705d33e209e6",
      "tree": "275c713bc92309b6f90e5c66699753c0268c6be5",
      "parents": [
        "c8b8b1f2e0eeb91cca22211950742b5f51564672"
      ],
      "author": {
        "name": "Luke Yang",
        "email": "luke.adi@gmail.com",
        "time": "Mon Feb 20 18:28:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Feb 20 20:00:11 2006 -0800"
      },
      "message": "[PATCH] Fix undefined symbols for nommu architecture\n\nSigned-off-by: Luke Yang \u003cluke.adi@gmail.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0e15190ead07056ab0c3844a499ff35e66d27cc",
      "tree": "0601a8d68fa051a7ee85d22640e982c0a64f0efc",
      "parents": [
        "642fb4d1f1dd2417aa69189fe5ceb81e4fb72900"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 06 00:11:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:32 2006 -0800"
      },
      "message": "[PATCH] NOMMU: Make SYSV IPC SHM use ramfs facilities on NOMMU\n\nThe attached patch makes the SYSV IPC shared memory facilities use the new\nramfs facilities on a no-MMU kernel.\n\nThe following changes are made:\n\n (1) There are now shmem_mmap() and shmem_get_unmapped_area() functions to\n     allow the IPC SHM facilities to commune with the tiny-shmem and shmem\n     code.\n\n (2) ramfs files now need resizing using do_truncate() rather than by modifying\n     the inode size directly (see shmem_file_setup()). This causes ramfs to\n     attempt to bind a block of pages of sufficient size to the inode.\n\n (3) CONFIG_SYSVIPC is no longer contingent on CONFIG_MMU.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6aab341e0a28aff100a09831c5300a2994b8b986",
      "tree": "1af3908275aa5e1b16e80efee554a9a7504c56d4",
      "parents": [
        "458af5439fe7ae7d95ca14106844e61f0795166c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:34:23 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:34:23 2005 -0800"
      },
      "message": "mm: re-architect the VM_UNPAGED logic\n\nThis replaces the (in my opinion horrible) VM_UNMAPPED logic with very\nexplicit support for a \"remapped page range\" aka VM_PFNMAP.  It allows a\nVM area to contain an arbitrary range of page table entries that the VM\nnever touches, and never considers to be normal pages.\n\nAny user of \"remap_pfn_range()\" automatically gets this new\nfunctionality, and doesn\u0027t even have to mark the pages reserved or\nindeed mark them any other way.  It just works.  As a side effect, doing\nmmap() on /dev/mem works for arbitrary ranges.\n\nSparc update from David in the next commit.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "55be570c529643e83195d6688805127533184aa4"
}
