)]}'
{
  "log": [
    {
      "commit": "eedcbba5e012978ec1bf972723aa02ab4df972e6",
      "tree": "6b31163962fb96fa58c5198777efd515db821788",
      "parents": [
        "d6091b720184c72909ef4dc4059b73bf68abea56"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:56 2007 -0700"
      },
      "message": "bfs: convert to new aops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Tigran Aivazian \u003ctigran@aivazian.fsnet.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": "d6091b720184c72909ef4dc4059b73bf68abea56",
      "tree": "75b6bee2f5d4c928687de680f0be5eb7ebac11e2",
      "parents": [
        "7c0efc627738c840a685ea0f2c23d09aad7d5d3b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:56 2007 -0700"
      },
      "message": "hpfs: convert to new aops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \u003cmikulas@artax.karlin.mff.cuni.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c0efc627738c840a685ea0f2c23d09aad7d5d3b",
      "tree": "e51573472f37260d57541bb4456ae1a948307cc7",
      "parents": [
        "7903d9eed82db81c15ee8b4114187dfdcad7650f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:56 2007 -0700"
      },
      "message": "hfsplus: convert to new aops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7903d9eed82db81c15ee8b4114187dfdcad7650f",
      "tree": "44037552fb748df45ff2ad60e5467b81bfaeee7a",
      "parents": [
        "d7777a25a07e88fcfceb30f1a6f799e2ed87abb5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:56 2007 -0700"
      },
      "message": "hfs: convert to new aops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d7777a25a07e88fcfceb30f1a6f799e2ed87abb5",
      "tree": "6aaee0ed9b821d5c189d411248f0c77e4d6e502d",
      "parents": [
        "89e107877b65bf6eff1d63a1302dee9a091586f5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "fat: convert to new aops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.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": "89e107877b65bf6eff1d63a1302dee9a091586f5",
      "tree": "8a120a04c46f19229d1cf9b9c546f1818cf84c44",
      "parents": [
        "7765ec26ae1c01bb29bedf910e4efcced8cc81d2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "fs: new cont helpers\n\nRework the generic block \"cont\" routines to handle the new aops.  Supporting\ncont_prepare_write would take quite a lot of code to support, so remove it\ninstead (and we later convert all filesystems to use it).\n\nwrite_begin gets passed AOP_FLAG_CONT_EXPAND when called from\ngeneric_cont_expand, so filesystems can avoid the old hacks they used.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.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": "7765ec26ae1c01bb29bedf910e4efcced8cc81d2",
      "tree": "8ce0e877daf805e5e546f10b389cd1c686ec0365",
      "parents": [
        "d79689c7038ea07182e8d7340786f7fcf8c77780"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 16 01:25:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "gfs2: convert to new aops\n\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Steven Whitehouse \u003cswhiteho@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": "d79689c7038ea07182e8d7340786f7fcf8c77780",
      "tree": "8275c8ab209a8ecd03838f41e42228b053de00af",
      "parents": [
        "bfc1af650a8f36feba6b90a6c398325f885c00bc"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "xfs: convert to new aops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Timothy Shimmin \u003ctes@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": "bfc1af650a8f36feba6b90a6c398325f885c00bc",
      "tree": "c7db5bbfad01d2c18533e7a128027e26d1992a42",
      "parents": [
        "f4fc66a894546bdc88a775d0e83ad20a65210bcb"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "ext4: convert to new aops\n\nConvert ext4 to use write_begin()/write_end() methods.\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Dmitriy Monakhov \u003cdmonakhov@sw.ru\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": "f4fc66a894546bdc88a775d0e83ad20a65210bcb",
      "tree": "87d725ad4e579eb353f615eab26dbf705e2e4bc2",
      "parents": [
        "f34fb6eccc962e4137b77c4bbe1e9a31d27a30e6"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "ext3: convert to new aops\n\nVarious fixes and improvements\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\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": "f34fb6eccc962e4137b77c4bbe1e9a31d27a30e6",
      "tree": "58fd363d892ee2d341a17e52a297632a10219af9",
      "parents": [
        "6272b5a5868f3d5fbf9815f9984891ced343dabc"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "ext2: convert to new aops\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": "6272b5a5868f3d5fbf9815f9984891ced343dabc",
      "tree": "350eb309221242119901f1f4fcdb04a52abaea36",
      "parents": [
        "800d15a53e7d14fa26495b7b95d3bfe7877dd69d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "block_dev: convert to new aops\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": "800d15a53e7d14fa26495b7b95d3bfe7877dd69d",
      "tree": "09a59e32043f1b601b73ad6105e7634679337884",
      "parents": [
        "674b892ede247ef4fb8d00918f02e29c32b9bbaf"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "implement simple fs aops\n\nImplement new aops for some of the simpler filesystems.\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": "674b892ede247ef4fb8d00918f02e29c32b9bbaf",
      "tree": "8e170040e64073932ba559cc31f3ec9802337406",
      "parents": [
        "8268f5a7415d914fc855a86aa2284ac819dc6b2e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "mm: restore KERNEL_DS optimisations\n\nRestore the KERNEL_DS optimisation, especially helpful to the 2copy write\npath.\n\nThis may be a pretty questionable gain in most cases, especially after the\nlegacy 2copy write path is removed, but it doesn\u0027t cost much.\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": "8268f5a7415d914fc855a86aa2284ac819dc6b2e",
      "tree": "13628a6d3cb31f04472c4cccdc741979ecdf0ad0",
      "parents": [
        "afddba49d18f346e5cc2938b6ed7c512db18ca68"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@sw.ru",
        "time": "Tue Oct 16 01:25:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "deny partial write for loop dev fd\n\nPartial write can be easily supported by LO_CRYPT_NONE mode, but it is not\neasy in LO_CRYPT_CRYPTOAPI case, because of its block nature.  I don\u0027t know\nwho still used cryptoapi, but theoretically it is possible.  So let\u0027s leave\nthings as they are.  Loop device doesn\u0027t support partial write before\nNick\u0027s \"write_begin/write_end\" patch set, and let\u0027s it behave the same way\nafter.\n\nSigned-off-by: Dmitriy Monakhov \u003cdmonakhov@openvz.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afddba49d18f346e5cc2938b6ed7c512db18ca68",
      "tree": "4726e3d3b0e9e8e5b5d3b2b0cccb36446bbdf3ca",
      "parents": [
        "637aff46f94a754207c80c8c64bf1b74f24b967d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "fs: introduce write_begin, write_end, and perform_write aops\n\nThese are intended to replace prepare_write and commit_write with more\nflexible alternatives that are also able to avoid the buffered write\ndeadlock problems efficiently (which prepare_write is unable to do).\n\n[mark.fasheh@oracle.com: API design contributions, code review and fixes]\n[akpm@linux-foundation.org: various fixes]\n[dmonakhov@sw.ru: new aop block_write_begin fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Dmitriy Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "637aff46f94a754207c80c8c64bf1b74f24b967d",
      "tree": "837fb3196236998c3c3ae44762ed3167ef0256f4",
      "parents": [
        "2f718ffc16c43a435d12919c75dbfad518abd056"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "fs: fix data-loss on error\n\nNew buffers against uptodate pages are simply be marked uptodate, while the\nbuffer_new bit remains set.  This causes error-case code to zero out parts of\nthose buffers because it thinks they contain stale data: wrong, they are\nactually uptodate so this is a data loss situation.\n\nFix this by actually clearning buffer_new and marking the buffer dirty.  It\nmakes sense to always clear buffer_new before setting a buffer uptodate.\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": "2f718ffc16c43a435d12919c75dbfad518abd056",
      "tree": "55588cb2815d844e9d0b2404cf8ceafe98b5c55d",
      "parents": [
        "08291429cfa6258c4cd95d8833beb40f828b194e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "mm: buffered write iterator\n\nAdd an iterator data structure to operate over an iovec.  Add usercopy\noperators needed by generic_file_buffered_write, and convert that function\nover.\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": "08291429cfa6258c4cd95d8833beb40f828b194e",
      "tree": "50a206f0f0e7a5400b44073107ff00517e6f50ac",
      "parents": [
        "4a9e5ef1f4f15205e477817a5cefc34bd3f65f55"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "mm: fix pagecache write deadlocks\n\nModify the core write() code so that it won\u0027t take a pagefault while holding a\nlock on the pagecache page. There are a number of different deadlocks possible\nif we try to do such a thing:\n\n1.  generic_buffered_write\n2.   lock_page\n3.    prepare_write\n4.     unlock_page+vmtruncate\n5.     copy_from_user\n6.      mmap_sem(r)\n7.       handle_mm_fault\n8.        lock_page (filemap_nopage)\n9.    commit_write\n10.  unlock_page\n\na. sys_munmap / sys_mlock / others\nb.  mmap_sem(w)\nc.   make_pages_present\nd.    get_user_pages\ne.     handle_mm_fault\nf.      lock_page (filemap_nopage)\n\n2,8\t- recursive deadlock if page is same\n2,8;2,8\t- ABBA deadlock is page is different\n2,6;b,f\t- ABBA deadlock if page is same\n\nThe solution is as follows:\n1.  If we find the destination page is uptodate, continue as normal, but use\n    atomic usercopies which do not take pagefaults and do not zero the uncopied\n    tail of the destination. The destination is already uptodate, so we can\n    commit_write the full length even if there was a partial copy: it does not\n    matter that the tail was not modified, because if it is dirtied and written\n    back to disk it will not cause any problems (uptodate *means* that the\n    destination page is as new or newer than the copy on disk).\n\n1a. The above requires that fault_in_pages_readable correctly returns access\n    information, because atomic usercopies cannot distinguish between\n    non-present pages in a readable mapping, from lack of a readable mapping.\n\n2.  If we find the destination page is non uptodate, unlock it (this could be\n    made slightly more optimal), then allocate a temporary page to copy the\n    source data into. Relock the destination page and continue with the copy.\n    However, instead of a usercopy (which might take a fault), copy the data\n    from the pinned temporary page via the kernel address space.\n\n(also, rename maxlen to seglen, because it was confusing)\n\nThis increases the CPU/memory copy cost by almost 50% on the affected\nworkloads. That will be solved by introducing a new set of pagecache write\naops in a subsequent patch.\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": "4a9e5ef1f4f15205e477817a5cefc34bd3f65f55",
      "tree": "51f52086ecbccc3f41955d8d12293ef7a566a05b",
      "parents": [
        "eb2be189317d031895b5ca534fbf735eb546158b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "mm: write iovec cleanup\n\nHide some of the open-coded nr_segs tests into the iovec helpers.  This is all\nto simplify generic_file_buffered_write, because that gets more complex in the\nnext patch.\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": "eb2be189317d031895b5ca534fbf735eb546158b",
      "tree": "8f1eda7af3be7285244a6f1ad77682e90d403c7b",
      "parents": [
        "64649a58919e66ec21792dbb6c48cb3da22cbd7f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "mm: buffered write cleanup\n\nQuite a bit of code is used in maintaining these \"cached pages\" that are\nprobably pretty unlikely to get used. It would require a narrow race where\nthe page is inserted concurrently while this process is allocating a page\nin order to create the spare page. Then a multi-page write into an uncached\npart of the file, to make use of it.\n\nNext, the buffered write path (and others) uses its own LRU pagevec when it\nshould be just using the per-CPU LRU pagevec (which will cut down on both data\nand code size cacheline footprint). Also, these private LRU pagevecs are\nemptied after just a very short time, in contrast with the per-CPU pagevecs\nthat are persistent. Net result: 7.3 times fewer lru_lock acquisitions required\nto add the pages to pagecache for a bulk write (in 4K chunks).\n\n[this gets rid of some cond_resched() calls in readahead.c and mpage.c due\n to clashes in -mm. What put them there, and why? ]\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": "64649a58919e66ec21792dbb6c48cb3da22cbd7f",
      "tree": "054605b7da7bad43c299ef66de9d33fda87cd38d",
      "parents": [
        "5fe172370687e03cc6ba8dca990b75db18ff9bb3"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "mm: trim more holes\n\nIf prepare_write fails with AOP_TRUNCATED_PAGE, or if commit_write fails, then\nwe may have failed the write operation despite prepare_write having\ninstantiated blocks past i_size.  Fix this, and consolidate the trimming into\none place.\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": "5fe172370687e03cc6ba8dca990b75db18ff9bb3",
      "tree": "8ce000fee15fa9ccd4313018f7f9ab1ffbc8cdaa",
      "parents": [
        "ae37461c70bc8c8416cad1bab13a9898ed030aa1"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "mm: debug write deadlocks\n\nAllow CONFIG_DEBUG_VM to switch off the prefaulting logic, to simulate the\nMakes the race much easier to hit.\n\nThis is useful for demonstration and testing purposes, but is removed in a\nsubsequent patch.\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": "ae37461c70bc8c8416cad1bab13a9898ed030aa1",
      "tree": "7ba24faab6f89651fd2b3d33563847764744d544",
      "parents": [
        "6814d7a91289ceb143285975e244a8f00fd3a830"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Oct 16 01:24:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "mm: clean up buffered write code\n\nRename some variables and fix some types.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\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": "6814d7a91289ceb143285975e244a8f00fd3a830",
      "tree": "e439e5d802d6ebaa73bac8b08c311ca60d4c8ee4",
      "parents": [
        "4b49643fbb3fa8bf4910f82be02d45e94e8972a4"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Oct 16 01:24:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "Revert \"[PATCH] generic_file_buffered_write(): deadlock on vectored write\"\n\nThis reverts commit 6527c2bdf1f833cc18e8f42bd97973d583e4aa83, which\nfixed the following bug:\n\n  When prefaulting in the pages in generic_file_buffered_write(), we only\n  faulted in the pages for the firts segment of the iovec.  If the second of\n  successive segment described a mmapping of the page into which we\u0027re\n  write()ing, and that page is not up-to-date, the fault handler tries to lock\n  the already-locked page (to bring it up to date) and deadlocks.\n\n  An exploit for this bug is in writev-deadlock-demo.c, in\n  http://www.zip.com.au/~akpm/linux/patches/stuff/ext3-tools.tar.gz.\n\n  (These demos assume blocksize \u003c PAGE_CACHE_SIZE).\n\nThe problem with this fix is that it takes the kernel back to doing a single\nprepare_write()/commit_write() per iovec segment.  So in the worst case we\u0027ll\nrun prepare_write+commit_write 1024 times where we previously would have run\nit once. The other problem with the fix is that it fix all the locking problems.\n\n\u003cinsert numbers obtained via ext3-tools\u0027s writev-speed.c here\u003e\n\nAnd apparently this change killed NFS overwrite performance, because, I\nsuppose, it talks to the server for each prepare_write+commit_write.\n\nSo just back that patch out - we\u0027ll be fixing the deadlock by other means.\n\nNick says: also it only ever actually papered over the bug, because after\nfaulting in the pages, they might be unmapped or reclaimed.\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": "4b49643fbb3fa8bf4910f82be02d45e94e8972a4",
      "tree": "ee3bc7881a1e0b71fa093254bb725ad467d8ef72",
      "parents": [
        "41cb8ac025dbbf6782eae10d231e7e2336ad3724"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Oct 16 01:24:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "Revert \"[PATCH] generic_file_buffered_write(): handle zero-length iovec segments\"\n\nThis reverts commit 81b0c8713385ce1b1b9058e916edcf9561ad76d6, which was\na bugfix against 6527c2bdf1f833cc18e8f42bd97973d583e4aa83 (\"[PATCH]\ngeneric_file_buffered_write(): deadlock on vectored write\"), which we\nalso revert.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\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": "41cb8ac025dbbf6782eae10d231e7e2336ad3724",
      "tree": "0070e26ee574338a4a3f56f574e1c126a4357c8e",
      "parents": [
        "902aaed0d983dfd459fcb2b678608d4584782200"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:53 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "mm: revert KERNEL_DS buffered write optimisation\n\nRevert the patch from Neil Brown to optimise NFSD writev handling.\n\nCc: Neil Brown \u003cneilb@suse.de\u003e\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": "902aaed0d983dfd459fcb2b678608d4584782200",
      "tree": "00b18597d87101ba1b37e5dcfde1d91312870160",
      "parents": [
        "754af6f5a85fcd1ecb456851d20c65e4c6ce10ab"
      ],
      "author": {
        "name": "Hisashi Hifumi",
        "email": "hifumi.hisashi@oss.ntt.co.jp",
        "time": "Tue Oct 16 01:24:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "mm: use pagevec to rotate reclaimable page\n\nWhile running some memory intensive load, system response deteriorated just\nafter swap-out started.\n\nThe cause of this problem is that when a PG_reclaim page is moved to the tail\nof the inactive LRU list in rotate_reclaimable_page(), lru_lock spin lock is\nacquired every page writeback .  This deteriorates system performance and\nmakes interrupt hold off time longer when swap-out started.\n\nFollowing patch solves this problem.  I use pagevec in rotating reclaimable\npages to mitigate LRU spin lock contention and reduce interrupt hold off time.\n\nI did a test that allocating and touching pages in multiple processes, and\npinging to the test machine in flooding mode to measure response under memory\nintensive load.\n\nThe test result is:\n\n\t-2.6.23-rc5\n\t--- testmachine ping statistics ---\n\t3000 packets transmitted, 3000 received, 0% packet loss, time 53222ms\n\trtt min/avg/max/mdev \u003d 0.074/0.652/172.228/7.176 ms, pipe 11, ipg/ewma\n17.746/0.092 ms\n\n\t-2.6.23-rc5-patched\n\t--- testmachine ping statistics ---\n\t3000 packets transmitted, 3000 received, 0% packet loss, time 51924ms\n\trtt min/avg/max/mdev \u003d 0.072/0.108/3.884/0.114 ms, pipe 2, ipg/ewma\n17.314/0.091 ms\n\nMax round-trip-time was improved.\n\nThe test machine spec is that 4CPU(3.16GHz, Hyper-threading enabled)\n8GB memory , 8GB swap.\n\nI did ping test again to observe performance deterioration caused by taking\na ref.\n\n\t-2.6.23-rc6-with-modifiedpatch\n\t--- testmachine ping statistics ---\n\t3000 packets transmitted, 3000 received, 0% packet loss, time 53386ms\n\trtt min/avg/max/mdev \u003d 0.074/0.110/4.716/0.147 ms, pipe 2, ipg/ewma 17.801/0.129 ms\n\nThe result for my original patch is as follows.\n\n\t-2.6.23-rc5-with-originalpatch\n\t--- testmachine ping statistics ---\n\t3000 packets transmitted, 3000 received, 0% packet loss, time 51924ms\n\trtt min/avg/max/mdev \u003d 0.072/0.108/3.884/0.114 ms, pipe 2, ipg/ewma 17.314/0.091 ms\n\nThe influence to response was small.\n\n[akpm@linux-foundation.org: fix uninitalised var warning]\n[hugh@veritas.com: fix locking]\n[randy.dunlap@oracle.com: fix function declaration]\n[hugh@veritas.com: fix BUG at include/linux/mm.h:220!]\n[hugh@veritas.com: kill redundancy in rotate_reclaimable_page]\n[hugh@veritas.com: move_tail_pages into lru_add_drain]\nSigned-off-by: Hisashi Hifumi \u003chifumi.hisashi@oss.ntt.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": "754af6f5a85fcd1ecb456851d20c65e4c6ce10ab",
      "tree": "8c985bfd704a8c993d6ca992725969c6fc5c9e5a",
      "parents": [
        "32a4330d4156e55a4888a201f484dbafed9504ed"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "Lee.Schermerhorn@hp.com",
        "time": "Tue Oct 16 01:24:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "Mem Policy: add MPOL_F_MEMS_ALLOWED get_mempolicy() flag\n\nAllow an application to query the memories allowed by its context.\n\nUpdated numa_memory_policy.txt to mention that applications can use this to\nobtain allowed memories for constructing valid policies.\n\nTODO:  update out-of-tree libnuma wrapper[s], or maybe add a new\nwrapper--e.g.,  numa_get_mems_allowed() ?\n\nAlso, update numa syscall man pages.\n\nTested with memtoy V\u003e\u003d0.13.\n\nSigned-off-by:  Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@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": "32a4330d4156e55a4888a201f484dbafed9504ed",
      "tree": "1339473dab0fe493dc9feb59833cdf23cf2b1780",
      "parents": [
        "8691f3a72f32f8b3ed535faa27140b3ae293c90b"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue Oct 16 01:24:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "mm: prevent kswapd from freeing excessive amounts of lowmem\n\nThe current VM can get itself into trouble fairly easily on systems with a\nsmall ZONE_HIGHMEM, which is common on i686 computers with 1GB of memory.\n\nOn one side, page_alloc() will allocate down to zone-\u003epages_low, while on\nthe other side, kswapd() and balance_pgdat() will try to free memory from\nevery zone, until every zone has more free pages than zone-\u003epages_high.\n\nHighmem can be filled up to zone-\u003epages_low with page tables, ramfs,\nvmalloc allocations and other unswappable things quite easily and without\nmany bad side effects, since we still have a huge ZONE_NORMAL to do future\nallocations from.\n\nHowever, as long as the number of free pages in the highmem zone is below\nzone-\u003epages_high, kswapd will continue swapping things out from\nZONE_NORMAL, too!\n\nSami Farin managed to get his system into a stage where kswapd had freed\nabout 700MB of low memory and was still \"going strong\".\n\nThe attached patch will make kswapd stop paging out data from zones when\nthere is more than enough memory free.  We do go above zone-\u003epages_high in\norder to keep pressure between zones equal in normal circumstances, but the\npatch should prevent the kind of excesses that made Sami\u0027s computer totally\nunusable.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8691f3a72f32f8b3ed535faa27140b3ae293c90b",
      "tree": "78ed23998e99de2fb4fb5b135c1fa4ad70612ef0",
      "parents": [
        "26fb1589cb0aaec3a0b4418c54f30c1a2b1781f6"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Oct 16 01:24:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "mm: no need to cast vmalloc() return value in zone_wait_table_init()\n\nvmalloc() returns a void pointer, so there\u0027s no need to cast its\nreturn value in mm/page_alloc.c::zone_wait_table_init().\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@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": "26fb1589cb0aaec3a0b4418c54f30c1a2b1781f6",
      "tree": "1486600f31a6f1387f4f5db276684f0b727eec89",
      "parents": [
        "a4b0672db3a698d0684ee6e54f44e2e162a3da1b"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Tue Oct 16 01:24:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "fix the max path calculation in radix-tree.c\n\nA while back, Nick Piggin introduced a patch to reduce the node memory\nusage for small files (commit cfd9b7df4abd3257c9e381b0e445817b26a51c0c):\n\n-#define RADIX_TREE_MAP_SHIFT\t6\n+#define RADIX_TREE_MAP_SHIFT\t(CONFIG_BASE_SMALL ? 4 : 6)\n\nUnfortunately, he didn\u0027t take into account the fact that the\ncalculation of the maximum path was based on an assumption of having\nto round up:\n\n#define RADIX_TREE_MAX_PATH (RADIX_TREE_INDEX_BITS/RADIX_TREE_MAP_SHIFT + 2)\n\nSo, if CONFIG_BASE_SMALL is set, you will end up with a\nRADIX_TREE_MAX_PATH that is one greater than necessary.  The practical\nupshot of this is just a bit of wasted memory (one long in the\nheight_to_maxindex array, an extra pre-allocated radix tree node per\ncpu, and extra stack usage in a couple of functions), but it seems\nworth getting right.\n\nIt\u0027s also worth noting that I never build with CONFIG_BASE_SMALL.\nWhat I did to test this was duplicate the code in a small user-space\nprogram and check the results of the calculations for max path and the\ncontents of the height_to_maxindex array.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nAcked-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a4b0672db3a698d0684ee6e54f44e2e162a3da1b",
      "tree": "d53c52b251856520b0fd02969bfcdd4b5d332da6",
      "parents": [
        "68671f35fe8d785277118a333c88768a4f894917"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "fs: fix nobh error handling\n\nnobh mode error handling is not just pretty slack, it\u0027s wrong.\n\nOne cannot zero out the whole page to ensure new blocks are zeroed, because\nit just brings the whole page \"uptodate\" with zeroes even if that may not\nbe the correct uptodate data.  Also, other parts of the page may already\ncontain dirty data which would get lost by zeroing it out.  Thirdly, the\nwriteback of zeroes to the new blocks will also erase existing blocks.  All\nthese conditions are pagecache and/or filesystem corruption.\n\nThe problem comes about because we didn\u0027t keep track of which buffers\nactually are new or old.  However it is not enough just to keep only this\nstate, because at the point we start dirtying parts of the page (new\nblocks, with zeroes), the handling of IO errors becomes impossible without\nbuffers because the page may only be partially uptodate, in which case the\npage flags allone cannot capture the state of the parts of the page.\n\nSo allocate all buffers for the page upfront, but leave them unattached so\nthat they don\u0027t pick up any other references and can be freed when we\u0027re\ndone.  If the error path is hit, then zero the new buffers as the regular\nbuffer path does, then attach the buffers to the page so that it can\nactually be written out correctly and be subject to the normal IO error\nhandling paths.\n\nAs an upshot, we save 1K of kernel stack on ia64 or powerpc 64K page\nsystems.\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": "68671f35fe8d785277118a333c88768a4f894917",
      "tree": "50cb5a378db1b021c2ec3573388af3480df49791",
      "parents": [
        "ef8b4520bd9f8294ffce9abd6158085bde5dc902"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Oct 16 01:24:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "mm: add end_buffer_read helper function\n\nMove duplicated code from end_buffer_read_XXX methods to separate helper\nfunction.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef8b4520bd9f8294ffce9abd6158085bde5dc902",
      "tree": "c099a16691ac06208f4d3d65b71e7adaf7361fcd",
      "parents": [
        "0da7e01f5f37f441cccd7c8c0586e06db0981907"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 01:24:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "Slab allocators: fail if ksize is called with a NULL parameter\n\nA NULL pointer means that the object was not allocated.  One cannot\ndetermine the size of an object that has not been allocated.  Currently we\nreturn 0 but we really should BUG() on attempts to determine the size of\nsomething nonexistent.\n\nkrealloc() interprets NULL to mean a zero sized object.  Handle that\nseparately in krealloc().\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0da7e01f5f37f441cccd7c8c0586e06db0981907",
      "tree": "3d43edc4166667948415de84254bd60cfb457734",
      "parents": [
        "2408c55037c3f7d51a8a100025c47595e71b838c"
      ],
      "author": {
        "name": "Dean Nelson",
        "email": "dcn@sgi.com",
        "time": "Tue Oct 16 01:24:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "calculation of pgoff in do_linear_fault() uses mixed units\n\nThe calculation of pgoff in do_linear_fault() should use PAGE_SHIFT and not\nPAGE_CACHE_SHIFT since vma-\u003evm_pgoff is in units of PAGE_SIZE and not\nPAGE_CACHE_SIZE.  At the moment linux/pagemap.h has PAGE_CACHE_SHIFT\ndefined as PAGE_SHIFT, but should that ever change this calculation would\nbreak.\n\nSigned-off-by: Dean Nelson \u003cdcn@sgi.com\u003e\nAcked-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": "2408c55037c3f7d51a8a100025c47595e71b838c",
      "tree": "71940f72dbadf6a6744ffbd062ef4fd8754aa623",
      "parents": [
        "c92ff1bde06f69d59b40f3194016aee51cc5da55"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "satyam@infradead.org",
        "time": "Tue Oct 16 01:24:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "{slub, slob}: use unlikely() for kfree(ZERO_OR_NULL_PTR) check\n\nConsidering kfree(NULL) would normally occur only in error paths and\nkfree(ZERO_SIZE_PTR) is uncommon as well, so let\u0027s use unlikely() for the\ncondition check in SLUB\u0027s and SLOB\u0027s kfree() to optimize for the common\ncase.  SLAB has this already.\n\nSigned-off-by: Satyam Sharma \u003csatyam@infradead.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: 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": "c92ff1bde06f69d59b40f3194016aee51cc5da55",
      "tree": "d365a7723a05a073ed715c6f4e99363e27516d04",
      "parents": [
        "c0bc9875b701c588e448302d41181995c21e8040"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Oct 16 01:24:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "move mm_struct and vm_area_struct\n\nMove the definitions of struct mm_struct and struct vma_area_struct to\ninclude/mm_types.h.  This allows to define more function in asm/pgtable.h\nand friends with inline assemblies instead of macros.  Compile tested on\ni386, powerpc, powerpc64, s390-32, s390-64 and x86_64.\n\n[aurelien@aurel32.net: build fix]\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Aurelien Jarno \u003caurelien@aurel32.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0bc9875b701c588e448302d41181995c21e8040",
      "tree": "c320855d4c04bd51ded6b4888bc5895ab539165f",
      "parents": [
        "b55ed816235cf41c29159d22a4cdeec7deb5821c"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "radix-tree: use indirect bit\n\nRather than sign direct radix-tree pointers with a special bit, sign the\nindirect one that hangs off the root.  This means that, given a lookup_slot\noperation, the invalid result will be differentiated from the valid\n(previously, valid results could have the bit either set or clear).\n\nThis does not affect slot lookups which occur under lock -- they can never\nreturn an invalid result.  Is needed in future for lockless pagecache.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: 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": "b55ed816235cf41c29159d22a4cdeec7deb5821c",
      "tree": "73245c1da2c5352c526d4d25f02e69943b4b0b15",
      "parents": [
        "45726cb43d11b288c58243a26010f397054222f0"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "mm: clarify __add_to_swap_cache locking\n\n__add_to_swap_cache unconditionally sets the page locked, which can be a bit\nalarming to the unsuspecting reader: in the code paths where the page is\nvisible to other CPUs, the page should be (and is) already locked.\n\nInstead, just add a check to ensure the page is locked here, and teach the one\npath relying on the old behaviour to call SetPageLocked itself.\n\n[hugh@veritas.com: locking fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\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": "45726cb43d11b288c58243a26010f397054222f0",
      "tree": "ae1804a34f314be18865add063d660cf783e45be",
      "parents": [
        "001281881067a5998384c6669bc8dbbbab8456c4"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "mm: improve find_lock_page\n\nfind_lock_page does not need to recheck -\u003eindex because if the page is in the\nright mapping then the index must be the same.  Also, tree_lock does not need\nto be retaken after the page is locked in order to test that -\u003emapping has not\nchanged, because holding the page lock pins its mapping.\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": "001281881067a5998384c6669bc8dbbbab8456c4",
      "tree": "6229d16c737782a36795354b218c74d4d2749752",
      "parents": [
        "557ed1fa2620dc119adb86b34c614e152a629a80"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "mm: use lockless radix-tree probe\n\nProbing pages and radix_tree_tagged are lockless operations with the lockless\nradix-tree.  Convert these users to RCU locking rather than using tree_lock.\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": "557ed1fa2620dc119adb86b34c614e152a629a80",
      "tree": "d00b31a7f197583c2bd8fffa1fd135fbbb5d6abc",
      "parents": [
        "aadb4bc4a1f9108c1d0fbd121827c936c2ed4217"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "remove ZERO_PAGE\n\nThe commit b5810039a54e5babf428e9a1e89fc1940fabff11 contains the note\n\n  A last caveat: the ZERO_PAGE is now refcounted and managed with rmap\n  (and thus mapcounted and count towards shared rss).  These writes to\n  the struct page could cause excessive cacheline bouncing on big\n  systems.  There are a number of ways this could be addressed if it is\n  an issue.\n\nAnd indeed this cacheline bouncing has shown up on large SGI systems.\nThere was a situation where an Altix system was essentially livelocked\ntearing down ZERO_PAGE pagetables when an HPC app aborted during startup.\nThis situation can be avoided in userspace, but it does highlight the\npotential scalability problem with refcounting ZERO_PAGE, and corner\ncases where it can really hurt (we don\u0027t want the system to livelock!).\n\nThere are several broad ways to fix this problem:\n1. add back some special casing to avoid refcounting ZERO_PAGE\n2. per-node or per-cpu ZERO_PAGES\n3. remove the ZERO_PAGE completely\n\nI will argue for 3. The others should also fix the problem, but they\nresult in more complex code than does 3, with little or no real benefit\nthat I can see.\n\nWhy? Inserting a ZERO_PAGE for anonymous read faults appears to be a\nfalse optimisation: if an application is performance critical, it would\nnot be doing many read faults of new memory, or at least it could be\nexpected to write to that memory soon afterwards. If cache or memory use\nis critical, it should not be working with a significant number of\nZERO_PAGEs anyway (a more compact representation of zeroes should be\nused).\n\nAs a sanity check -- mesuring on my desktop system, there are never many\nmappings to the ZERO_PAGE (eg. 2 or 3), thus memory usage here should not\nincrease much without it.\n\nWhen running a make -j4 kernel compile on my dual core system, there are\nabout 1,000 mappings to the ZERO_PAGE created per second, but about 1,000\nZERO_PAGE COW faults per second (less than 1 ZERO_PAGE mapping per second\nis torn down without being COWed). So removing ZERO_PAGE will save 1,000\npage faults per second when running kbuild, while keeping it only saves\nless than 1 page clearing operation per second. 1 page clear is cheaper\nthan a thousand faults, presumably, so there isn\u0027t an obvious loss.\n\nNeither the logical argument nor these basic tests give a guarantee of no\nregressions. However, this is a reasonable opportunity to try to remove\nthe ZERO_PAGE from the pagefault path. If it is found to cause regressions,\nwe can reintroduce it and just avoid refcounting it.\n\nThe /dev/zero ZERO_PAGE usage and TLB tricks also get nuked.  I don\u0027t see\nmuch use to them except on benchmarks.  All other users of ZERO_PAGE are\nconverted just to use ZERO_PAGE(0) for simplicity. We can look at\nreplacing them all and maybe ripping out ZERO_PAGE completely when we are\nmore satisfied with this solution.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus \"snif\" Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aadb4bc4a1f9108c1d0fbd121827c936c2ed4217",
      "tree": "879b7c9ba11a65958e4477c563602e08d9e6635f",
      "parents": [
        "57f6b96c09c30e444e0d3fc3080feba037657a7b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 01:24:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "SLUB: direct pass through of page size or higher kmalloc requests\n\nThis gets rid of all kmalloc caches larger than page size.  A kmalloc\nrequest larger than PAGE_SIZE \u003e 2 is going to be passed through to the page\nallocator.  This works both inline where we will call __get_free_pages\ninstead of kmem_cache_alloc and in __kmalloc.\n\nkfree is modified to check if the object is in a slab page. If not then\nthe page is freed via the page allocator instead. Roughly similar to what\nSLOB does.\n\nAdvantages:\n- Reduces memory overhead for kmalloc array\n- Large kmalloc operations are faster since they do not\n  need to pass through the slab allocator to get to the\n  page allocator.\n- Performance increase of 10%-20% on alloc and 50% on free for\n  PAGE_SIZEd allocations.\n  SLUB must call page allocator for each alloc anyways since\n  the higher order pages which that allowed avoiding the page alloc calls\n  are not available in a reliable way anymore. So we are basically removing\n  useless slab allocator overhead.\n- Large kmallocs yields page aligned object which is what\n  SLAB did. Bad things like using page sized kmalloc allocations to\n  stand in for page allocate allocs can be transparently handled and are not\n  distinguishable from page allocator uses.\n- Checking for too large objects can be removed since\n  it is done by the page allocator.\n\nDrawbacks:\n- No accounting for large kmalloc slab allocations anymore\n- No debugging of large kmalloc slab allocations.\n\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": "57f6b96c09c30e444e0d3fc3080feba037657a7b",
      "tree": "4b62e2f63352b74d6c9dd1ed1142b971dcd207e3",
      "parents": [
        "b2c3843b1e25e2c67347c4671f33fbe6f5067e6b"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Tue Oct 16 01:24:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "filemap: convert some unsigned long to pgoff_t\n\nConvert some \u0027unsigned long\u0027 to pgoff_t.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2c3843b1e25e2c67347c4671f33fbe6f5067e6b",
      "tree": "e1b161e5c7169baab8f71615879eb3b46ebe9a9e",
      "parents": [
        "f2e189827a914b66e435e68b1c9e37775cb995ed"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Tue Oct 16 01:24:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "filemap: trivial code cleanups\n\n- remove unused local next_index in do_generic_mapping_read()\n- remove a redudant page_cache_read() declaration\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2e189827a914b66e435e68b1c9e37775cb995ed",
      "tree": "fa5748fa0ecdef500c616c28d2885d2385b17e4d",
      "parents": [
        "535443f51543df61111bbd234300ae549d220448"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Tue Oct 16 01:24:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "readahead: remove the limit max_sectors_kb imposed on max_readahead_kb\n\nRemove the size limit max_sectors_kb imposed on max_readahead_kb.\n\nThe size restriction is unreasonable.  Especially when max_sectors_kb cannot\ngrow larger than max_hw_sectors_kb, which can be rather small for some disk\ndrives.\n\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "535443f51543df61111bbd234300ae549d220448",
      "tree": "e9b022969776132b9fd3bde351673edc006a1bac",
      "parents": [
        "7ff81078d8b9f3d05a27b7bd3786ffb1ef1b0d1f"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Tue Oct 16 01:24:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:52 2007 -0700"
      },
      "message": "readahead: remove several readahead macros\n\nRemove VM_MAX_CACHE_HIT, MAX_RA_PAGES and MIN_RA_PAGES.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ff81078d8b9f3d05a27b7bd3786ffb1ef1b0d1f",
      "tree": "ac73cf0c8325783a28c4d16c783f6fd96d17be7c",
      "parents": [
        "6b10c6c9fbfe754e8482efb8c8b84f8e40c0f2eb"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Tue Oct 16 01:24:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:52 2007 -0700"
      },
      "message": "readahead: remove the local copy of ra in do_generic_mapping_read()\n\nThe local copy of ra in do_generic_mapping_read() can now go away.\n\nIt predates readanead(req_size).  In a time when the readahead code was called\non *every* single page.  Hence a local has to be made to reduce the chance of\nthe readahead state being overwritten by a concurrent reader.  More details\nin: Linux: Random File I/O Regressions In 2.6\n\u003chttp://kerneltrap.org/node/3039\u003e\n\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b10c6c9fbfe754e8482efb8c8b84f8e40c0f2eb",
      "tree": "08f275b1e8d2e9c93bb46367611c43ab88f8f8dc",
      "parents": [
        "6df8ba4f8a4c4abca9ccad10441d0dddbdff301c"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Tue Oct 16 01:24:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:52 2007 -0700"
      },
      "message": "readahead: basic support of interleaved reads\n\nThis is a simplified version of the pagecache context based readahead.  It\nhandles the case of multiple threads reading on the same fd and invalidating\neach others\u0027 readahead state.  It does the trick by scanning the pagecache and\nrecovering the current read stream\u0027s readahead status.\n\nThe algorithm works in a opportunistic way, in that it does not try to detect\ninterleaved reads _actively_, which requires a probe into the page cache\n(which means a little more overhead for random reads).  It only tries to\nhandle a previously started sequential readahead whose state was overwritten\nby another concurrent stream, and it can do this job pretty well.\n\nNegative and positive examples(or what you can expect from it):\n\n1) it cannot detect and serve perfect request-by-request interleaved reads\n   right:\n\ttime\tstream 1  stream 2\n\t0 \t1\n\t1 \t          1001\n\t2 \t2\n\t3 \t          1002\n\t4 \t3\n\t5 \t          1003\n\t6 \t4\n\t7 \t          1004\n\t8 \t5\n\t9\t          1005\n\nHere no single readahead will be carried out.\n\n2) However, if it\u0027s two concurrent reads by two threads, the chance of the\n   initial sequential readahead be started is huge. Once the first sequential\n   readahead is started for a stream, this patch will ensure that the readahead\n   window continues to rampup and won\u0027t be disturbed by other streams.\n\n\ttime\tstream 1  stream 2\n\t0 \t1\n\t1 \t2\n\t2 \t          1001\n\t3 \t3\n\t4 \t          1002\n\t5 \t          1003\n\t6 \t4\n\t7 \t5\n\t8 \t          1004\n\t9 \t6\n\t10\t          1005\n\t11\t7\n\t12\t          1006\n\t13\t          1007\n\nHere stream 1 will start a readahead at page 2, and stream 2 will start its\nfirst readahead at page 1003.  From then on the two streams will be served\nright.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6df8ba4f8a4c4abca9ccad10441d0dddbdff301c",
      "tree": "6ac5cd48d3400a9d32f8affd31106f7942df9547",
      "parents": [
        "f4e6b498d6e06742d72706ef50593a9c4dd72214"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Tue Oct 16 01:24:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:52 2007 -0700"
      },
      "message": "radixtree: introduce radix_tree_next_hole()\n\nIntroduce radix_tree_next_hole(root, index, max_scan) to scan radix tree for\nthe first hole.  It will be used in interleaved readahead.\n\nThe implementation is dumb and obviously correct.  It can help debug(and\ndocument) the possible smart one in future.\n\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4e6b498d6e06742d72706ef50593a9c4dd72214",
      "tree": "74a573302b2ea086c0d21907175be604f110f5b1",
      "parents": [
        "0bb7ba6b9c358c12084a3cbc6ac08c8d1e973937"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Tue Oct 16 01:24:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:52 2007 -0700"
      },
      "message": "readahead: combine file_ra_state.prev_index/prev_offset into prev_pos\n\nCombine the file_ra_state members\n\t\t\t\tunsigned long prev_index\n\t\t\t\tunsigned int prev_offset\ninto\n\t\t\t\tloff_t prev_pos\n\nIt is more consistent and better supports huge files.\n\nThanks to Peter for the nice proposal!\n\n[akpm@linux-foundation.org: fix shift overflow]\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0bb7ba6b9c358c12084a3cbc6ac08c8d1e973937",
      "tree": "81dc745c660557af4d9ea8b9816846d0395ece20",
      "parents": [
        "937085aa35cc873d427d250a1e304d641af24628"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Tue Oct 16 01:24:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:52 2007 -0700"
      },
      "message": "readahead: mmap read-around simplification\n\nFold file_ra_state.mmap_hit into file_ra_state.mmap_miss and make it an int.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "937085aa35cc873d427d250a1e304d641af24628",
      "tree": "99b0d2d9e6721a72e65b4cb5ad0fc30ec04f4aa2",
      "parents": [
        "43fac94dd62667c83dd2daa5b7ac548512af780a"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Tue Oct 16 01:24:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:52 2007 -0700"
      },
      "message": "readahead: compacting file_ra_state\n\nUse \u0027unsigned int\u0027 instead of \u0027unsigned long\u0027 for readahead sizes.\n\nThis helps reduce memory consumption on 64bit CPU when a lot of files are\nopened.\n\nCC: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43fac94dd62667c83dd2daa5b7ac548512af780a",
      "tree": "68b8cf73959afd24410f3f398bda5953c7dcbadd",
      "parents": [
        "39e91e433169bdfd5a312654e5988986662afd7f"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Oct 16 01:24:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:52 2007 -0700"
      },
      "message": "Clean up duplicate includes in mm/\n\nThis patch cleans up duplicate includes in\n\tmm/\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39e91e433169bdfd5a312654e5988986662afd7f",
      "tree": "65e3e1fb9cc506b59be14cf58d3fb0d309be3119",
      "parents": [
        "dcca2bde4f86a14d3291660bede8f1844fe2b3df"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Oct 16 01:24:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:52 2007 -0700"
      },
      "message": "Clean up duplicate includes in include/linux/memory_hotplug.h\n\nThis patch cleans up duplicate includes in\n\tinclude/linux/memory_hotplug.h\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nAcked-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dcca2bde4f86a14d3291660bede8f1844fe2b3df",
      "tree": "6beef48bb4eb715e091c7db87953328314471886",
      "parents": [
        "1cd7daa51baf0934882bf24a7ae378ec75df665e"
      ],
      "author": {
        "name": "Will Schmidt",
        "email": "will_schmidt@vnet.ibm.com",
        "time": "Tue Oct 16 01:24:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:52 2007 -0700"
      },
      "message": "During VM oom condition, kill all threads in process group\n\nWe have had complaints where a threaded application is left in a bad state\nafter one of it\u0027s threads is killed when we hit a VM: out_of_memory\ncondition.\n\nKilling just one of the process threads can leave the application in a bad\nstate, whereas killing the entire process group would allow for the\napplication to restart, or be otherwise handled, and makes it very obvious\nthat something has gone wrong.\n\nThis change allows the entire process group to be taken down, rather\nthan just the one thread.\n\nSigned-off-by: Will Schmidt \u003cwill_schmidt@vnet.ibm.com\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ian Molton \u003cspyro@f2s.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Richard Curnow \u003crc@rc0.org.uk\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1cd7daa51baf0934882bf24a7ae378ec75df665e",
      "tree": "496ea3e64fc65d01e37f5013b44354ceb8ed3712",
      "parents": [
        "d29eff7bca60c9ee401d691d4562a4abca8de543"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Oct 16 01:24:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:51 2007 -0700"
      },
      "message": "slub.c:early_kmem_cache_node_alloc() shouldn\u0027t be __init\n\nWARNING: mm/built-in.o(.text+0x24bd3): Section mismatch: reference to .init.text:early_kmem_cache_node_alloc (between \u0027init_kmem_cache_nodes\u0027 and \u0027calculate_sizes\u0027)\n...\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-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": "d29eff7bca60c9ee401d691d4562a4abca8de543",
      "tree": "86715dfec0470a59d3bbad032b3032321f101766",
      "parents": [
        "46644c2477c58906e95281636d04e9cc42b39352"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Oct 16 01:24:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:51 2007 -0700"
      },
      "message": "ppc64: SPARSEMEM_VMEMMAP support\n\nEnable virtual memmap support for SPARSEMEM on PPC64 systems.  Slice a 16th\noff the end of the linear mapping space and use that to hold the vmemmap.\nUses the same size mapping as uses in the linear 1:1 kernel mapping.\n\n[pbadari@gmail.com: fix warning]\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Badari Pulavarty \u003cpbadari@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": "46644c2477c58906e95281636d04e9cc42b39352",
      "tree": "fd02fa96c5f55fc94a2db71abc0c2c389a69a33e",
      "parents": [
        "ef229c5a5e7701ab08a6a06258f415b150348bcc"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 16 01:24:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:51 2007 -0700"
      },
      "message": "SPARC64: SPARSEMEM_VMEMMAP support\n\n[apw@shadowen.org: style fixups]\n[apw@shadowen.org: vmemmap sparc64: convert to new config options]\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef229c5a5e7701ab08a6a06258f415b150348bcc",
      "tree": "606a128b3408ca39b95e1bdd93ad17dd2a9d9f33",
      "parents": [
        "0889eba5b38f66d7d892a167d88284daddd3d43b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 01:24:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:51 2007 -0700"
      },
      "message": "IA64: SPARSEMEM_VMEMMAP 16K page size support\n\nEquip IA64 sparsemem with a virtual memmap.  This is similar to the existing\nCONFIG_VIRTUAL_MEM_MAP functionality for DISCONTIGMEM.  It uses a PAGE_SIZE\nmapping.\n\nThis is provided as a minimally intrusive solution.  We split the 128TB\nVMALLOC area into two 64TB areas and use one for the virtual memmap.\n\nThis should replace CONFIG_VIRTUAL_MEM_MAP long term.\n\n[apw@shadowen.org: convert to new helper based initialisation]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0889eba5b38f66d7d892a167d88284daddd3d43b",
      "tree": "adb578bb92cc18dbf842a9bde67e3861db030557",
      "parents": [
        "29c71111d0557385328211b130246a90f9223b46"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 01:24:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:51 2007 -0700"
      },
      "message": "x86_64: SPARSEMEM_VMEMMAP 2M page size support\n\nx86_64 uses 2M page table entries to map its 1-1 kernel space.  We also\nimplement the virtual memmap using 2M page table entries.  So there is no\nadditional runtime overhead over FLATMEM, initialisation is slightly more\ncomplex.  As FLATMEM still references memory to obtain the mem_map pointer and\nSPARSEMEM_VMEMMAP uses a compile time constant, SPARSEMEM_VMEMMAP should be\nsuperior.\n\nWith this SPARSEMEM becomes the most efficient way of handling virt_to_page,\npfn_to_page and friends for UP, SMP and NUMA on x86_64.\n\n[apw@shadowen.org: code resplit, style fixups]\n[apw@shadowen.org: vmemmap x86_64: ensure end of section memmap is initialised]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29c71111d0557385328211b130246a90f9223b46",
      "tree": "5588a49ee548d38e15bd7541cec29e069b9e457c",
      "parents": [
        "8f6aac419bd590f535fb110875a51f7db2b62b5b"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Oct 16 01:24:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:51 2007 -0700"
      },
      "message": "vmemmap: generify initialisation via helpers\n\nConvert the common vmemmap population into initialisation helpers for use by\narchitecture vmemmap populators.  All architecture implementing the\nSPARSEMEM_VMEMMAP variant supply an architecture specific vmemmap_populate()\ninitialiser, which may make use of the helpers.\n\nThis allows us to clean up and remove the initialisation Kconfig entries.\nWith this patch there is a single SPARSEMEM_VMEMMAP_ENABLE Kconfig option to\nindicate use of that variant.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-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": "8f6aac419bd590f535fb110875a51f7db2b62b5b",
      "tree": "64e73e9f7a4b5a68648a2b4b16e66307c3d8d3cf",
      "parents": [
        "540557b9439ec19668553830c90222f9fb0c2e95"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 01:24:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:51 2007 -0700"
      },
      "message": "Generic Virtual Memmap support for SPARSEMEM\n\nSPARSEMEM is a pretty nice framework that unifies quite a bit of code over all\nthe arches.  It would be great if it could be the default so that we can get\nrid of various forms of DISCONTIG and other variations on memory maps.  So far\nwhat has hindered this are the additional lookups that SPARSEMEM introduces\nfor virt_to_page and page_address.  This goes so far that the code to do this\nhas to be kept in a separate function and cannot be used inline.\n\nThis patch introduces a virtual memmap mode for SPARSEMEM, in which the memmap\nis mapped into a virtually contigious area, only the active sections are\nphysically backed.  This allows virt_to_page page_address and cohorts become\nsimple shift/add operations.  No page flag fields, no table lookups, nothing\ninvolving memory is required.\n\nThe two key operations pfn_to_page and page_to_page become:\n\n   #define __pfn_to_page(pfn)      (vmemmap + (pfn))\n   #define __page_to_pfn(page)     ((page) - vmemmap)\n\nBy having a virtual mapping for the memmap we allow simple access without\nwasting physical memory.  As kernel memory is typically already mapped 1:1\nthis introduces no additional overhead.  The virtual mapping must be big\nenough to allow a struct page to be allocated and mapped for all valid\nphysical pages.  This vill make a virtual memmap difficult to use on 32 bit\nplatforms that support 36 address bits.\n\nHowever, if there is enough virtual space available and the arch already maps\nits 1-1 kernel space using TLBs (f.e.  true of IA64 and x86_64) then this\ntechnique makes SPARSEMEM lookups even more efficient than CONFIG_FLATMEM.\nFLATMEM needs to read the contents of the mem_map variable to get the start of\nthe memmap and then add the offset to the required entry.  vmemmap is a\nconstant to which we can simply add the offset.\n\nThis patch has the potential to allow us to make SPARSMEM the default (and\neven the only) option for most systems.  It should be optimal on UP, SMP and\nNUMA on most platforms.  Then we may even be able to remove the other memory\nmodels: FLATMEM, DISCONTIG etc.\n\n[apw@shadowen.org: config cleanups, resplit code etc]\n[kamezawa.hiroyu@jp.fujitsu.com: Fix sparsemem_vmemmap init]\n[apw@shadowen.org: vmemmap: remove excess debugging]\n[apw@shadowen.org: simplify initialisation code and reduce duplication]\n[apw@shadowen.org: pull out the vmemmap code into its own file]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "540557b9439ec19668553830c90222f9fb0c2e95",
      "tree": "07dfa0e88580d4101dbb11ebc59348233e18b2f0",
      "parents": [
        "cd881a6b22902b356cacf8fd2e4e895871068eec"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Oct 16 01:24:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:51 2007 -0700"
      },
      "message": "sparsemem: record when a section has a valid mem_map\n\nWe have flags to indicate whether a section actually has a valid mem_map\nassociated with it.  This is never set and we rely solely on the present bit\nto indicate a section is valid.  By definition a section is not valid if it\nhas no mem_map and there is a window during init where the present bit is set\nbut there is no mem_map, during which pfn_valid() will return true\nincorrectly.\n\nUse the existing SECTION_HAS_MEM_MAP flag to indicate the presence of a valid\nmem_map.  Switch valid_section{,_nr} and pfn_valid() to this bit.  Add a new\npresent_section{,_nr} and pfn_present() interfaces for those users who care to\nknow that a section is going to be valid.\n\n[akpm@linux-foundation.org: coding-syle fixes]\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd881a6b22902b356cacf8fd2e4e895871068eec",
      "tree": "e26ecdf5ef148b34b1b827ce4da083194c022984",
      "parents": [
        "74a0b5762713a26496db72eac34fbbed46f20fce"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Oct 16 01:24:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:51 2007 -0700"
      },
      "message": "sparsemem: clean up spelling error in comments\n\nSPARSEMEM is a pretty nice framework that unifies quite a bit of code over all\nthe arches.  It would be great if it could be the default so that we can get\nrid of various forms of DISCONTIG and other variations on memory maps.  So far\nwhat has hindered this are the additional lookups that SPARSEMEM introduces\nfor virt_to_page and page_address.  This goes so far that the code to do this\nhas to be kept in a separate function and cannot be used inline.\n\nThis patch introduces a virtual memmap mode for SPARSEMEM, in which the memmap\nis mapped into a virtually contigious area, only the active sections are\nphysically backed.  This allows virt_to_page page_address and cohorts become\nsimple shift/add operations.  No page flag fields, no table lookups, nothing\ninvolving memory is required.\n\nThe two key operations pfn_to_page and page_to_page become:\n\n   #define __pfn_to_page(pfn)      (vmemmap + (pfn))\n   #define __page_to_pfn(page)     ((page) - vmemmap)\n\nBy having a virtual mapping for the memmap we allow simple access without\nwasting physical memory.  As kernel memory is typically already mapped 1:1\nthis introduces no additional overhead.  The virtual mapping must be big\nenough to allow a struct page to be allocated and mapped for all valid\nphysical pages.  This vill make a virtual memmap difficult to use on 32 bit\nplatforms that support 36 address bits.\n\nHowever, if there is enough virtual space available and the arch already maps\nits 1-1 kernel space using TLBs (f.e.  true of IA64 and x86_64) then this\ntechnique makes SPARSEMEM lookups even more efficient than CONFIG_FLATMEM.\nFLATMEM needs to read the contents of the mem_map variable to get the start of\nthe memmap and then add the offset to the required entry.  vmemmap is a\nconstant to which we can simply add the offset.\n\nThis patch has the potential to allow us to make SPARSMEM the default (and\neven the only) option for most systems.  It should be optimal on UP, SMP and\nNUMA on most platforms.  Then we may even be able to remove the other memory\nmodels: FLATMEM, DISCONTIG etc.\n\nThe current aim is to bring a common virtually mapped mem_map to all\narchitectures.  This should facilitate the removal of the bespoke\nimplementations from the architectures.  This also brings performance\nimprovements for most architecture making sparsmem vmemmap the more desirable\nmemory model.  The ultimate aim of this work is to expand sparsemem support to\nencompass all the features of the other memory models.  This could allow us to\ndrop support for and remove the other models in the longer term.\n\nBelow are some comparitive kernbench numbers for various architectures,\ncomparing default memory model against SPARSEMEM VMEMMAP.  All but ia64 show\nmarginal improvement; we expect the ia64 figures to be sorted out when the\nlarger mapping support returns.\n\nx86-64 non-NUMA\n             Base    VMEMAP    % change (-ve good)\nUser        85.07     84.84    -0.26\nSystem      34.32     33.84    -1.39\nTotal      119.38    118.68    -0.59\n\nia64\n             Base    VMEMAP    % change (-ve good)\nUser      1016.41   1016.93    0.05\nSystem      50.83     51.02    0.36\nTotal     1067.25   1067.95    0.07\n\nx86-64 NUMA\n             Base   VMEMAP    % change (-ve good)\nUser        30.77   431.73     0.22\nSystem      45.39    43.98    -3.11\nTotal      476.17   475.71    -0.10\n\nppc64\n             Base   VMEMAP    % change (-ve good)\nUser       488.77   488.35    -0.09\nSystem      56.92    56.37    -0.97\nTotal      545.69   544.72    -0.18\n\nBelow are some AIM bencharks on IA64 and x86-64 (thank Bob).  The seems\npretty much flat as you would expect.\n\nia64 results 2 cpu non-numa 4Gb SCSI disk\n\nBenchmark\tVersion\tMachine\tRun Date\nAIM Multiuser Benchmark - Suite VII\t\"1.1\"\textreme\tJun  1 07:17:24 2007\n\nTasks\tJobs/Min\tJTI\tReal\tCPU\tJobs/sec/task\n1\t98.9\t\t100\t58.9\t1.3\t1.6482\n101\t5547.1\t\t95\t106.0\t79.4\t0.9154\n201\t6377.7\t\t95\t183.4\t158.3\t0.5288\n301\t6932.2\t\t95\t252.7\t237.3\t0.3838\n401\t7075.8\t\t93\t329.8\t316.7\t0.2941\n501\t7235.6\t\t94\t403.0\t396.2\t0.2407\n600\t7387.5\t\t94\t472.7\t475.0\t0.2052\n\nBenchmark\tVersion\tMachine\tRun Date\nAIM Multiuser Benchmark - Suite VII\t\"1.1\"\tvmemmap\tJun  1 09:59:04 2007\n\nTasks\tJobs/Min\tJTI\tReal\tCPU\tJobs/sec/task\n1\t99.1\t\t100\t58.8\t1.2\t1.6509\n101\t5480.9\t\t95\t107.2\t79.2\t0.9044\n201\t6490.3\t\t95\t180.2\t157.8\t0.5382\n301\t6886.6\t\t94\t254.4\t236.8\t0.3813\n401\t7078.2\t\t94\t329.7\t316.0\t0.2942\n501\t7250.3\t\t95\t402.2\t395.4\t0.2412\n600\t7399.1\t\t94\t471.9\t473.9\t0.2055\n\nopen power 710 2 cpu, 4 Gb, SCSI and configured physically\n\nBenchmark\tVersion\tMachine\tRun Date\nAIM Multiuser Benchmark - Suite VII\t\"1.1\"\textreme\tMay 29 15:42:53 2007\n\nTasks\tJobs/Min\tJTI\tReal\tCPU\tJobs/sec/task\n1\t25.7\t\t100\t226.3\t4.3\t0.4286\n101\t1096.0\t\t97\t536.4\t199.8\t0.1809\n201\t1236.4\t\t96\t946.1\t389.1\t0.1025\n301\t1280.5\t\t96\t1368.0\t582.3\t0.0709\n401\t1270.2\t\t95\t1837.4\t771.0\t0.0528\n501\t1251.4\t\t96\t2330.1\t955.9\t0.0416\n601\t1252.6\t\t96\t2792.4\t1139.2\t0.0347\n701\t1245.2\t\t96\t3276.5\t1334.6\t0.0296\n918\t1229.5\t\t96\t4345.4\t1728.7\t0.0223\n\nBenchmark\tVersion\tMachine\tRun Date\nAIM Multiuser Benchmark - Suite VII\t\"1.1\"\tvmemmap\tMay 30 07:28:26 2007\n\nTasks\tJobs/Min\tJTI\tReal\tCPU\tJobs/sec/task\n1\t25.6\t\t100\t226.9\t4.3\t0.4275\n101\t1049.3\t\t97\t560.2\t198.1\t0.1731\n201\t1199.1\t\t97\t975.6\t390.7\t0.0994\n301\t1261.7\t\t96\t1388.5\t591.5\t0.0699\n401\t1256.1\t\t96\t1858.1\t771.9\t0.0522\n501\t1220.1\t\t96\t2389.7\t955.3\t0.0406\n601\t1224.6\t\t96\t2856.3\t1133.4\t0.0340\n701\t1252.0\t\t96\t3258.7\t1314.1\t0.0298\n915\t1232.8\t\t96\t4319.7\t1704.0\t0.0225\n\namd64 2 2-core, 4Gb and SATA\n\nBenchmark\tVersion\tMachine\tRun Date\nAIM Multiuser Benchmark - Suite VII\t\"1.1\"\textreme\tJun  2 03:59:48 2007\n\nTasks\tJobs/Min\tJTI\tReal\tCPU\tJobs/sec/task\n1\t13.0\t\t100\t446.4\t2.1\t0.2173\n101\t533.4\t\t97\t1102.0\t110.2\t0.0880\n201\t578.3\t\t97\t2022.8\t220.8\t0.0480\n301\t583.8\t\t97\t3000.6\t332.3\t0.0323\n401\t580.5\t\t97\t4020.1\t442.2\t0.0241\n501\t574.8\t\t98\t5072.8\t558.8\t0.0191\n600\t566.5\t\t98\t6163.8\t671.0\t0.0157\n\nBenchmark\tVersion\tMachine\tRun Date\nAIM Multiuser Benchmark - Suite VII\t\"1.1\"\tvmemmap\tJun  3 04:19:31 2007\n\nTasks\tJobs/Min\tJTI\tReal\tCPU\tJobs/sec/task\n1\t13.0\t\t100\t447.8\t2.0\t0.2166\n101\t536.5\t\t97\t1095.6\t109.7\t0.0885\n201\t567.7\t\t97\t2060.5\t219.3\t0.0471\n301\t582.1\t\t96\t3009.4\t330.2\t0.0322\n401\t578.2\t\t96\t4036.4\t442.4\t0.0240\n501\t585.1\t\t98\t4983.2\t555.1\t0.0195\n600\t565.5\t\t98\t6175.2\t660.6\t0.0157\n\nThis patch:\n\nFix some spelling errors.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74a0b5762713a26496db72eac34fbbed46f20fce",
      "tree": "4a14df7c07ebc16283454f33713519a0e10b5c43",
      "parents": [
        "d5a7430ddcdb598261d70f7eb1bf450b5be52085"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Oct 16 01:24:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "x86: optimize page faults like all other achitectures and kill notifier cruft\n\nx86(-64) are the last architectures still using the page fault notifier\ncruft for the kprobes page fault hook.  This patch converts them to the\nproper direct calls, and removes the now unused pagefault notifier bits\naswell as the cruft in kprobes.c that was related to this mess.\n\nI know Andi didn\u0027t really like this, but all other architecture maintainers\nagreed the direct calls are much better and besides the obvious cruft\nremoval a common way of dealing with kprobes across architectures is\nimportant aswell.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix sparc64]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5a7430ddcdb598261d70f7eb1bf450b5be52085",
      "tree": "3b94672e0dbc2bff125de3266908f1a47a17b795",
      "parents": [
        "083576112940fda783d716fd5ccc744f81667b2f"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Tue Oct 16 01:24:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "Convert cpu_sibling_map to be a per cpu variable\n\nConvert cpu_sibling_map from a static array sized by NR_CPUS to a per_cpu\nvariable.  This saves sizeof(cpumask_t) * NR unused cpus.  Access is mostly\nfrom startup and CPU HOTPLUG functions.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "083576112940fda783d716fd5ccc744f81667b2f",
      "tree": "226139e7cb9863c91d1e2a1ac0babb0db94f3d11",
      "parents": [
        "cc84634f29d5a92932400a2d52ca17dee2c8a462"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Tue Oct 16 01:24:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "x86: Convert cpu_core_map to be a per cpu variable\n\nThis is from an earlier message from \u0027Christoph Lameter\u0027:\n\n    cpu_core_map is currently an array defined using NR_CPUS. This means that\n    we overallocate since we will rarely really use maximum configured cpu.\n\n    If we put the cpu_core_map into the per cpu area then it will be allocated\n    for each processor as it comes online.\n\n    This means that the core map cannot be accessed until the per cpu area\n    has been allocated. Xen does a weird thing here looping over all processors\n    and zeroing the masks that are not yet allocated and that will be zeroed\n    when they are allocated. I commented the code out.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc84634f29d5a92932400a2d52ca17dee2c8a462",
      "tree": "12f4db933f3051b00386c1b4e9bf990c85b79908",
      "parents": [
        "37a6c7d0096bb54daa2cf3cc66a66bdbb57cb204"
      ],
      "author": {
        "name": "Maik Broemme",
        "email": "mbroemme@plusserver.de",
        "time": "Tue Oct 16 01:24:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "Add support for Wacom WACF007 and WACF008 to serial pnp driver\n\nNotebook manufacturer seems to built a newer Wacom pen enabled tablet to\nrecent tablet pcs which are not recognized by the serial pnp driver.\n\nAttached is a patch which makes the newer Wacom WACF007 and WACF008 tablets\nuseable with the serial driver.  The device is fully compatible with it.\n\nSigned-off-by: Maik Broemme \u003cmbroemme@plusserver.de\u003e\nCc: Andrey Panin \u003cpazke@orbita1.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "37a6c7d0096bb54daa2cf3cc66a66bdbb57cb204",
      "tree": "dcd513ca2957ba58fc68584613e2c45bee835308",
      "parents": [
        "b3b708fa2780cd2b5d8266a8f0c3a1cab364d4d2"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Tue Oct 16 01:24:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "serial_txx9: Use UPF_FIXED_PORT\n\nThe UPF_FIXED_PORT flags was introduced in 2.6.22 and it can be used\ninstead of the driver specific verify_port routine.\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3b708fa2780cd2b5d8266a8f0c3a1cab364d4d2",
      "tree": "af7c490d02118c59bf17cb0c3e055e149f38f147",
      "parents": [
        "aa5346a2126ea65e8ef04eebea0f2481f701bdb8"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Tue Oct 16 01:24:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "wake up from a serial port\n\nEnable wakeup from serial ports, make it run-time configurable over sysfs,\ne.g.,\n\necho enabled \u003e /sys/devices/platform/serial8250.0/tty/ttyS0/power/wakeup\n\nRequires\n\n# CONFIG_SYSFS_DEPRECATED is not set\n\nFollowing suggestions from Alan and Russell moved the may_wake_up checks\nto serial_core.c. This time actually tested - it does even work. Could\nsomeone, please, verify, that put_device after device_find_child is\ncorrect?\n\nAlso would be nice to test with a Natsemi UART, that can wake up the system,\nif such systems exist.\n\nFor this you just have to apply the patch below, issue the above \"echo\"\ncommand to one of your Natsemi port, suspend and resume your system, and\nverify that your Natsemi port still works.  If you are actually capable of\nwaking up the system from that port, would be nice to test that as well.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aa5346a2126ea65e8ef04eebea0f2481f701bdb8",
      "tree": "a7d59e9cc61482d379baa676f9455c29529fa849",
      "parents": [
        "bf0df636e5ddf43cbacff8435962ee8aa40f563e"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Tue Oct 16 01:24:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "provide stubs for enable_irq_wake() and disable_irq_wake()\n\nProvide {enable,disable}_irq_wakeup dummies for undefined\ncross-compilers for platforms without CONFIG_GENERIC_IRQ.\n\nNeeded by wake-up-from-a-serial-port.patch\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: 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": "bf0df636e5ddf43cbacff8435962ee8aa40f563e",
      "tree": "5bbf1cc53eed746e96ebc03017da1986de120a16",
      "parents": [
        "7201863ca7a97e83daea1ea2755750a256245600"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Oct 16 01:24:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "8250_pci: Autodetect mainpine cards\n\nAdd support for a whole range of boards. Some are partly autodetected but\nnot fully correctly others (PCI Express notably) not at all. Stick all\nthe right entries in.\n\nThanks to Mainpine for information and testing.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7201863ca7a97e83daea1ea2755750a256245600",
      "tree": "2634ae0a3246a7c6c2202e35615c41853a22994e",
      "parents": [
        "43d9f7fda11a3413c99fbbde35005ec3138eb865"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Tue Oct 16 01:23:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "serial_txx9: cleanup includes\n\nDo not include some header files already indluded by serial_core.h.\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43d9f7fda11a3413c99fbbde35005ec3138eb865",
      "tree": "e5c6189e085921aa74d6831476001c402af4c23e",
      "parents": [
        "32e8f70230c0c417490787b3f48b6ed6c48e7ec9"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Tue Oct 16 01:23:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "pcmcia: use DMA_MASK_NONE for the default for all pcmcia devices\n\nMost non cardbus devices can\u0027t do dma, so flag them as such in the device\ncreation routine.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Natalie Protasevich \u003cprotasnb@gmail.com\u003e\nCc: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32e8f70230c0c417490787b3f48b6ed6c48e7ec9",
      "tree": "54ef9f6c8960ab2a9634d0d82d69d6049bc6f3fb",
      "parents": [
        "64da82efae0d7b5f7c478021840fd329f76d965d"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Tue Oct 16 01:23:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "introduce DMA_MASK_NONE as a signal for unable to do DMA\n\nSome devices are incapable of DMA and need to be recognised as such.\nIntroduce a NONE dma mask to facilitate this plus an inline function:\nis_device_dma_capable() to check this.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Natalie Protasevich \u003cprotasnb@gmail.com\u003e\nCc: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64da82efae0d7b5f7c478021840fd329f76d965d",
      "tree": "be328a9afab6619368e300ecbe37c976425e5af3",
      "parents": [
        "dc0cf6a263d5a094d8c17287407aad1032a613b3"
      ],
      "author": {
        "name": "Eric Leblond",
        "email": "eric@inl.fr",
        "time": "Tue Oct 16 01:23:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "Add support for PCMCIA card Sierra WIreless AC850\n\nAdd support for Sierra Wireless AC850 which has the same Ids as the\nAC710/750 but has a different firmware.\n\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dc0cf6a263d5a094d8c17287407aad1032a613b3",
      "tree": "71bf5e86e21f55b8838f02b6b8af7ba7238c0f3b",
      "parents": [
        "b5446b514c00b3034017609ec4e5a09117b9c8fd"
      ],
      "author": {
        "name": "Daniel Ritz",
        "email": "daniel.ritz-ml@swissonline.ch",
        "time": "Tue Oct 16 01:23:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "pcmcia: cistpl: use get_unaligned() in CIS parsing\n\nBased on a patch by Haavard Skinnemoen posted to linux-pcmcia, but using\nstatic inlines for readability reasons.  this should fix PCMCIA an AVR32\n\nSigned-off-by: Daniel Ritz \u003cdaniel.ritz@gmx.ch\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b5446b514c00b3034017609ec4e5a09117b9c8fd",
      "tree": "eae9d9b8619cd5c92cd29b84217ac5a2289108cb",
      "parents": [
        "24d6572b4f7eae3d015e0e5027df761b3ce4ebcd"
      ],
      "author": {
        "name": "Yoichi Yuasa",
        "email": "yoichi_yuasa@tripeaks.co.jp",
        "time": "Tue Oct 16 01:23:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "move a few definitions to au1000_xxs1500.c\n\nOnly a few definitions is in xxs1500.h .\nThey can be move to au1000_xxs1500.c .\n\n[m.kozlowski@tuxland.pl: fix unbalanced parenthesis]\nSigned-off-by: Yoichi Yuasa \u003cyoichi_yuasa@tripeaks.co.jp\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "24d6572b4f7eae3d015e0e5027df761b3ce4ebcd",
      "tree": "9cd3136ca46055b6d4e78f180234529c948939c2",
      "parents": [
        "42c5323cdd6a30df9ff681dd0adefbe4037c7fd9"
      ],
      "author": {
        "name": "Milan Plzik",
        "email": "milan.plzik@gmail.com",
        "time": "Tue Oct 16 01:23:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:49 2007 -0700"
      },
      "message": "pxa2xx PCMCIA timing issue on iPAQ H5550\n\nRecently I\u0027ve been trying to get working PCMCIA interface on H5000 ipaq\nseries, using dual PCMCIA sleeve.  So far things work correctly, but I had\nto do one modification to drivers/pcmcia/pxa2xx_base.c to get the interface\nworking with orinoco gold PCMCIA card (wired pcnet_cs ethernet card worked\neven without this modification).\n\nThe issue has something to do with assert time on PCMCIA bus, but I\u0027m not\nreally sure what -- I found the working value just by trial\u0026error approach.\n I\u0027m not sure how is the assert value in pxa2xx_mcxx_asst calculated (I\nknow, simple formula, but the reason why is it calculated that way is not\nobvious for me), neither that my modification is correct.  It just works\nwith iPAQ.\n\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42c5323cdd6a30df9ff681dd0adefbe4037c7fd9",
      "tree": "f5d91f22a3c42475ee5eb9ba8f460195ff7e3b97",
      "parents": [
        "0322a2b84096270c238da45f444bd3c9eb6f5e9c"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@linux01.gwdg.de",
        "time": "Tue Oct 16 01:23:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:49 2007 -0700"
      },
      "message": "Use menuconfig objects: PCMCIA\n\nUse menuconfigs instead of menus, so the whole menu can be disabled at once\ninstead of going through all options.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@gmx.de\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0322a2b84096270c238da45f444bd3c9eb6f5e9c",
      "tree": "a529c4f512de3867f7c2373d1cc7f3171673ac66",
      "parents": [
        "bfe8df3d314bddf30758bd738e0087e80964760c"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue Oct 16 01:23:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:49 2007 -0700"
      },
      "message": "Add assembler equivalents to __init{,date}_refok\n\nI need __INIT_REFOK to fix a MODPOST warning for a few MIPS configs which\nhave to call init code from .text very early in the game due to bootloader\nissues.  __INITDATA_REFOK is just for consistency.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bfe8df3d314bddf30758bd738e0087e80964760c",
      "tree": "d04db4fb2592e2d416073681903f05f5b30f204b",
      "parents": [
        "1bcf548293aef19b0797348332cf1dfbf2116cef"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Tue Oct 16 01:23:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:49 2007 -0700"
      },
      "message": "slow down printk during boot\n\nOptionally add a boot delay after each kernel printk() call, crudely\nmeasured in milliseconds, with a maximum delay of 10 seconds per printk.\n\nEnable CONFIG_BOOT_PRINTK_DELAY\u003dy and then add (e.g.):\n\"lpj\u003dloops_per_jiffy boot_delay\u003d100\"\nto the kernel command line.\n\nIt has been useful in cases like \"during boot, my machine just reboots or the\nscreen goes black\" by slowing down printk, (and adding initcall_debug), we can\nusually see the last thing that happened before the lights went out which is\nusually a valuable clue.\n\n[akpm@linux-foundation.org: not all architectures implement CONFIG_HZ]\n[akpm@linux-foundation.org: fix lots of stuff]\n[bunk@stusta.de: kernel/printk.c: make 2 variables static]\n[heiko.carstens@de.ibm.com: fix slow down printk on boot compile error]\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.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": "1bcf548293aef19b0797348332cf1dfbf2116cef",
      "tree": "80b2535e3dd2a6d23c15b91e10cae227310a44ee",
      "parents": [
        "e6716b87d5c9edf19c711212785cd30c6ec21868"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue Oct 16 01:23:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:49 2007 -0700"
      },
      "message": "Consolidate PTRACE_DETACH\n\nIdentical handlers of PTRACE_DETACH go into ptrace_request().\nNot touching compat code.\nNot touching archs that don\u0027t call ptrace_request.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6716b87d5c9edf19c711212785cd30c6ec21868",
      "tree": "0059d64ffe0828252b3639ead94a47122eb9f135",
      "parents": [
        "fd39c86b3d8910fbafe41207135c1d72bc895614"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Oct 15 17:30:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 17:56:36 2007 -0700"
      },
      "message": "docbook: fix filesystems content\n\nFix filesystems docbook warnings.\n\nWarning(linux-2.6.23-git8//fs/debugfs/file.c:241): No description found for parameter \u0027name\u0027\nWarning(linux-2.6.23-git8//fs/debugfs/file.c:241): No description found for parameter \u0027mode\u0027\nWarning(linux-2.6.23-git8//fs/debugfs/file.c:241): No description found for parameter \u0027parent\u0027\nWarning(linux-2.6.23-git8//fs/debugfs/file.c:241): No description found for parameter \u0027value\u0027\nWarning(linux-2.6.23-git8//include/linux/jbd.h:404): No description found for parameter \u0027h_lockdep_map\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd39c86b3d8910fbafe41207135c1d72bc895614",
      "tree": "f579ddb40c02193ca5792bc0db7a232727902dc3",
      "parents": [
        "c5d0e6a0d225c03b59a0a70f940e439085235ba2"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Oct 15 17:30:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 17:56:36 2007 -0700"
      },
      "message": "docbook: fix usb content\n\nFix USB docbook warnings.\n\nWarning(linux-2.6.23-git8//include/linux/usb/gadget.h:487): No description found for parameter \u0027g\u0027\nWarning(linux-2.6.23-git8//include/linux/usb/gadget.h:506): No description found for parameter \u0027g\u0027\n\nWarning(linux-2.6.23-git8//drivers/usb/core/hub.c:1416): No description found for parameter \u0027usb_dev\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c5d0e6a0d225c03b59a0a70f940e439085235ba2",
      "tree": "c041f599955a1e9ac97416da2307ac9050612cfe",
      "parents": [
        "23f9b75e79f6fbe438a20d10a11ca45a14b8a584"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Oct 15 17:29:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 17:56:36 2007 -0700"
      },
      "message": "docbook: fix libata content\n\nFix libata docbook warnings.\n\nWarning(linux-2.6.23-git8//drivers/ata/libata-scsi.c:3251): No description found for parameter \u0027dev\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "23f9b75e79f6fbe438a20d10a11ca45a14b8a584",
      "tree": "4e0c762a8996aca8d8a11ccca862a00d7798a77c",
      "parents": [
        "65a6ec0d72a07f16719e9b7a96e1c4bae044b591"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Oct 15 17:29:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 17:56:36 2007 -0700"
      },
      "message": "docbook: fix kernel-api content\n\nFix kernel-api docbook warnings.\n\nWarning(linux-2.6.23-git8//drivers/message/fusion/mptscsih.c:2618): No description found for parameter \u0027sc\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "65a6ec0d72a07f16719e9b7a96e1c4bae044b591",
      "tree": "344e03a5039a44982c1b78d6113633b21b434820",
      "parents": [
        "541010e4b8921cd781ff02ae68028501457045b6",
        "0181b61a988424b5cc44fe09e6968142359c815e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 16:08:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 16:08:50 2007 -0700"
      },
      "message": "Merge branch \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm\n\n* \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm: (95 commits)\n  [ARM] 4578/1: CM-x270: PCMCIA support\n  [ARM] 4577/1: ITE 8152 PCI bridge support\n  [ARM] 4576/1: CM-X270 machine support\n  [ARM] pxa: Avoid pxa_gpio_mode() in gpio_direction_{in,out}put()\n  [ARM] pxa: move pxa_set_mode() from pxa2xx_mainstone.c to mainstone.c\n  [ARM] pxa: move pxa_set_mode() from pxa2xx_lubbock.c to lubbock.c\n  [ARM] pxa: Make cpu_is_pxaXXX dependent on configuration symbols\n  [ARM] pxa: PXA3xx base support\n  [NET] smc91x: fix PXA DMA support code\n  [SERIAL] Fix console initialisation ordering\n  [ARM] pxa: tidy up arch/arm/mach-pxa/Makefile\n  [ARM] Update arch/arm/Kconfig for drivers/Kconfig changes\n  [ARM] 4600/1: fix kernel build failure with build-id-supporting binutils\n  [ARM] 4599/1: Preserve ATAG list for use with kexec (2.6.23)\n  [ARM] Rename consistent_sync() as dma_cache_maint()\n  [ARM] 4572/1: ep93xx: add cirrus logic edb9307 support\n  [ARM] 4596/1: S3C2412: Correct IRQs for SDI+CF and add decoding support\n  [ARM] 4595/1: ns9xxx: define registers as void __iomem * instead of volatile u32\n  [ARM] 4594/1: ns9xxx: use the new gpio functions\n  [ARM] 4593/1: ns9xxx: implement generic clockevents\n  ...\n"
    },
    {
      "commit": "541010e4b8921cd781ff02ae68028501457045b6",
      "tree": "58bd529d4c6e69899a0aa20afa2d7f1c23326417",
      "parents": [
        "e457f790d8b05977853aa238bbc667b3bb375671",
        "5e7fc436426b1f9e106f511a049de91c82ec2c53"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 16:07:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 16:07:40 2007 -0700"
      },
      "message": "Merge branch \u0027locks\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027locks\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd: remove IS_ISMNDLCK macro\n  Rework /proc/locks via seq_files and seq_list helpers\n  fs/locks.c: use list_for_each_entry() instead of list_for_each()\n  NFS: clean up explicit check for mandatory locks\n  AFS: clean up explicit check for mandatory locks\n  9PFS: clean up explicit check for mandatory locks\n  GFS2: clean up explicit check for mandatory locks\n  Cleanup macros for distinguishing mandatory locks\n  Documentation: move locks.txt in filesystems/\n  locks: add warning about mandatory locking races\n  Documentation: move mandatory locking documentation to filesystems/\n  locks: Fix potential OOPS in generic_setlease()\n  Use list_first_entry in locks_wake_up_blocks\n  locks: fix flock_lock_file() comment\n  Memory shortage can result in inconsistent flocks state\n  locks: kill redundant local variable\n  locks: reverse order of posix_locks_conflict() arguments\n"
    },
    {
      "commit": "e457f790d8b05977853aa238bbc667b3bb375671",
      "tree": "9a6688e306588d129c86e6e38e3be701c294f7fc",
      "parents": [
        "3d8a67b9f0428de3d8b76984c5c38675a7f4abd4",
        "0df333ce01fedad1f7a4f281063a02d76ba33a7d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 15:32:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 15:32:57 2007 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of ssh://master.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6\n\n* \u0027release\u0027 of ssh://master.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:\n  [IA64] build fix for scatterlist\n"
    },
    {
      "commit": "3d8a67b9f0428de3d8b76984c5c38675a7f4abd4",
      "tree": "ff081ef573efa91f90d4b970b9f5b00f363b29ee",
      "parents": [
        "a52cefc80fc92981592c688d1c8067442afe4cec"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 15 18:10:12 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 15 18:10:12 2007 -0400"
      },
      "message": "[libata] pata_cs5536: new API build fix\n\nThis driver was using hooks that were very recently removed.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "a52cefc80fc92981592c688d1c8067442afe4cec",
      "tree": "ad119b5a4f5e4a257779c0ef324b5c9354c915f1",
      "parents": [
        "fba956c46a72f9e7503fd464ffee43c632307e31",
        "4acad72ded8e3f0211bd2a762e23c28229c61a51"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 14:06:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 14:06:58 2007 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\n* \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)\n  [IPV6]: Consolidate the ip6_pol_route_(input|output) pair\n  [TCP]: Make snd_cwnd_cnt 32-bit\n  [TCP]: Update the /proc/net/tcp documentation\n  [NETNS]: Don\u0027t panic on creating the namespace\u0027s loopback\n  [NEIGH]: Ensure that pneigh_lookup is protected with RTNL\n  [INET]: kmalloc+memset -\u003e kzalloc in frag_alloc_queue\n  [ISDN]: Fix compile with CONFIG_ISDN_X25 disabled.\n  [IPV6]: Replace sk_buff ** with sk_buff * in input handlers\n  [SELINUX]: Update for netfilter -\u003ehook() arg changes.\n  [INET]: Consolidate the xxx_put\n  [INET]: Small cleanup for xxx_put after evictor consolidation\n  [INET]: Consolidate the xxx_evictor\n  [INET]: Consolidate the xxx_frag_destroy\n  [INET]: Consolidate xxx_the secret_rebuild\n  [INET]: Consolidate the xxx_frag_kill\n  [INET]: Collect common frag sysctl variables together\n  [INET]: Collect frag queues management objects together\n  [INET]: Move common fields from frag_queues in one place.\n  [TG3]: Fix performance regression on 5705.\n  [ISDN]: Remove local copy of device name to make sure renames work.\n  ...\n"
    },
    {
      "commit": "fba956c46a72f9e7503fd464ffee43c632307e31",
      "tree": "cfed8db36957085c6d7243a9c054f1f516bddaa6",
      "parents": [
        "f2e1d89f9b349b3cd914b7c6ec6368632f4ad048"
      ],
      "author": {
        "name": "Jeremy Katz",
        "email": "katzj@redhat.com",
        "time": "Mon Oct 15 16:45:10 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 13:54:40 2007 -0700"
      },
      "message": "Map volume and brightness events on thinkpads\n\nThere are standard keycodes for brightness and volume; map the events to\nemit them so that things work properly\n\nSigned-off-by: Jeremy Katz \u003ckatzj@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0df333ce01fedad1f7a4f281063a02d76ba33a7d",
      "tree": "edf68d3352f394e0713a236c05ba68233075a5e9",
      "parents": [
        "4937ce87959629d31e9b09cf5bdf1e12a305c805"
      ],
      "author": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Mon Oct 15 13:49:43 2007 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Mon Oct 15 13:49:43 2007 -0700"
      },
      "message": "[IA64] build fix for scatterlist\n\ninclude/scsi/scsi_eh.h:79: error: field `sense_sgl\u0027 has incomplete type\n\nx86 resolves this by including scatterlist.h from dma-mapping.h which\nseems as good a place as any.\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "f2e1d89f9b349b3cd914b7c6ec6368632f4ad048",
      "tree": "5b0042924a9f9c8b3309c0be880f51795916fc28",
      "parents": [
        "85ffdd28be04c324349dfc7c9de3d4342c885c3f",
        "82ba56c273911f7eda79849cfa0fc2d2e5a3b75b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 13:41:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 13:41:39 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (40 commits)\n  Input: use full RCU API\n  Input: remove tsdev interface\n  Input: add support for Blackfin BF54x Keypad controller\n  Input: appletouch - another fix for idle reset logic\n  HWMON: hdaps - switch to using input-polldev\n  Input: add support for SEGA Dreamcast keyboard\n  Input: omap-keyboard - don\u0027t pretend we support changing keymap\n  Input: lifebook - fix X and Y axis range\n  Input: usbtouchscreen - add support for GeneralTouch devices\n  Input: fix open count handling in input interfaces\n  Input: keyboard - add CapsShift lock\n  Input: adbhid - produce all CapsLock key events\n  Input: ALPS - add signature for ThinkPad R61\n  Input: jornada720_kbd - send MSC_SCAN events\n  Input: add support for the HP Jornada 7xx (710/720/728) touchscreen\n  Input: add support for HP Jornada 7xx onboard keyboard\n  Input: add support for HP Jornada onboard keyboard (HP6XX)\n  Input: ucb1400_ts - use schedule_timeout_uninterruptible\n  Input: xpad - fix dependancy on LEDS class\n  Input: auto-select INPUT for MAC_EMUMOUSEBTN option\n  ...\n\nResolved conflicts manually in drivers/hwmon/applesmc.c: converting from\na class device to a device and converting to use input-polldev created a\nfew apparently trivial clashes..\n"
    },
    {
      "commit": "85ffdd28be04c324349dfc7c9de3d4342c885c3f",
      "tree": "ff89600f2661d7abd5be7802bdb33c9d8d3f1fa4",
      "parents": [
        "43d39ae0cf8f891c35e8316948229c7cbffa3994",
        "77ec15cc265af2c165b7e39cadcaddb9e64aac3d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 13:31:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 13:31:14 2007 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:\n  [libata] pata_pcmcia: Add additional id string (corsair, 1GB)\n  libata: prevent devices with blank model names from being DMA blacklisted\n  ata_piix: SATA 2port controller port map fix\n  pata_cs5536: ATA driver for Geode companion chip\n  libata: add ST9160821AS / 3.CCD to NCQ blacklist\n  libata: fix revalidation issuing after configuration commands\n  [libata] sata_nv: add SW NCQ support for MCP51/MCP55/MCP61\n  [libata] pata_sil680: Add MMIO support\n"
    },
    {
      "commit": "43d39ae0cf8f891c35e8316948229c7cbffa3994",
      "tree": "c8af6999a9327c8b9bbc7384efe8f52f851ff3d8",
      "parents": [
        "63bd8c48e04bbbc9cee3d752857914609d8d406f",
        "84284d3c1d6372bc9ab496607661d230d9c45de4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 13:30:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 13:30:35 2007 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6\n\n* \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (35 commits)\n  xen-netfront: rearrange netfront structure to separate tx and rx\n  netdev: convert non-obvious instances to use ARRAY_SIZE()\n  ucc_geth: Fix build break introduced by commit 09f75cd7bf13720738e6a196cc0107ce9a5bd5a0\n  gianfar: Fix regression caused by new napi interface\n  gianfar: Cleanup compile warning caused by 0795af57\n  gianfar: Fix compile regression caused by bea3348e\n  add new prom.h for AU1x00\n  update AU1000 get_ethernet_addr()\n  MIPSsim: General cleanup\n  Jazzsonic: Fix warning about unused variable.\n  Remove msic_dcr_read() in axon_msi.c\n  Use dcr_host_t.base in dcr_unmap()\n  Add dcr_host_t.base in dcr_read()/dcr_write()\n  Use dcr_host_t.base in ibm_emac_mal\n  Update ibm_newemac to use dcr_host_t.base\n  tehuti: possible leak in bdx_probe\n  TC35815: Fix build\n  SAA9730: Fix build\n  AR7 ethernet\n  myri10ge: update driver version to 1.3.2-1.287\n  ...\n"
    },
    {
      "commit": "84284d3c1d6372bc9ab496607661d230d9c45de4",
      "tree": "3226b21ccb77955380ebfb1201c5714c88f1dc38",
      "parents": [
        "e9edda697ed7697f1288d0656570e49c47e204ae"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Mon Oct 15 12:59:53 2007 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 15 16:13:36 2007 -0400"
      },
      "message": "xen-netfront: rearrange netfront structure to separate tx and rx\n\nKeep tx and rx elements separate on different cachelines to prevent\nbouncing.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nCc: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    }
  ],
  "next": "63bd8c48e04bbbc9cee3d752857914609d8d406f"
}
