)]}'
{
  "log": [
    {
      "commit": "a12e4d304ce701844c639541d90df86e165d03f9",
      "tree": "6ad7314b63a3303d9aa36f1c7eeb68abf64d3592",
      "parents": [
        "89af571ca633ada14d17746519a179553a732d31",
        "500b067c5e6ceea49cf280a02597b1169320e08c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 09:17:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 09:17:05 2009 -0700"
      },
      "message": "Merge branch \u0027writeback\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027writeback\u0027 of git://git.kernel.dk/linux-2.6-block:\n  writeback: check for registered bdi in flusher add and inode dirty\n  writeback: add name to backing_dev_info\n  writeback: add some debug inode list counters to bdi stats\n  writeback: get rid of pdflush completely\n  writeback: switch to per-bdi threads for flushing data\n  writeback: move dirty inodes from super_block to backing_dev_info\n  writeback: get rid of generic_sync_sb_inodes() export\n"
    },
    {
      "commit": "1b195b170da6d75abafa290deeb8863dc8a4d79b",
      "tree": "f14c0598958171658938e4a330ed8d44fd7eb698",
      "parents": [
        "2490138cb785d299d898b579fa2874a59a3d321a",
        "addd72c1a917091f4bb5e699e307c4c4553f6fd3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 09:16:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 09:16:22 2009 -0700"
      },
      "message": "Merge branch \u0027kmemleak\u0027 of git://linux-arm.org/linux-2.6\n\n* \u0027kmemleak\u0027 of git://linux-arm.org/linux-2.6:\n  kmemleak: Improve the \"Early log buffer exceeded\" error message\n  kmemleak: fix sparse warning for static declarations\n  kmemleak: fix sparse warning over overshadowed flags\n  kmemleak: move common painting code together\n  kmemleak: add clear command support\n  kmemleak: use bool for true/false questions\n  kmemleak: Do no create the clean-up thread during kmemleak_disable()\n  kmemleak: Scan all thread stacks\n  kmemleak: Don\u0027t scan uninitialized memory when kmemcheck is enabled\n  kmemleak: Ignore the aperture memory hole on x86_64\n  kmemleak: Printing of the objects hex dump\n  kmemleak: Do not report alloc_bootmem blocks as leaks\n  kmemleak: Save the stack trace for early allocations\n  kmemleak: Mark the early log buffer as __initdata\n  kmemleak: Dump object information on request\n  kmemleak: Allow rescheduling during an object scanning\n"
    },
    {
      "commit": "addd72c1a917091f4bb5e699e307c4c4553f6fd3",
      "tree": "76fe15bdf2d2e3fdfa2f3dbd64dfda71fc0e1e2e",
      "parents": [
        "7eb0d5e5be4e312d5368896744476cc705b3d7e7"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Sep 11 10:42:09 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Sep 11 10:42:09 2009 +0100"
      },
      "message": "kmemleak: Improve the \"Early log buffer exceeded\" error message\n\nBased on a suggestion from Jaswinder, clarify what the user would need\nto do to avoid this error message from kmemleak.\n\nReported-by: Jaswinder Singh Rajput \u003cjaswinder@kernel.org\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "500b067c5e6ceea49cf280a02597b1169320e08c",
      "tree": "5e2e9bfd66f825f845fdf395b6303b884769ff6d",
      "parents": [
        "d993831fa7ffeb89e994f046f93eeb09ec91df08"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 09 09:10:25 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:26 2009 +0200"
      },
      "message": "writeback: check for registered bdi in flusher add and inode dirty\n\nAlso a debugging aid. We want to catch dirty inodes being added to\nbacking devices that don\u0027t do writeback.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d993831fa7ffeb89e994f046f93eeb09ec91df08",
      "tree": "da4f94bbf022c83988bda71adf1f1b3a88cb4592",
      "parents": [
        "f09b00d3e789a88fa6c7c03cedc62cb65c1de0cb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 12 14:45:52 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:26 2009 +0200"
      },
      "message": "writeback: add name to backing_dev_info\n\nThis enables us to track who does what and print info. Its main use\nis catching dirty inodes on the default_backing_dev_info, so we can\nfix that up.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f09b00d3e789a88fa6c7c03cedc62cb65c1de0cb",
      "tree": "9451d5cfb8d52f2aa9987d93e420ecb505d09ba5",
      "parents": [
        "d0bceac747b547c0b4769b91fec7d3c15600153f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 25 09:08:21 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:26 2009 +0200"
      },
      "message": "writeback: add some debug inode list counters to bdi stats\n\nAdd some debug entries to be able to inspect the internal state of\nthe writeback details.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d0bceac747b547c0b4769b91fec7d3c15600153f",
      "tree": "f8de99db3c0cdafb01a801d1c2e94b2f5ddac967",
      "parents": [
        "03ba3782e8dcc5b0e1efe440d33084f066e38cae"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 18 08:20:32 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:25 2009 +0200"
      },
      "message": "writeback: get rid of pdflush completely\n\nIt is now unused, so kill it off.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "03ba3782e8dcc5b0e1efe440d33084f066e38cae",
      "tree": "e5a6513b411de16a46199530ec98ef9b7f1efc50",
      "parents": [
        "66f3b8e2e103a0b93b945764d98e9ba46cb926dd"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 09 09:08:54 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:25 2009 +0200"
      },
      "message": "writeback: switch to per-bdi threads for flushing data\n\nThis gets rid of pdflush for bdi writeout and kupdated style cleaning.\npdflush writeout suffers from lack of locality and also requires more\nthreads to handle the same workload, since it has to work in a\nnon-blocking fashion against each queue. This also introduces lumpy\nbehaviour and potential request starvation, since pdflush can be starved\nfor queue access if others are accessing it. A sample ffsb workload that\ndoes random writes to files is about 8% faster here on a simple SATA drive\nduring the benchmark phase. File layout also seems a LOT more smooth in\nvmstat:\n\n r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa\n 0  1      0 608848   2652 375372    0    0     0 71024  604    24  1 10 48 42\n 0  1      0 549644   2712 433736    0    0     0 60692  505    27  1  8 48 44\n 1  0      0 476928   2784 505192    0    0     4 29540  553    24  0  9 53 37\n 0  1      0 457972   2808 524008    0    0     0 54876  331    16  0  4 38 58\n 0  1      0 366128   2928 614284    0    0     4 92168  710    58  0 13 53 34\n 0  1      0 295092   3000 684140    0    0     0 62924  572    23  0  9 53 37\n 0  1      0 236592   3064 741704    0    0     4 58256  523    17  0  8 48 44\n 0  1      0 165608   3132 811464    0    0     0 57460  560    21  0  8 54 38\n 0  1      0 102952   3200 873164    0    0     4 74748  540    29  1 10 48 41\n 0  1      0  48604   3252 926472    0    0     0 53248  469    29  0  7 47 45\n\nwhere vanilla tends to fluctuate a lot in the creation phase:\n\n r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa\n 1  1      0 678716   5792 303380    0    0     0 74064  565    50  1 11 52 36\n 1  0      0 662488   5864 319396    0    0     4   352  302   329  0  2 47 51\n 0  1      0 599312   5924 381468    0    0     0 78164  516    55  0  9 51 40\n 0  1      0 519952   6008 459516    0    0     4 78156  622    56  1 11 52 37\n 1  1      0 436640   6092 541632    0    0     0 82244  622    54  0 11 48 41\n 0  1      0 436640   6092 541660    0    0     0     8  152    39  0  0 51 49\n 0  1      0 332224   6200 644252    0    0     4 102800  728    46  1 13 49 36\n 1  0      0 274492   6260 701056    0    0     4 12328  459    49  0  7 50 43\n 0  1      0 211220   6324 763356    0    0     0 106940  515    37  1 10 51 39\n 1  0      0 160412   6376 813468    0    0     0  8224  415    43  0  6 49 45\n 1  1      0  85980   6452 886556    0    0     4 113516  575    39  1 11 54 34\n 0  2      0  85968   6452 886620    0    0     0  1640  158   211  0  0 46 54\n\nA 10 disk test with btrfs performs 26% faster with per-bdi flushing. A\nSSD based writeback test on XFS performs over 20% better as well, with\nthe throughput being very stable around 1GB/sec, where pdflush only\nmanages 750MB/sec and fluctuates wildly while doing so. Random buffered\nwrites to many files behave a lot better as well, as does random mmap\u0027ed\nwrites.\n\nA separate thread is added to sync the super blocks. In the long term,\nadding sync_supers_bdi() functionality could get rid of this thread again.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "66f3b8e2e103a0b93b945764d98e9ba46cb926dd",
      "tree": "442bf5664214f0a1448e4010b09868cc58fdd3d1",
      "parents": [
        "d8a8559cd7a9ccac98d5f6f13297a2ff68a43627"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 02 09:19:46 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:25 2009 +0200"
      },
      "message": "writeback: move dirty inodes from super_block to backing_dev_info\n\nThis is a first step at introducing per-bdi flusher threads. We should\nhave no change in behaviour, although sb_has_dirty_inodes() is now\nridiculously expensive, as there\u0027s no easy way to answer that question.\nNot a huge problem, since it\u0027ll be deleted in subsequent patches.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6d848a488ad83cc3891bb274691118f45ce6aab9",
      "tree": "c775e9ada5e3613174103b0919561b4b4d2d3b7e",
      "parents": [
        "5909ccaa300a4a834ffa275327af4df0b9cb5295"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 12:04:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:08:46 2009 -0700"
      },
      "message": "shmfs: use \u0027check_acl\u0027 instead of \u0027permission\u0027\n\nshmfs wants purely standard POSIX ACL semantics, so we can use the new\ngeneric VFS layer POSIX ACL checking rather than cooking our own\n\u0027permission()\u0027 function.\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7eb0d5e5be4e312d5368896744476cc705b3d7e7",
      "tree": "eebb81e3d4ccb04477b1ace42f666019015f71eb",
      "parents": [
        "0580a1819c584eb8b98f8701157667037e11153a"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@Atheros.com",
        "time": "Tue Sep 08 17:31:45 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Sep 08 17:34:07 2009 +0100"
      },
      "message": "kmemleak: fix sparse warning for static declarations\n\nThis fixes these sparse warnings:\n\nmm/kmemleak.c:1179:6: warning: symbol \u0027start_scan_thread\u0027 was not declared. Should it be static?\nmm/kmemleak.c:1194:6: warning: symbol \u0027stop_scan_thread\u0027 was not declared. Should it be static?\n\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "0580a1819c584eb8b98f8701157667037e11153a",
      "tree": "f55002557bbeb45c1eadcbe53f222cf618002732",
      "parents": [
        "a1084c8779f5efa771c6896a0a4184900b4ab736"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@Atheros.com",
        "time": "Tue Sep 08 17:32:34 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Sep 08 17:34:06 2009 +0100"
      },
      "message": "kmemleak: fix sparse warning over overshadowed flags\n\nA secondary irq_save is not required as a locking before it was\nalready disabling irqs.\n\nThis fixes this sparse warning:\nmm/kmemleak.c:512:31: warning: symbol \u0027flags\u0027 shadows an earlier one\nmm/kmemleak.c:448:23: originally declared here\n\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "a1084c8779f5efa771c6896a0a4184900b4ab736",
      "tree": "64a886155022329fd5df889608260094554f31f3",
      "parents": [
        "30b3710105be0ba6bbdb7d7d126af76246b02eba"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@Atheros.com",
        "time": "Fri Sep 04 17:44:52 2009 -0700"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Sep 08 17:22:20 2009 +0100"
      },
      "message": "kmemleak: move common painting code together\n\nWhen painting grey or black we do the same thing, bring\nthis together into a helper and identify coloring grey or\nblack explicitly with defines. This makes this a little\neasier to read.\n\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "30b3710105be0ba6bbdb7d7d126af76246b02eba",
      "tree": "84200b02f8230f3706744512bf4ba68341d9b889",
      "parents": [
        "4a558dd6f93d419cd318958577e25492bd09e960"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@Atheros.com",
        "time": "Fri Sep 04 17:44:51 2009 -0700"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Sep 08 16:36:08 2009 +0100"
      },
      "message": "kmemleak: add clear command support\n\nIn an ideal world your kmemleak output will be small, when its\nnot (usually during initial bootup) you can use the clear command\nto ingore previously reported and unreferenced kmemleak objects. We\ndo this by painting all currently reported unreferenced objects grey.\nWe paint them grey instead of black to allow future scans on the same\nobjects as such objects could still potentially reference newly\nallocated objects in the future.\n\nTo test a critical section on demand with a clean\n/sys/kernel/debug/kmemleak you can do:\n\necho clear \u003e /sys/kernel/debug/kmemleak\n        test your kernel or modules\necho scan \u003e /sys/kernel/debug/kmemleak\n\nThen as usual to get your report with:\n\ncat /sys/kernel/debug/kmemleak\n\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "4a558dd6f93d419cd318958577e25492bd09e960",
      "tree": "c65e798d06ad21b51cd2a1c4c7f232e0bcf28b03",
      "parents": [
        "179a8100e12d0053f4b368ea3358dd9a0fc6cb94"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@Atheros.com",
        "time": "Tue Sep 08 16:34:50 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Sep 08 16:34:50 2009 +0100"
      },
      "message": "kmemleak: use bool for true/false questions\n\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "179a8100e12d0053f4b368ea3358dd9a0fc6cb94",
      "tree": "2513119dabe3d4c0ccb2f10f5c2b581461f7c335",
      "parents": [
        "43ed5d6ee0f9bfd655d6bc3cb2d964b80c4422c0"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Sep 07 10:14:42 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Sep 08 16:31:15 2009 +0100"
      },
      "message": "kmemleak: Do no create the clean-up thread during kmemleak_disable()\n\nThe kmemleak_disable() function could be called from various contexts\nincluding IRQ. It creates a clean-up thread but the kthread_create()\nfunction has restrictions on which contexts it can be called from,\nmainly because of the kthread_create_lock. The patch changes the\nkmemleak clean-up thread to a workqueue.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nReported-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "931f70350e9c298887c78e852d179ef7efcce304",
      "tree": "7d909970a9ac85c3a7b6c460330591f26bdb1dcd",
      "parents": [
        "e305fc5ecd6420fadec5a8108852081fa2b89a17",
        "04a13c7c632e1fe04a5f6e6c83565d2559e37598"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 14:22:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 14:22:00 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  percpu: don\u0027t assume existence of cpu0\n"
    },
    {
      "commit": "e305fc5ecd6420fadec5a8108852081fa2b89a17",
      "tree": "0f80db8fba1b7d285814f7a16046ae84f6909147",
      "parents": [
        "154f807e55977de75b1c12197c13ae14c28397b3",
        "d76b1590e06a63a3d8697168cd0aabf1c4b3cb3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 13:57:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 13:57:53 2009 -0700"
      },
      "message": "Merge branch \u0027slab/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027slab/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  slub: Fix kmem_cache_destroy() with SLAB_DESTROY_BY_RCU\n"
    },
    {
      "commit": "dd5d241ea955006122d76af88af87de73fec25b4",
      "tree": "2ca12406f407d476b1ba473dc376d1e621a383f6",
      "parents": [
        "a190887b58c32d19c2eee007c5eb8faa970a69ba"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Sat Sep 05 11:17:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 11:30:42 2009 -0700"
      },
      "message": "page-allocator: always change pageblock ownership when anti-fragmentation is disabled\n\nOn low-memory systems, anti-fragmentation gets disabled as fragmentation\ncannot be avoided on a sufficiently large boundary to be worthwhile.  Once\ndisabled, there is a period of time when all the pageblocks are marked\nMOVABLE and the expectation is that they get marked UNMOVABLE at each call\nto __rmqueue_fallback().\n\nHowever, when MAX_ORDER is large the pageblocks do not change ownership\nbecause the normal criteria are not met.  This has the effect of\nprematurely breaking up too many large contiguous blocks.  This is most\nserious on NOMMU systems which depend on high-order allocations to boot.\nThis patch causes pageblocks to change ownership on every fallback when\nanti-fragmentation is disabled.  This prevents the large blocks being\nprematurely broken up.\n\nThis is a fix to commit 49255c619fbd482d704289b5eb2795f8e3b7ff2e [page\nallocator: move check for disabled anti-fragmentation out of fastpath] and\nthe problem affects 2.6.31-rc8.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nTested-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a190887b58c32d19c2eee007c5eb8faa970a69ba",
      "tree": "deff588d04f3e42662484b0281e1beceb3cf9f4e",
      "parents": [
        "4e49627b9bc29a14b393c480e8c979e3bc922ef7"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sat Sep 05 11:17:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 11:30:42 2009 -0700"
      },
      "message": "nommu: fix error handling in do_mmap_pgoff()\n\nFix the error handling in do_mmap_pgoff().  If do_mmap_shared_file() or\ndo_mmap_private() fail, we jump to the error_put_region label at which\npoint we cann __put_nommu_region() on the region - but we haven\u0027t yet\nadded the region to the tree, and so __put_nommu_region() may BUG\nbecause the region tree is empty or it may corrupt the region tree.\n\nTo get around this, we can afford to add the region to the region tree\nbefore calling do_mmap_shared_file() or do_mmap_private() as we keep\nnommu_region_sem write-locked, so no-one can race with us by seeing a\ntransient region.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43ed5d6ee0f9bfd655d6bc3cb2d964b80c4422c0",
      "tree": "e201f0d610a44dbc9e09cec13b52c5cce351136a",
      "parents": [
        "8e019366ba749a536131cde1947af6dcaccf8e8f"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Sep 01 11:12:44 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Sep 04 16:05:55 2009 +0100"
      },
      "message": "kmemleak: Scan all thread stacks\n\nThis patch changes the for_each_process() loop with the\ndo_each_thread()/while_each_thread() pair.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "8e019366ba749a536131cde1947af6dcaccf8e8f",
      "tree": "fc44a33fc43265652b93f6f3251d5a73cda2e5ee",
      "parents": [
        "acde31dc467797ccae3a55b791a77af446cce018"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Aug 27 14:50:00 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Sep 04 16:05:55 2009 +0100"
      },
      "message": "kmemleak: Don\u0027t scan uninitialized memory when kmemcheck is enabled\n\nIngo Molnar reported the following kmemcheck warning when running both\nkmemleak and kmemcheck enabled:\n\n  PM: Adding info for No Bus:vcsa7\n  WARNING: kmemcheck: Caught 32-bit read from uninitialized memory\n  (f6f6e1a4)\n  d873f9f600000000c42ae4c1005c87f70000000070665f666978656400000000\n   i i i i u u u u i i i i i i i i i i i i i i i i i i i i i u u u\n           ^\n\n  Pid: 3091, comm: kmemleak Not tainted (2.6.31-rc7-tip #1303) P4DC6\n  EIP: 0060:[\u003cc110301f\u003e] EFLAGS: 00010006 CPU: 0\n  EIP is at scan_block+0x3f/0xe0\n  EAX: f40bd700 EBX: f40bd780 ECX: f16b46c0 EDX: 00000001\n  ESI: f6f6e1a4 EDI: 00000000 EBP: f10f3f4c ESP: c2605fcc\n   DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068\n  CR0: 8005003b CR2: e89a4844 CR3: 30ff1000 CR4: 000006f0\n  DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000\n  DR6: ffff4ff0 DR7: 00000400\n   [\u003cc110313c\u003e] scan_object+0x7c/0xf0\n   [\u003cc1103389\u003e] kmemleak_scan+0x1d9/0x400\n   [\u003cc1103a3c\u003e] kmemleak_scan_thread+0x4c/0xb0\n   [\u003cc10819d4\u003e] kthread+0x74/0x80\n   [\u003cc10257db\u003e] kernel_thread_helper+0x7/0x3c\n   [\u003cffffffff\u003e] 0xffffffff\n  kmemleak: 515 new suspected memory leaks (see\n  /sys/kernel/debug/kmemleak)\n  kmemleak: 42 new suspected memory leaks (see /sys/kernel/debug/kmemleak)\n\nThe problem here is that kmemleak will scan partially initialized\nobjects that makes kmemcheck complain. Fix that up by skipping\nuninitialized memory regions when kmemcheck is enabled.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "d76b1590e06a63a3d8697168cd0aabf1c4b3cb3a",
      "tree": "276a0323e0b25192fdb837475b816db3b3052cad",
      "parents": [
        "326ba5010a5429a5a528b268b36a5900d4ab0eba"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Sep 03 22:38:59 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Sep 03 22:38:59 2009 +0300"
      },
      "message": "slub: Fix kmem_cache_destroy() with SLAB_DESTROY_BY_RCU\n\nkmem_cache_destroy() should call rcu_barrier() *after* kmem_cache_close() and\n*before* sysfs_slab_remove() or risk rcu_free_slab() being called after\nkmem_cache is deleted (kfreed).\n\nrmmod nf_conntrack can crash the machine because it has to kmem_cache_destroy()\na SLAB_DESTROY_BY_RCU enabled cache.\n\nCc: \u003cstable@kernel.org\u003e\nReported-by: Zdenek Kabelac \u003czdenek.kabelac@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "04a13c7c632e1fe04a5f6e6c83565d2559e37598",
      "tree": "5f0d78abea4655a58c06c70f106d6265b97fae74",
      "parents": [
        "142d44b0dd6741a64a7bdbe029110e7c1dcf1d23"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Sep 01 21:12:28 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Sep 01 21:23:18 2009 +0900"
      },
      "message": "percpu: don\u0027t assume existence of cpu0\n\npercpu incorrectly assumed that cpu0 was always there which led to the\nfollowing warning and eventual oops on sparc machines w/o cpu0.\n\n  WARNING: at mm/percpu.c:651 pcpu_map+0xdc/0x100()\n  Modules linked in:\n  Call Trace:\n    [000000000045eb70] warn_slowpath_common+0x50/0xa0\n    [000000000045ebdc] warn_slowpath_null+0x1c/0x40\n    [00000000004d493c] pcpu_map+0xdc/0x100\n    [00000000004d59a4] pcpu_alloc+0x3e4/0x4e0\n    [00000000004d5af8] __alloc_percpu+0x18/0x40\n    [00000000005b112c] __percpu_counter_init+0x4c/0xc0\n  ...\n  Unable to handle kernel NULL pointer dereference\n  ...\n   I7: \u003csysfs_new_dirent+0x30/0x120\u003e\n   Disabling lock debugging due to kernel taint\n   Caller[000000000053c1b0]: sysfs_new_dirent+0x30/0x120\n   Caller[000000000053c7a4]: create_dir+0x24/0xc0\n   Caller[000000000053c870]: sysfs_create_dir+0x30/0x80\n   Caller[00000000005990e8]: kobject_add_internal+0xc8/0x200\n  ...\n   Kernel panic - not syncing: Attempted to kill the idle task!\n\nThis patch fixes the problem by backporting parts from devel branch to\nmake percpu core not depend on the existence of cpu0.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Meelis Roos \u003cmroos@linux.ee\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0494e08281d08f0a3dc442eb5e5cecc125b53b27",
      "tree": "2050fee8744a101a25b84a45dc8abf4966ca00b6",
      "parents": [
        "008139d9146f9afee0e58df4b7422d0c9921f8ce"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@mail.by",
        "time": "Thu Aug 27 14:29:18 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Aug 27 14:29:18 2009 +0100"
      },
      "message": "kmemleak: Printing of the objects hex dump\n\nIntroducing printing of the objects hex dump to the seq file.\nThe number of lines to be printed is limited to HEX_MAX_LINES\nto prevent seq file spamming. The actual number of printed\nbytes is less than or equal to (HEX_MAX_LINES * HEX_ROW_SIZE).\n\n(slight adjustments by Catalin Marinas)\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@mail.by\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "008139d9146f9afee0e58df4b7422d0c9921f8ce",
      "tree": "8c9259521435afe264ce3479ba696b00848c7b3e",
      "parents": [
        "fd6789675ebfb9185cb4fb68dc51010b4e95d952"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Aug 27 14:29:17 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Aug 27 14:29:17 2009 +0100"
      },
      "message": "kmemleak: Do not report alloc_bootmem blocks as leaks\n\nThis patch sets the min_count for alloc_bootmem objects to 0 so that\nthey are never reported as leaks. This is because many of these blocks\nare only referred via the physical address which is not looked up by\nkmemleak.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "fd6789675ebfb9185cb4fb68dc51010b4e95d952",
      "tree": "788cf2a0ac4a1db7f2cf6db5c586085548742c85",
      "parents": [
        "a6186d89c913b176e7339f37a4ec6ccb38b2c5c0"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Aug 27 14:29:17 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Aug 27 14:29:17 2009 +0100"
      },
      "message": "kmemleak: Save the stack trace for early allocations\n\nBefore slab is initialised, kmemleak save the allocations in an early\nlog buffer. They are later recorded as normal memory allocations. This\npatch adds the stack trace saving to the early log buffer, otherwise the\ninformation shown for such objects only refers to the kmemleak_init()\nfunction.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "a6186d89c913b176e7339f37a4ec6ccb38b2c5c0",
      "tree": "0639a35036063c1a5f05c68817fbb4c49aeb2bd9",
      "parents": [
        "189d84ed54bbb05aac5b24d9d784d86c4d37f807"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Aug 27 14:29:16 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Aug 27 14:29:16 2009 +0100"
      },
      "message": "kmemleak: Mark the early log buffer as __initdata\n\nThis buffer isn\u0027t needed after kmemleak was initialised so it can be\nfreed together with the .init.data section. This patch also marks\nfunctions conditionally accessing the early log variables with __ref.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "189d84ed54bbb05aac5b24d9d784d86c4d37f807",
      "tree": "6a856fddf93cd6688978d2d675623c96de4c46cd",
      "parents": [
        "af98603dad87e393d2fc57117fe8a2aa6d620a0c"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Aug 27 14:29:15 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Aug 27 14:29:15 2009 +0100"
      },
      "message": "kmemleak: Dump object information on request\n\nBy writing dump\u003d\u003caddr\u003e to the kmemleak file, kmemleak will look up an\nobject with that address and dump the information it has about it to\nsyslog. This is useful in debugging memory leaks.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "af98603dad87e393d2fc57117fe8a2aa6d620a0c",
      "tree": "7a86d844fe5b43d8894607c16e4945f7ebe51b79",
      "parents": [
        "1e23502cc57cef33455ac7cb9111e3c6d991a894"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Aug 27 14:29:12 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Aug 27 14:29:12 2009 +0100"
      },
      "message": "kmemleak: Allow rescheduling during an object scanning\n\nIf the object size is bigger than a predefined value (4K in this case),\nrelease the object lock during scanning and call cond_resched().\nRe-acquire the lock after rescheduling and test whether the object is\nstill valid.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "03ef83af528899aa339e42d8024b37e2f434fba4",
      "tree": "1a323ead874d690de79cd213d5231b4fc758979b",
      "parents": [
        "b62e408c05228f40e69bb38a48db8961cac6cd23"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Wed Aug 26 14:29:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 26 20:06:52 2009 -0700"
      },
      "message": "mm: fix for infinite churning of mlocked pages\n\nAn mlocked page might lose the isolatation race.  This causes the page to\nclear PG_mlocked while it remains in a VM_LOCKED vma.  This means it can\nbe put onto the [in]active list.  We can rescue it by using try_to_unmap()\nin shrink_page_list().\n\nBut now, As Wu Fengguang pointed out, vmscan has a bug.  If the page has\nPG_referenced, it can\u0027t reach try_to_unmap() in shrink_page_list() but is\nput into the active list.  If the page is referenced repeatedly, it can\nremain on the [in]active list without being moving to the unevictable\nlist.\n\nThis patch fixes it.\n\nReported-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003c\u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Rik van Riel \u003criel@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": "77f312a96dd1e01c49ccd872265e70a8346b53cc",
      "tree": "7e6d1114dfaf0eb4732c97ad18819f23e4ebef09",
      "parents": [
        "dc8ed71eeb8adce08d3070f4130e12ee540baa59",
        "142d44b0dd6741a64a7bdbe029110e7c1dcf1d23"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 18 19:41:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 18 19:41:05 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  percpu: use the right flag for get_vm_area()\n  percpu, sparc64: fix sparse possible cpu map handling\n  init: set nr_cpu_ids before setup_per_cpu_areas()\n"
    },
    {
      "commit": "7f9cfb31030737a7fc9a1cbca3fd01bec184c849",
      "tree": "a8db215579bc073fb2b1d6d9690dbb78c79aa52d",
      "parents": [
        "503f7944fac68f4fdf71f8ebd06907f51eb64515"
      ],
      "author": {
        "name": "Bo Liu",
        "email": "bo-liu@hotmail.com",
        "time": "Tue Aug 18 14:11:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 18 16:31:13 2009 -0700"
      },
      "message": "mm: build_zonelists(): move clear node_load[] to __build_all_zonelists()\n\nIf node_load[] is cleared everytime build_zonelists() is\ncalled,node_load[] will have no help to find the next node that should\nappear in the given node\u0027s fallback list.\n\nBecause of the bug, zonelist\u0027s node_order is not calculated as expected.\nThis bug affects on big machine, which has asynmetric node distance.\n\n[synmetric NUMA\u0027s node distance]\n     0    1    2\n0   10   12   12\n1   12   10   12\n2   12   12   10\n\n[asynmetric NUMA\u0027s node distance]\n     0    1    2\n0   10   12   20\n1   12   10   14\n2   20   14   10\n\nThis (my bug) is very old but no one has reported this for a long time.\nMaybe because the number of asynmetric NUMA is very small and they use\ncpuset for customizing node memory allocation fallback.\n\n[akpm@linux-foundation.org: fix CONFIG_NUMA\u003dn build]\nSigned-off-by: Bo Liu \u003cbo-liu@hotmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28d7a6ae92c099d81cbea08c20be0d2cf7ccd7ca",
      "tree": "7db56042d0c3e6749c749e1608b3e699485326cf",
      "parents": [
        "191529756633052680dd9d23ad63744ca5aa02a1"
      ],
      "author": {
        "name": "Graff Yang",
        "email": "graff.yang@gmail.com",
        "time": "Tue Aug 18 14:11:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 18 16:31:13 2009 -0700"
      },
      "message": "nommu: check fd read permission in validate_mmap_request()\n\nAccording to the POSIX (1003.1-2008), the file descriptor shall have been\nopened with read permission, regardless of the protection options specified to\nmmap().  The ltp test cases mmap06/07 need this.\n\nSigned-off-by: Graff Yang \u003cgraff.yang@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0753ba01e126020bf0f8150934903b48935b697d",
      "tree": "fbfd7e2d0abbe724a8c5e0e17fb9af522ed2e097",
      "parents": [
        "89a4eb4b66e8f4d395e14a14d262dac4d6ca52f0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Aug 18 14:11:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 18 16:31:13 2009 -0700"
      },
      "message": "mm: revert \"oom: move oom_adj value\"\n\nThe commit 2ff05b2b (oom: move oom_adj value) moveed the oom_adj value to\nthe mm_struct.  It was a very good first step for sanitize OOM.\n\nHowever Paul Menage reported the commit makes regression to his job\nscheduler.  Current OOM logic can kill OOM_DISABLED process.\n\nWhy? His program has the code of similar to the following.\n\n\t...\n\tset_oom_adj(OOM_DISABLE); /* The job scheduler never killed by oom */\n\t...\n\tif (vfork() \u003d\u003d 0) {\n\t\tset_oom_adj(0); /* Invoked child can be killed */\n\t\texecve(\"foo-bar-cmd\");\n\t}\n\t....\n\nvfork() parent and child are shared the same mm_struct.  then above\nset_oom_adj(0) doesn\u0027t only change oom_adj for vfork() child, it\u0027s also\nchange oom_adj for vfork() parent.  Then, vfork() parent (job scheduler)\nlost OOM immune and it was killed.\n\nActually, fork-setting-exec idiom is very frequently used in userland program.\nWe must not break this assumption.\n\nThen, this patch revert commit 2ff05b2b and related commit.\n\nReverted commit list\n---------------------\n- commit 2ff05b2b4e (oom: move oom_adj value from task_struct to mm_struct)\n- commit 4d8b9135c3 (oom: avoid unnecessary mm locking and scanning for OOM_DISABLE)\n- commit 8123681022 (oom: only oom kill exiting tasks with attached memory)\n- commit 933b787b57 (mm: copy over oom_adj value at fork time)\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "788084aba2ab7348257597496befcbccabdc98a3",
      "tree": "2da42d746d67b16ef705229a1b5a3528ec19c725",
      "parents": [
        "8cf948e744e0218af604c32edecde10006dc8e9e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jul 31 12:54:11 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 17 15:09:11 2009 +1000"
      },
      "message": "Security/SELinux: seperate lsm specific mmap_min_addr\n\nCurrently SELinux enforcement of controls on the ability to map low memory\nis determined by the mmap_min_addr tunable.  This patch causes SELinux to\nignore the tunable and instead use a seperate Kconfig option specific to how\nmuch space the LSM should protect.\n\nThe tunable will now only control the need for CAP_SYS_RAWIO and SELinux\npermissions will always protect the amount of low memory designated by\nCONFIG_LSM_MMAP_MIN_ADDR.\n\nThis allows users who need to disable the mmap_min_addr controls (usual reason\nbeing they run WINE as a non-root user) to do so and still have SELinux\ncontrols preventing confined domains (like a web server) from being able to\nmap some area of low memory.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "142d44b0dd6741a64a7bdbe029110e7c1dcf1d23",
      "tree": "7c3c0b58ecb8bddf71bb9c387721ec5d534007de",
      "parents": [
        "74d46d6b2d23d44d72c37df4c6a5d2e782f7b088"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Thu Aug 13 02:00:13 2009 -0400"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 14 13:21:10 2009 +0900"
      },
      "message": "percpu: use the right flag for get_vm_area()\n\nget_vm_area() only accepts VM_* flags, not GFP_*.\n\nAnd according to the doc of get_vm_area(), here should be\nVM_ALLOC.\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "74d46d6b2d23d44d72c37df4c6a5d2e782f7b088",
      "tree": "bcc468968e738394b9c4a44b8936a0e6037be163",
      "parents": [
        "d6647bdf98a0de19963de8d5d9698d469ed72097"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 21 17:11:50 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 14 13:20:53 2009 +0900"
      },
      "message": "percpu, sparc64: fix sparse possible cpu map handling\n\npercpu code has been assuming num_possible_cpus() \u003d\u003d nr_cpu_ids which\nis incorrect if cpu_possible_map contains holes.  This causes percpu\ncode to access beyond allocated memories and vmalloc areas.  On a\nsparc64 machine with cpus 0 and 2 (u60), this triggers the following\nwarning or fails boot.\n\n WARNING: at /devel/tj/os/work/mm/vmalloc.c:106 vmap_page_range_noflush+0x1f0/0x240()\n Modules linked in:\n Call Trace:\n  [00000000004b17d0] vmap_page_range_noflush+0x1f0/0x240\n  [00000000004b1840] map_vm_area+0x20/0x60\n  [00000000004b1950] __vmalloc_area_node+0xd0/0x160\n  [0000000000593434] deflate_init+0x14/0xe0\n  [0000000000583b94] __crypto_alloc_tfm+0xd4/0x1e0\n  [00000000005844f0] crypto_alloc_base+0x50/0xa0\n  [000000000058b898] alg_test_comp+0x18/0x80\n  [000000000058dad4] alg_test+0x54/0x180\n  [000000000058af00] cryptomgr_test+0x40/0x60\n  [0000000000473098] kthread+0x58/0x80\n  [000000000042b590] kernel_thread+0x30/0x60\n  [0000000000472fd0] kthreadd+0xf0/0x160\n ---[ end trace 429b268a213317ba ]---\n\nThis patch fixes generic percpu functions and sparc64\nsetup_per_cpu_areas() so that they handle sparse cpu_possible_map\nproperly.\n\nPlease note that on x86, cpu_possible_map() doesn\u0027t contain holes and\nthus num_possible_cpus() \u003d\u003d nr_cpu_ids and this patch doesn\u0027t cause\nany behavior difference.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5e2f89b5d5d87a7c3ba19fc85ba0c29adb65f639",
      "tree": "2737536b2183e1d089ef4d83495c75c815c7f448",
      "parents": [
        "1392e3b33319fd1a2527bebfc56631c2f2d3c7c5"
      ],
      "author": {
        "name": "Figo.zhang",
        "email": "figo1802@gmail.com",
        "time": "Sat Aug 08 21:01:22 2009 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 10 08:31:16 2009 -0700"
      },
      "message": "mempool.c: clean up type-casting\n\nclean up type-casting twice.  \"size_t\" is typedef as \"unsigned long\" in\n64-bit system, and \"unsigned int\" in 32-bit system, and the intermediate\ncast to \u0027long\u0027 is pointless.\n\nSigned-off-by: Figo.zhang \u003cfigo1802@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4bfc44958e499af9a73f62201543b3a1f617cfeb",
      "tree": "01b40f951cd1a5e6dda8e2b21e1e24650c43c95e",
      "parents": [
        "93274e4d4e9416ad1fa47e2f26011e2c483fe5fe"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Aug 06 15:07:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 07 10:39:55 2009 -0700"
      },
      "message": "mm: make set_mempolicy(MPOL_INTERLEAV) N_HIGH_MEMORY aware\n\nAt first, init_task\u0027s mems_allowed is initialized as this.\n init_task-\u003emems_allowed \u003d\u003d node_state[N_POSSIBLE]\n\nAnd cpuset\u0027s top_cpuset mask is initialized as this\n top_cpuset-\u003emems_allowed \u003d node_state[N_HIGH_MEMORY]\n\nBefore 2.6.29:\npolicy\u0027s mems_allowed is initialized as this.\n\n  1. update tasks-\u003emems_allowed by its cpuset-\u003emems_allowed.\n  2. policy-\u003emems_allowed \u003d nodes_and(tasks-\u003emems_allowed, user\u0027s mask)\n\nUpdating task\u0027s mems_allowed in reference to top_cpuset\u0027s one.\ncpuset\u0027s mems_allowed is aware of N_HIGH_MEMORY, always.\n\nIn 2.6.30: After commit 58568d2a8215cb6f55caf2332017d7bdff954e1c\n(\"cpuset,mm: update tasks\u0027 mems_allowed in time\"), policy\u0027s mems_allowed\nis initialized as this.\n\n  1. policy-\u003emems_allowd \u003d nodes_and(task-\u003emems_allowed, user\u0027s mask)\n\nHere, if task is in top_cpuset, task-\u003emems_allowed is not updated from\ninit\u0027s one.  Assume user excutes command as #numactrl --interleave\u003dall\n,....\n\n  policy-\u003emems_allowd \u003d nodes_and(N_POSSIBLE, ALL_SET_MASK)\n\nThen, policy\u0027s mems_allowd can includes a possible node, which has no pgdat.\n\nMPOL\u0027s INTERLEAVE just scans nodemask of task-\u003emems_allowd and access this\ndirectly.\n\n  NODE_DATA(nid)-\u003ezonelist even if NODE_DATA(nid)\u003d\u003dNULL\n\nThen, what\u0027s we need is making policy-\u003emems_allowed be aware of\nN_HIGH_MEMORY.  This patch does that.  But to do so, extra nodemask will\nbe on statck.  Because I know cpumask has a new interface of\nCPUMASK_ALLOC(), I added it to node.\n\nThis patch stands on old behavior.  But I feel this fix itself is just a\nBand-Aid.  But to do fundametal fix, we have to take care of memory\nhotplug and it takes time.  (task-\u003emems_allowd should be N_HIGH_MEMORY, I\nthink.)\n\nmpol_set_nodemask() should be aware of N_HIGH_MEMORY and policy\u0027s nodemask\nshould be includes only online nodes.\n\nIn old behavior, this is guaranteed by frequent reference to cpuset\u0027s\ncode.  Now, most of them are removed and mempolicy has to check it by\nitself.\n\nTo do check, a few nodemask_t will be used for calculating nodemask.  But,\nsize of nodemask_t can be big and it\u0027s not good to allocate them on stack.\n\nNow, cpumask_t has CPUMASK_ALLOC/FREE an easy code for get scratch area.\nNODEMASK_ALLOC/FREE shoudl be there.\n\n[akpm@linux-foundation.org: cleanups \u0026 tweaks]\nTested-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91a5698d1f253d30f53f0c58d2504eaec481b854",
      "tree": "684d8060e16b33c6ede5b814dbd459e0c5cb1f39",
      "parents": [
        "084bad91afd0f40ff4db9ceb56e29234c314d8d1",
        "dddac6a7b445de95515f64fdf82fe5dc36c02f26"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 19:15:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 19:15:18 2009 -0700"
      },
      "message": "Merge branch \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PM / Hibernate: Replace bdget call with simple atomic_inc of i_count\n  PM / ACPI: HP G7000 Notebook needs a SCI_EN resume quirk\n"
    },
    {
      "commit": "1fc28b70fe2dbf87e061b6ce5091a1f8e4e5d4e7",
      "tree": "35c109a52c3dd8a509b5dd1318eb4963b45a8b01",
      "parents": [
        "887032670d47366a8c8f25396ea7c14b7b2cc620"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Jul 29 15:04:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 19:10:35 2009 -0700"
      },
      "message": "page-allocator: allow too high-order warning messages to be suppressed with __GFP_NOWARN\n\nThe page allocator warns once when an order \u003e\u003d MAX_ORDER is specified.\nThis is to catch callers of the allocator that are always falling back to\ntheir worst-case when it was not expected.  However, there are cases where\nthe caller is behaving correctly but cannot suppress the warning.  This\npatch allows the warning to be suppressed by the callers by specifying\n__GFP_NOWARN.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "887032670d47366a8c8f25396ea7c14b7b2cc620",
      "tree": "e5f9ece5ab9239648e8d7051ccb9a217d92553d7",
      "parents": [
        "f0d83679a8d471dc8b646919f70595d6fe8c9606"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jul 29 15:04:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 19:10:35 2009 -0700"
      },
      "message": "cgroup avoid permanent sleep at rmdir\n\nAfter commit ec64f51545fffbc4cb968f0cea56341a4b07e85a (\"cgroup: fix\nfrequent -EBUSY at rmdir\"), cgroup\u0027s rmdir (especially against memcg)\ndoesn\u0027t return -EBUSY by temporary ref counts.  That commit expects all\nrefs after pre_destroy() is temporary but...it wasn\u0027t.  Then, rmdir can\nwait permanently.  This patch tries to fix that and change followings.\n\n - set CGRP_WAIT_ON_RMDIR flag before pre_destroy().\n - clear CGRP_WAIT_ON_RMDIR flag when the subsys finds racy case.\n   if there are sleeping ones, wakes them up.\n - rmdir() sleeps only when CGRP_WAIT_ON_RMDIR flag is set.\n\nTested-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nReported-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Balbir Sigh \u003cbalbir@linux.vnet.ibm.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": "e4c6f8bed01f9f9a5c607bd689bf67e7b8a36bd8",
      "tree": "d344bc7b6f89f7066c7e35ddff8c4a4b56904a36",
      "parents": [
        "659098141d02eb8e3545be8969d262e02d2f3f98"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Wed Jul 29 15:02:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 19:10:35 2009 -0700"
      },
      "message": "hugetlbfs: fix i_blocks accounting\n\nAs reported in Red Hat bz #509671, i_blocks for files on hugetlbfs get\naccounting wrong when doing something like:\n\n   $ \u003e foo\n   $ date  \u003e foo\n   date: write error: Invalid argument\n   $ /usr/bin/stat foo\n     File: `foo\u0027\n     Size: 0          Blocks: 18446744073709547520 IO Block: 2097152 regular\n...\n\nThis is because hugetlb_unreserve_pages() is unconditionally removing\nblocks_per_huge_page(h) on each call rather than using the freed amount.\nIf there were 0 blocks, it goes negative, resulting in the above.\n\nThis is a regression from commit a5516438959d90b071ff0a484ce4f3f523dc3152\n(\"hugetlb: modular state for hugetlb page size\")\n\nwhich did:\n\n-\tinode-\u003ei_blocks -\u003d BLOCKS_PER_HUGEPAGE * freed;\n+\tinode-\u003ei_blocks -\u003d blocks_per_huge_page(h);\n\nso just put back the freed multiplier, and it\u0027s all happy again.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nAcked-by: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6583bb64fc370842b32a87c67750c26f6d559af0",
      "tree": "321681ebc6ff893318d67859b24f199b9111cbc8",
      "parents": [
        "e084b2d95e48b31aa45f9c49ffc6cdae8bdb21d4"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Jul 29 15:02:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 19:10:34 2009 -0700"
      },
      "message": "mm: avoid endless looping for oom killed tasks\n\nIf a task is oom killed and still cannot find memory when trying with\nno watermarks, it\u0027s better to fail the allocation attempt than to loop\nendlessly.  Direct reclaim has already failed and the oom killer will\nbe a no-op since current has yet to die, so there is no other\nalternative for allocations that are not __GFP_NOFAIL.\n\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e084b2d95e48b31aa45f9c49ffc6cdae8bdb21d4",
      "tree": "ff15d36a3a1e49fdbd5080decb7ab00afdd60099",
      "parents": [
        "51fbb4bab6c8710eb897ab3fb06efbbc921f3a8d"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Jul 29 15:02:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 19:10:34 2009 -0700"
      },
      "message": "page-allocator: preserve PFN ordering when __GFP_COLD is set\n\nFix a post-2.6.24 performace regression caused by\n3dfa5721f12c3d5a441448086bee156887daa961 (\"page-allocator: preserve PFN\nordering when __GFP_COLD is set\").\n\nNarayanan reports \"The regression is around 15%.  There is no disk controller\nas our setup is based on Samsung OneNAND used as a memory mapped device on a\nOMAP2430 based board.\"\n\nThe page allocator tries to preserve contiguous PFN ordering when returning\npages such that repeated callers to the allocator have a strong chance of\ngetting physically contiguous pages, particularly when external fragmentation\nis low.  However, of the bulk of the allocations have __GFP_COLD set as they\nare due to aio_read() for example, then the PFNs are in reverse PFN order.\nThis can cause performance degration when used with IO controllers that could\nhave merged the requests.\n\nThis patch attempts to preserve the contiguous ordering of PFNs for users of\n__GFP_COLD.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReported-by: Narayananu Gopalakrishnan \u003cnarayanan.g@samsung.com\u003e\nTested-by: Narayanan Gopalakrishnan \u003cnarayanan.g@samsung.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5886c7f96f2542382d3a983c5f13e03d7fc5259",
      "tree": "75c5e09bdd8726fa3fa0c2cc3b764d523e5160f2",
      "parents": [
        "84210aeb4a6a77de8a3067b121026bad630cd3da"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Jul 29 16:26:57 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 12:34:58 2009 -0700"
      },
      "message": "kmemleak: Protect the seq start/next/stop sequence by rcu_read_lock()\n\nObjects passed to kmemleak_seq_next() have an incremented reference\ncount (hence not freed) but they may point via object_list.next to\nother freed objects. To avoid this, the whole start/next/stop sequence\nmust be protected by rcu_read_lock().\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dddac6a7b445de95515f64fdf82fe5dc36c02f26",
      "tree": "39651610292d6b0c17f210f253a0dd16b022727d",
      "parents": [
        "ec79be26875f6c1468784876cb99192b7f41c7a5"
      ],
      "author": {
        "name": "Alan Jenkins",
        "email": "alan-jenkins@tuffmail.co.uk",
        "time": "Wed Jul 29 21:07:55 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 29 21:07:55 2009 +0200"
      },
      "message": "PM / Hibernate: Replace bdget call with simple atomic_inc of i_count\n\nCreate bdgrab().  This function copies an existing reference to a\nblock_device.  It is safe to call from any context.\n\nHibernation code wishes to copy a reference to the active swap device.\nRight now it calls bdget() under a spinlock, but this is wrong because\nbdget() can sleep.  It doesn\u0027t need a full bdget() because we already\nhold a reference to active swap devices (and the spinlock protects\nagainst swapoff).\n\nFixes http://bugzilla.kernel.org/show_bug.cgi?id\u003d13827\n\nSigned-off-by: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "9e1b32caa525cb236e80e9c671e179bcecccc657",
      "tree": "8a1f0abf5291b23047cfdf099d5cfc96cc9d9253",
      "parents": [
        "4be3bd7849165e7efa6b0b35a23d6a3598d97465"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Jul 22 15:44:28 2009 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 27 12:10:38 2009 -0700"
      },
      "message": "mm: Pass virtual address to [__]p{te,ud,md}_free_tlb()\n\nmm: Pass virtual address to [__]p{te,ud,md}_free_tlb()\n\nUpcoming paches to support the new 64-bit \"BookE\" powerpc architecture\nwill need to have the virtual address corresponding to PTE page when\nfreeing it, due to the way the HW table walker works.\n\nBasically, the TLB can be loaded with \"large\" pages that cover the whole\nvirtual space (well, sort-of, half of it actually) represented by a PTE\npage, and which contain an \"indirect\" bit indicating that this TLB entry\nRPN points to an array of PTEs from which the TLB can then create direct\nentries. Thus, in order to invalidate those when PTE pages are deleted,\nwe need the virtual address to pass to tlbilx or tlbivax instructions.\n\nThe old trick of sticking it somewhere in the PTE page struct page sucks\ntoo much, the address is almost readily available in all call sites and\nalmost everybody implemets these as macros, so we may as well add the\nargument everywhere. I added it to the pmd and pud variants for consistency.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e [MN10300 \u0026 FRV]\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e [s390]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7638d5322bd89d49e013a03fe2afaeb6d214fabd",
      "tree": "cfafc7c6c9f169a7a308c290363dde765e21735d",
      "parents": [
        "dd0d9a46f573b086a67522f819566427dba9c4c7",
        "264ef8a904943ed7d0b04fa958894d7a5c2b2c61"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:24:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:24:35 2009 -0700"
      },
      "message": "Merge branch \u0027kmemleak\u0027 of git://linux-arm.org/linux-2.6\n\n* \u0027kmemleak\u0027 of git://linux-arm.org/linux-2.6:\n  kmemleak: Remove alloc_bootmem annotations introduced in the past\n  kmemleak: Add callbacks to the bootmem allocator\n  kmemleak: Allow partial freeing of memory blocks\n  kmemleak: Trace the kmalloc_large* functions in slub\n  kmemleak: Scan objects allocated during a scanning episode\n  kmemleak: Do not acquire scan_mutex in kmemleak_open()\n  kmemleak: Remove the reported leaks number limitation\n  kmemleak: Add more cond_resched() calls in the scanning thread\n  kmemleak: Renice the scanning thread to +10\n"
    },
    {
      "commit": "8aa7e847d834ed937a9ad37a0f2ad5b8584c1ab0",
      "tree": "76c8b4f1362a928d426f2201790ab5d128f57724",
      "parents": [
        "c2cc49a2f8a479dde96a599646d30b6cc9dbed78"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jul 09 14:52:32 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.(none)",
        "time": "Fri Jul 10 20:31:53 2009 +0200"
      },
      "message": "Fix congestion_wait() sync/async vs read/write confusion\n\nCommit 1faa16d22877f4839bd433547d770c676d1d964c accidentally broke\nthe bdi congestion wait queue logic, causing us to wait on congestion\nfor WRITE (\u003d\u003d 1) when we really wanted BLK_RW_ASYNC (\u003d\u003d 0) instead.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "264ef8a904943ed7d0b04fa958894d7a5c2b2c61",
      "tree": "ddab997d86b591cf67de3afc2f23e7d9f2fb1207",
      "parents": [
        "ec3a354bd46cbdaa7933ba57a142ee2d2dbde0e5"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Jul 07 10:33:01 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jul 09 17:07:02 2009 +0100"
      },
      "message": "kmemleak: Remove alloc_bootmem annotations introduced in the past\n\nkmemleak_alloc() calls were added in some places where alloc_bootmem was\ncalled. Since now kmemleak tracks bootmem allocations, these explicit\ncalls should be run.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "ec3a354bd46cbdaa7933ba57a142ee2d2dbde0e5",
      "tree": "7ca4fc5d3ade825a73d9d0d1eb5f0b5e5cccb26d",
      "parents": [
        "53238a60dd4a679f6fe5613a7ed46899587205cf"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Jul 07 10:33:01 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Jul 08 14:25:14 2009 +0100"
      },
      "message": "kmemleak: Add callbacks to the bootmem allocator\n\nThis patch adds kmemleak_alloc/free callbacks to the bootmem allocator.\nThis would allow scanning of such blocks and help avoiding a whole class\nof false positives and more kmemleak annotations.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\n"
    },
    {
      "commit": "53238a60dd4a679f6fe5613a7ed46899587205cf",
      "tree": "d2224ecfb18f7e9c6cc6fb2a48d81a87e5d5b62a",
      "parents": [
        "e4f7c0b44a8ac8935f223195af9ea637d0c08091"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Jul 07 10:33:00 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Jul 08 14:25:14 2009 +0100"
      },
      "message": "kmemleak: Allow partial freeing of memory blocks\n\nFunctions like free_bootmem() are allowed to free only part of a memory\nblock. This patch adds support for this via the kmemleak_free_part()\ncallback which removes the original object and creates one or two\nadditional objects as a result of the memory block split.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "e4f7c0b44a8ac8935f223195af9ea637d0c08091",
      "tree": "9d8627800137ae50a1d5707c21489969c77c9e8a",
      "parents": [
        "2587362eaf5c9df4e08de11e6340e3c4a88ed4c8"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Jul 07 10:32:59 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Jul 08 14:25:14 2009 +0100"
      },
      "message": "kmemleak: Trace the kmalloc_large* functions in slub\n\nThe kmalloc_large() and kmalloc_large_node() functions were missed when\nadding the kmemleak hooks to the slub allocator. However, they should be\ntraced to avoid false positives.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "2587362eaf5c9df4e08de11e6340e3c4a88ed4c8",
      "tree": "90fc902a3c131146981164b859ed009d20157333",
      "parents": [
        "b87324d082d9d898e3c06b2a07a2b94b2430b8ba"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Jul 07 10:32:58 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Jul 08 14:25:13 2009 +0100"
      },
      "message": "kmemleak: Scan objects allocated during a scanning episode\n\nMany of the false positives in kmemleak happen on busy systems where\nobjects are allocated during a kmemleak scanning episode. These objects\naren\u0027t scanned by default until the next memory scan. When such object\nis added, for example, at the head of a list, it is possible that all\nthe other objects in the list become unreferenced until the next scan.\n\nThis patch adds checking for newly allocated objects at the end of the\nscan and repeats the scanning on these objects. If Linux allocates\nnew objects at a higher rate than their scanning, it stops after a\npredefined number of passes.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "b87324d082d9d898e3c06b2a07a2b94b2430b8ba",
      "tree": "23183d749d3267e3c3636fdc78e10ceb0cd10b1a",
      "parents": [
        "288c857d66a400ca4846dd700eb1c4820d738bb9"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Jul 07 10:32:58 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Jul 08 14:25:13 2009 +0100"
      },
      "message": "kmemleak: Do not acquire scan_mutex in kmemleak_open()\n\nInitially, the scan_mutex was acquired in kmemleak_open() and released\nin kmemleak_release() (corresponding to /sys/kernel/debug/kmemleak\noperations). This was causing some lockdep reports when the file was\nclosed from a different task than the one opening it. This patch moves\nthe scan_mutex acquiring in kmemleak_write() or kmemleak_seq_start()\nwith releasing in kmemleak_seq_stop().\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "288c857d66a400ca4846dd700eb1c4820d738bb9",
      "tree": "1d699c8590a82f010b5899770e7aedd467cc97c9",
      "parents": [
        "4b8a96744c0c27ab94fb4e8155d4384c3b399e27"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Jul 07 10:32:57 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Jul 08 14:25:12 2009 +0100"
      },
      "message": "kmemleak: Remove the reported leaks number limitation\n\nSince the leaks are no longer printed to the syslog, there is no point\nin keeping this limitation. All the suspected leaks are shown on\n/sys/kernel/debug/kmemleak file.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "4b8a96744c0c27ab94fb4e8155d4384c3b399e27",
      "tree": "e769e01395a3a13e28bf146fce20a3f3f2a95750",
      "parents": [
        "bf2a76b317c6ccc6f7b6b1dc09664c5b6a155c61"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Jul 07 10:32:56 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Jul 07 10:32:56 2009 +0100"
      },
      "message": "kmemleak: Add more cond_resched() calls in the scanning thread\n\nFollowing recent fix to no longer reschedule in the scan_block()\nfunction, the system may become unresponsive with !PREEMPT. This patch\nre-adds the cond_resched() call to scan_block() but conditioned by the\nallow_resched parameter.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bf2a76b317c6ccc6f7b6b1dc09664c5b6a155c61",
      "tree": "f3395c384585c2d52a60bb4ae143f1153e604118",
      "parents": [
        "faf80d62e44dc627efb741f48db50c1858d1667c"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Jul 07 10:32:55 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Jul 07 10:32:55 2009 +0100"
      },
      "message": "kmemleak: Renice the scanning thread to +10\n\nThis is a long-running thread but not high-priority. So it makes sense\nto renice it to +10.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "9861df15f44d98eb6fa9a839b558633ecee87194",
      "tree": "587d1902c33c47fc0bc84f849b9431fd27967668",
      "parents": [
        "8871b201da6e443b7ab2967050e3064360d0604f",
        "67fc25ef34a27dc43ce6dfc98a8b249db304d641"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 06 14:05:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 06 14:05:09 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  SLAB: Fix lockdep annotations\n  fix RCU-callback-after-kmem_cache_destroy problem in sl[aou]b\n"
    },
    {
      "commit": "5bfd7560979062ad75c9805c1719cec990b5db29",
      "tree": "cdefaa4920ad4f87f4cd66f96cb4112b2be2bde3",
      "parents": [
        "c8236db9cd7aa492dcfcdcca702638e704abed49"
      ],
      "author": {
        "name": "Kevin Cernekee",
        "email": "cernekee@gmail.com",
        "time": "Sun Jul 05 12:08:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 06 13:57:03 2009 -0700"
      },
      "message": "Fix virt_to_phys() warnings\n\nThese warnings were observed on MIPS32 using 2.6.31-rc1 and gcc-4.2.0:\n\nmm/page_alloc.c: In function \u0027alloc_pages_exact\u0027:\nmm/page_alloc.c:1986: warning: passing argument 1 of \u0027virt_to_phys\u0027 makes pointer from integer without a cast\n\ndrivers/usb/mon/mon_bin.c: In function \u0027mon_alloc_buff\u0027:\ndrivers/usb/mon/mon_bin.c:1264: warning: passing argument 1 of \u0027virt_to_phys\u0027 makes pointer from integer without a cast\n\n[akpm@linux-foundation.org: fix kernel/perf_counter.c too]\nSigned-off-by: Kevin Cernekee \u003ccernekee@gmail.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\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": "c8236db9cd7aa492dcfcdcca702638e704abed49",
      "tree": "75eb83051298fd1f9df426cafaaa6d3c422d1b68",
      "parents": [
        "a65e7bfcd74e4c0939f235d2bf9f48ddb3a57991"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sun Jul 05 12:08:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 06 13:57:03 2009 -0700"
      },
      "message": "mm: mark page accessed before we write_end()\n\nIn testing a backport of the write_begin/write_end AOPs, a 10% re-read\nregression was noticed when running iozone.  This regression was\nintroduced because the old AOPs would always do a mark_page_accessed(page)\nafter the commit_write, but when the new AOPs where introduced, the only\nplace this was kept was in pagecache_write_end().\n\nThis patch does the same thing in the generic case as what is done in\npagecache_write_end(), which is just to mark the page accessed before we\ndo write_end().\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.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": "67fc25ef34a27dc43ce6dfc98a8b249db304d641",
      "tree": "cd1b88e99c315526379cf918e56aceb266143192",
      "parents": [
        "8e4a718ff38d8539938ec3421935904c27e00c39",
        "ec5a36f94e7ca4b1f28ae4dd135cd415a704e772"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Jul 06 10:51:54 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Jul 06 10:51:54 2009 +0300"
      },
      "message": "Merge branch \u0027slab/urgent\u0027 into for-linus\n"
    },
    {
      "commit": "5a475ce4692f668b2615ae4ea1365c7c2d93f1dd",
      "tree": "0349690bce5fe2396a3788bb1a4084ffd87ee308",
      "parents": [
        "d960eea974f5e500c0dcb95a934239cc1f481cfd",
        "1c6a307a54668eda556f499c94e75086aaf8f80f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 01 11:46:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 01 11:46:30 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:\n  sh: LCDC dcache flush for deferred io\n  sh: Fix compiler error and include the definition of IS_ERR_VALUE\n  sh: re-add LCDC fbdev support to the Migo-R defconfig\n  sh: fix se7724 ceu names\n  sh: ms7724se: Enable sh_eth in defconfig.\n  arch/sh/boards/mach-se/7206/io.c: Remove unnecessary semicolons\n  sh: ms7724se: Add sh_eth support\n  nommu: provide follow_pfn().\n  sh: Kill off unused DEBUG_BOOTMEM symbol.\n  perf_counter tools: add cpu_relax()/rmb() definitions for sh.\n  sh64: Hook up page fault events for software perf counters.\n  sh: Hook up page fault events for software perf counters.\n  sh: make set_perf_counter_pending() static inline.\n  clocksource: sh_tmu: Make undefined TCOR behaviour less undefined.\n"
    },
    {
      "commit": "57d81f6f393b245894ca0cd828f80ce7e3294f39",
      "tree": "e825b033d86bf42e768c645cb66201a94cd7a354",
      "parents": [
        "e83c2b0ff325f52dda1aff3572d0e1516216c54b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 01 09:43:53 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 01 10:26:23 2009 -0700"
      },
      "message": "kmemleak: Fix scheduling-while-atomic bug\n\nOne of the kmemleak changes caused the following\nscheduling-while-holding-the-tasklist-lock regression on x86:\n\nBUG: sleeping function called from invalid context at mm/kmemleak.c:795\nin_atomic(): 1, irqs_disabled(): 0, pid: 1737, name: kmemleak\n2 locks held by kmemleak/1737:\n #0:  (scan_mutex){......}, at: [\u003cc10c4376\u003e] kmemleak_scan_thread+0x45/0x86\n #1:  (tasklist_lock){......}, at: [\u003cc10c3bb4\u003e] kmemleak_scan+0x1a9/0x39c\nPid: 1737, comm: kmemleak Not tainted 2.6.31-rc1-tip #59266\nCall Trace:\n [\u003cc105ac0f\u003e] ? __debug_show_held_locks+0x1e/0x20\n [\u003cc102e490\u003e] __might_sleep+0x10a/0x111\n [\u003cc10c38d5\u003e] scan_yield+0x17/0x3b\n [\u003cc10c3970\u003e] scan_block+0x39/0xd4\n [\u003cc10c3bc6\u003e] kmemleak_scan+0x1bb/0x39c\n [\u003cc10c4331\u003e] ? kmemleak_scan_thread+0x0/0x86\n [\u003cc10c437b\u003e] kmemleak_scan_thread+0x4a/0x86\n [\u003cc104d73e\u003e] kthread+0x6e/0x73\n [\u003cc104d6d0\u003e] ? kthread+0x0/0x73\n [\u003cc100959f\u003e] kernel_thread_helper+0x7/0x10\nkmemleak: 834 new suspected memory leaks (see /sys/kernel/debug/kmemleak)\n\nThe bit causing it is highly dubious:\n\nstatic void scan_yield(void)\n{\n        might_sleep();\n\n        if (time_is_before_eq_jiffies(next_scan_yield)) {\n                schedule();\n                next_scan_yield \u003d jiffies + jiffies_scan_yield;\n        }\n}\n\nIt called deep inside the codepath and in a conditional way,\nand that is what crapped up when one of the new scan_block()\nuses grew a tasklist_lock dependency.\n\nThis minimal patch removes that yielding stuff and adds the\nproper cond_resched().\n\nThe background scanning thread could probably also be reniced\nto +10.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e83c2b0ff325f52dda1aff3572d0e1516216c54b",
      "tree": "0d9dd56df33a308d03c8ac2d666826017777f0cf",
      "parents": [
        "9fcfc91bda04259abb9af2fd83bbf48d19da8502",
        "12de38b186c2af97bf0b4a1f907f766df46b1def"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 19:04:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 19:04:53 2009 -0700"
      },
      "message": "Merge branch \u0027kmemleak\u0027 of git://linux-arm.org/linux-2.6\n\n* \u0027kmemleak\u0027 of git://linux-arm.org/linux-2.6:\n  kmemleak: Inform kmemleak about pid_hash\n  kmemleak: Do not warn if an unknown object is freed\n  kmemleak: Do not report new leaked objects if the scanning was stopped\n  kmemleak: Slightly change the policy on newly allocated objects\n  kmemleak: Do not trigger a scan when reading the debug/kmemleak file\n  kmemleak: Simplify the reports logged by the scanning thread\n  kmemleak: Enable task stacks scanning by default\n  kmemleak: Allow the early log buffer to be configurable.\n"
    },
    {
      "commit": "66918dcdf91ad101194c749c18099e836ba3de2b",
      "tree": "c7c2b3e4665a20fc670ea09a8b2da7a9d289984d",
      "parents": [
        "b37f2d4de6dfce4bfd6df311af80e4d61458ee1e"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Tue Jun 30 11:41:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 18:56:01 2009 -0700"
      },
      "message": "x86: only clear node_states for 64bit\n\nNathan reported that\n\n| commit 73d60b7f747176dbdff826c4127d22e1fd3f9f74\n| Author: Yinghai Lu \u003cyinghai@kernel.org\u003e\n| Date:   Tue Jun 16 15:33:00 2009 -0700\n|\n|    page-allocator: clear N_HIGH_MEMORY map before we set it again\n|\n|    SRAT tables may contains nodes of very small size.  The arch code may\n|    decide to not activate such a node.  However, currently the early boot\n|    code sets N_HIGH_MEMORY for such nodes.  These nodes therefore seem to be\n|    active although these nodes have no present pages.\n|\n|    For 64bit N_HIGH_MEMORY \u003d\u003d N_NORMAL_MEMORY, so that works for 64 bit too\n\nunintentionally and incorrectly clears the cpuset.mems cgroup attribute on\nan i386 kvm guest, meaning that cpuset.mems can not be used.\n\nFix this by only clearing node_states[N_NORMAL_MEMORY] for 64bit only.\nand need to do save/restore for that in find_zone_movable_pfn\n\nReported-by: Nathan Lynch \u003cntl@pobox.com\u003e\nTested-by: Nathan Lynch \u003cntl@pobox.com\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\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": "d7831a0bdf06b9f722b947bb0c205ff7d77cebd8",
      "tree": "99afa4a0e30b18724eece3a819867b290728dafe",
      "parents": [
        "df279ca8966c3de83105428e3391ab17690802a9"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Tue Jun 30 11:41:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 18:56:01 2009 -0700"
      },
      "message": "mm: prevent balance_dirty_pages() from doing too much work\n\nbalance_dirty_pages can overreact and move all of the dirty pages to\nwriteback unnecessarily.\n\nbalance_dirty_pages makes its decision to throttle based on the number of\ndirty plus writeback pages that are over the calculated limit,so it will\ncontinue to move pages even when there are plenty of pages in writeback\nand less than the threshold still dirty.\n\nThis allows it to overshoot its limits and move all the dirty pages to\nwriteback while waiting for the drives to catch up and empty the writeback\nlist.\n\nA simple fio test easily demonstrates this problem.\n\nfio --name\u003df1 --directory\u003d/disk1 --size\u003d2G -rw\u003dwrite --name\u003df2 --directory\u003d/disk2 --size\u003d1G --rw\u003dwrite --startdelay\u003d10\n\nThis is the simplest fix I could find, but I\u0027m not entirely sure that it\nalone will be enough for all cases.  But it certainly is an improvement on\nmy desktop machine writing to 2 disks.\n\nDo we need something more for machines with large arrays where\nbdi_threshold * number_of_drives is greater than the dirty_ratio ?\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Jens Axboe \u003cjens.axboe@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": "c49568235dd7b4a2ffad63aa950562f4ffb9455f",
      "tree": "fbfcc2e0ffc4a82bd9f481e1a746bfb49955800f",
      "parents": [
        "4d6c13f87db12ae1ce35ea6a15688ac72419b133"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jun 30 11:41:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 18:56:00 2009 -0700"
      },
      "message": "dmapools: protect page_list walk in show_pools()\n\nshow_pools() walks the page_list of a pool w/o protection against the list\nmodifications in alloc/free.  Take pool-\u003elock to avoid stomping into\nnirvana.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.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": "b6e687221eb840bacd4d4a991e5f8e7ed3ae910a",
      "tree": "0990d2d2b044ffa0210807e4fe251a4be9306629",
      "parents": [
        "17bb9e0d906b625f86e9d31740bb1c35bc0f63d7"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jun 29 17:13:57 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jun 29 17:14:14 2009 +0100"
      },
      "message": "kmemleak: Do not warn if an unknown object is freed\n\nvmap\u0027ed memory blocks are not tracked by kmemleak (yet) but they may be\nreleased with vfree() which is tracked. The corresponding kmemleak\nwarning is only enabled in debug mode. Future patch will add support for\nioremap and vmap.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "17bb9e0d906b625f86e9d31740bb1c35bc0f63d7",
      "tree": "2a92b042b2e48be48bbe126ea62ee098fcebc0ee",
      "parents": [
        "acf4968ec9dea49387ca8b3d36dfaa0850bdb2d5"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jun 29 17:13:56 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jun 29 17:14:13 2009 +0100"
      },
      "message": "kmemleak: Do not report new leaked objects if the scanning was stopped\n\nIf the scanning was stopped with a signal, it is possible that some\nobjects are left with a white colour (potential leaks) and reported. Add\na check to avoid reporting such objects.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "ec5a36f94e7ca4b1f28ae4dd135cd415a704e772",
      "tree": "04867e524b616871cc2d564d30e3f376f702e34c",
      "parents": [
        "7ed9f7e5db58c6e8c2b4b738a75d5dcd8e17aad5"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Jun 29 09:57:10 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Jun 29 09:57:10 2009 +0300"
      },
      "message": "SLAB: Fix lockdep annotations\n\nCommit 8429db5... (\"slab: setup cpu caches later on when interrupts are\nenabled\") broke mm/slab.c lockdep annotations:\n\n  [   11.554715] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [   11.555249] [ INFO: possible recursive locking detected ]\n  [   11.555560] 2.6.31-rc1 #896\n  [   11.555861] ---------------------------------------------\n  [   11.556127] udevd/1899 is trying to acquire lock:\n  [   11.556436]  (\u0026nc-\u003elock){-.-...}, at: [\u003cffffffff810c337f\u003e] kmem_cache_free+0xcd/0x25b\n  [   11.557101]\n  [   11.557102] but task is already holding lock:\n  [   11.557706]  (\u0026nc-\u003elock){-.-...}, at: [\u003cffffffff810c3cd0\u003e] kfree+0x137/0x292\n  [   11.558109]\n  [   11.558109] other info that might help us debug this:\n  [   11.558720] 2 locks held by udevd/1899:\n  [   11.558983]  #0:  (\u0026nc-\u003elock){-.-...}, at: [\u003cffffffff810c3cd0\u003e] kfree+0x137/0x292\n  [   11.559734]  #1:  (\u0026parent-\u003elist_lock){-.-...}, at: [\u003cffffffff810c36c7\u003e] __drain_alien_cache+0x3b/0xbd\n  [   11.560442]\n  [   11.560443] stack backtrace:\n  [   11.561009] Pid: 1899, comm: udevd Not tainted 2.6.31-rc1 #896\n  [   11.561276] Call Trace:\n  [   11.561632]  [\u003cffffffff81065ed6\u003e] __lock_acquire+0x15ec/0x168f\n  [   11.561901]  [\u003cffffffff81065f60\u003e] ? __lock_acquire+0x1676/0x168f\n  [   11.562171]  [\u003cffffffff81063c52\u003e] ? trace_hardirqs_on_caller+0x113/0x13e\n  [   11.562490]  [\u003cffffffff8150c337\u003e] ? trace_hardirqs_on_thunk+0x3a/0x3f\n  [   11.562807]  [\u003cffffffff8106603a\u003e] lock_acquire+0xc1/0xe5\n  [   11.563073]  [\u003cffffffff810c337f\u003e] ? kmem_cache_free+0xcd/0x25b\n  [   11.563385]  [\u003cffffffff8150c8fc\u003e] _spin_lock+0x31/0x66\n  [   11.563696]  [\u003cffffffff810c337f\u003e] ? kmem_cache_free+0xcd/0x25b\n  [   11.563964]  [\u003cffffffff810c337f\u003e] kmem_cache_free+0xcd/0x25b\n  [   11.564235]  [\u003cffffffff8109bf8c\u003e] ? __free_pages+0x1b/0x24\n  [   11.564551]  [\u003cffffffff810c3564\u003e] slab_destroy+0x57/0x5c\n  [   11.564860]  [\u003cffffffff810c3641\u003e] free_block+0xd8/0x123\n  [   11.565126]  [\u003cffffffff810c372e\u003e] __drain_alien_cache+0xa2/0xbd\n  [   11.565441]  [\u003cffffffff810c3ce5\u003e] kfree+0x14c/0x292\n  [   11.565752]  [\u003cffffffff8144a007\u003e] skb_release_data+0xc6/0xcb\n  [   11.566020]  [\u003cffffffff81449cf0\u003e] __kfree_skb+0x19/0x86\n  [   11.566286]  [\u003cffffffff81449d88\u003e] consume_skb+0x2b/0x2d\n  [   11.566631]  [\u003cffffffff8144cbe0\u003e] skb_free_datagram+0x14/0x3a\n  [   11.566901]  [\u003cffffffff81462eef\u003e] netlink_recvmsg+0x164/0x258\n  [   11.567170]  [\u003cffffffff81443461\u003e] sock_recvmsg+0xe5/0xfe\n  [   11.567486]  [\u003cffffffff810ab063\u003e] ? might_fault+0xaf/0xb1\n  [   11.567802]  [\u003cffffffff81053a78\u003e] ? autoremove_wake_function+0x0/0x38\n  [   11.568073]  [\u003cffffffff810d84ca\u003e] ? core_sys_select+0x3d/0x2b4\n  [   11.568378]  [\u003cffffffff81065f60\u003e] ? __lock_acquire+0x1676/0x168f\n  [   11.568693]  [\u003cffffffff81442dc1\u003e] ? sockfd_lookup_light+0x1b/0x54\n  [   11.568961]  [\u003cffffffff81444416\u003e] sys_recvfrom+0xa3/0xf8\n  [   11.569228]  [\u003cffffffff81063c8a\u003e] ? trace_hardirqs_on+0xd/0xf\n  [   11.569546]  [\u003cffffffff8100af2b\u003e] system_call_fastpath+0x16/0x1b#\n\nFix that up.\n\nCloses-bug: http://bugzilla.kernel.org/show_bug.cgi?id\u003d13654\nTested-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "8326e284f8deb75eee3d32b973464dd96e120843",
      "tree": "a2c4e18f4e7984680946cab0303e5369f175d4f5",
      "parents": [
        "187dd317f0169142e4adf6263852f93c3b6f6a3c",
        "e888d7facd1f1460a638151036d15b6cfb3ccc74"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 28 11:05:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 28 11:05:28 2009 -0700"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, delay: tsc based udelay should have rdtsc_barrier\n  x86, setup: correct include file in \u003casm/boot.h\u003e\n  x86, setup: Fix typo \"CONFIG_x86_64\" in \u003casm/boot.h\u003e\n  x86, mce: percpu mcheck_timer should be pinned\n  x86: Add sysctl to allow panic on IOCK NMI error\n  x86: Fix uv bau sending buffer initialization\n  x86, mce: Fix mce resume on 32bit\n  x86: Move init_gbpages() to setup_arch()\n  x86: ensure percpu lpage doesn\u0027t consume too much vmalloc space\n  x86: implement percpu_alloc kernel parameter\n  x86: fix pageattr handling for lpage percpu allocator and re-enable it\n  x86: reorganize cpa_process_alias()\n  x86: prepare setup_pcpu_lpage() for pageattr fix\n  x86: rename remap percpu first chunk allocator to lpage\n  x86: fix duplicate free in setup_pcpu_remap() failure path\n  percpu: fix too lazy vunmap cache flushing\n  x86: Set cpu_llc_id on AMD CPUs\n"
    },
    {
      "commit": "acf4968ec9dea49387ca8b3d36dfaa0850bdb2d5",
      "tree": "5854dfdd96744a404a6222b9fc42aa54f9295313",
      "parents": [
        "4698c1f2bbe44ce852ef1a6716973c1f5401a4c4"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Jun 26 17:38:29 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Jun 26 17:38:29 2009 +0100"
      },
      "message": "kmemleak: Slightly change the policy on newly allocated objects\n\nNewly allocated objects are more likely to be reported as false\npositives. Kmemleak ignores the reporting of objects younger than 5\nseconds. However, this age was calculated after the memory scanning\ncompleted which usually takes longer than 5 seconds. This patch\nmake the minimum object age calculation in relation to the start of the\nmemory scanning.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "4698c1f2bbe44ce852ef1a6716973c1f5401a4c4",
      "tree": "9ca3be2353d3757e2926689351eff2bb09aaf6f7",
      "parents": [
        "bab4a34afc301fdb81b6ea0e3098d96fc356e03a"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Jun 26 17:38:27 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Jun 26 17:38:27 2009 +0100"
      },
      "message": "kmemleak: Do not trigger a scan when reading the debug/kmemleak file\n\nSince there is a kernel thread for automatically scanning the memory, it\nmakes sense for the debug/kmemleak file to only show its findings. This\npatch also adds support for \"echo scan \u003e debug/kmemleak\" to trigger an\nintermediate memory scan and eliminates the kmemleak_mutex (scan_mutex\ncovers all the cases now).\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "bab4a34afc301fdb81b6ea0e3098d96fc356e03a",
      "tree": "d9722d26dc944dbad1afd6dd182aa3a21907b96d",
      "parents": [
        "e0a2a1601bec01243bcad44414d06f59dae2eedb"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Jun 26 17:38:26 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Jun 26 17:38:26 2009 +0100"
      },
      "message": "kmemleak: Simplify the reports logged by the scanning thread\n\nBecause of false positives, the memory scanning thread may print too\nmuch information. This patch changes the scanning thread to only print\nthe number of newly suspected leaks. Further information can be read\nfrom the /sys/kernel/debug/kmemleak file.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "e0a2a1601bec01243bcad44414d06f59dae2eedb",
      "tree": "bb0f40e3d798c90c36a1f2befb0a0935fa78bdcc",
      "parents": [
        "a9d9058abab4ac17b79d500506e6c74bd16cecdc"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Jun 26 17:38:25 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Jun 26 17:38:25 2009 +0100"
      },
      "message": "kmemleak: Enable task stacks scanning by default\n\nThis is to reduce the number of false positives reported.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "7ed9f7e5db58c6e8c2b4b738a75d5dcd8e17aad5",
      "tree": "c8ee9b63e1e8d3925b8a08a2b21a331434d183b5",
      "parents": [
        "28d0325ce6e0a52f53d8af687e6427fee59004d3"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Jun 25 12:31:37 2009 -0700"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 26 12:10:47 2009 +0300"
      },
      "message": "fix RCU-callback-after-kmem_cache_destroy problem in sl[aou]b\n\nJesper noted that kmem_cache_destroy() invokes synchronize_rcu() rather than\nrcu_barrier() in the SLAB_DESTROY_BY_RCU case, which could result in RCU\ncallbacks accessing a kmem_cache after it had been destroyed.\n\nCc: \u003cstable@kernel.org\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nReported-by: Jesper Dangaard Brouer \u003chawk@comx.dk\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "dfc2f91ac29f5ef50e74bf15a1a6b6aa6b952e62",
      "tree": "0b3eb3ae6b7b21226cf8e1410aa6dd6d0e07a110",
      "parents": [
        "1fbcf37128cc19bd67d9a736fb634dc444e907d7"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jun 26 04:31:57 2009 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jun 26 04:31:57 2009 +0900"
      },
      "message": "nommu: provide follow_pfn().\n\nWith the introduction of follow_pfn() as an exported symbol, modules have\nbegun making use of it. Unfortunately this was not reflected on nommu at\nthe time, so the in-tree users have subsequently all blown up with link\nerrors there.\n\nThis provides a simple follow_pfn() that just returns addr \u003e\u003e PAGE_SHIFT,\nwhich will do the right thing on nommu. There is no need to do range\nchecking within the vma, as the find_vma() case will already take care of\nthis.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "9d73777e500929b71dcfed16eec05f6760e345a6",
      "tree": "7b2d0e7a619b4a5c994ca8789e680f6e7642849c",
      "parents": [
        "ab420e6d9c2511b862d753b70efb4e979faa0714"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jun 25 11:58:55 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 25 11:22:13 2009 -0700"
      },
      "message": "clarify get_user_pages() prototype\n\nCurrently the 4th parameter of get_user_pages() is called len, but its\nin pages, not bytes. Rename the thing to nr_pages to avoid future\nconfusion.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a9d9058abab4ac17b79d500506e6c74bd16cecdc",
      "tree": "3b12a8f093431979b3e26e04f115b4ce942ce363",
      "parents": [
        "28d0325ce6e0a52f53d8af687e6427fee59004d3"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 25 10:16:11 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 25 10:16:13 2009 +0100"
      },
      "message": "kmemleak: Allow the early log buffer to be configurable.\n\n(feature suggested by Sergey Senozhatsky)\n\nKmemleak needs to track all the memory allocations but some of these\nhappen before kmemleak is initialised. These are stored in an internal\nbuffer which may be exceeded in some kernel configurations. This patch\nadds a configuration option with a default value of 400 and also removes\nthe stack dump when the early log buffer is exceeded.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Sergey Senozhatsky \u003csergey.senozhatsky@mail.by\u003e\n"
    },
    {
      "commit": "c6223048259006759237d826219f0fa4f312fb47",
      "tree": "ee7d50b2d1b5e1d3347a3ec535a8ed563e41a74f",
      "parents": [
        "bd453cd487ac7116a269517779b83c1061debbec",
        "d5bb68adda7cc179e8efadeaa3a283cb470f13a6",
        "3a6a6c16be78472a52f6dd7d88913373b42ad0f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 24 14:17:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 24 14:17:14 2009 -0700"
      },
      "message": "Merge branches \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/{vfs-2.6,audit-current}\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  another race fix in jfs_check_acl()\n  Get \"no acls for this inode\" right, fix shmem breakage\n  inline functions left without protection of ifdef (acl)\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:\n  audit: inode watches depend on CONFIG_AUDIT not CONFIG_AUDIT_SYSCALL\n"
    },
    {
      "commit": "72c04902d1e27c8a324014cff1d4475c11b1cecd",
      "tree": "3e93abdd0a3eeedd6df5a1dc43170744f2fa7664",
      "parents": [
        "641cf4a668e9e69d2bc061e953422ff72a91f86e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 16:58:48 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 16:58:48 2009 -0400"
      },
      "message": "Get \"no acls for this inode\" right, fix shmem breakage\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ba52270d18fb17ce2cf176b35419dab1e43fe4a3",
      "tree": "6023e8e0b5b722be7193902894934aaef21e5144",
      "parents": [
        "4923abf9f1a4c1864af438a57c1f3686548230e9"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Jun 24 21:59:51 2009 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 24 12:20:14 2009 -0700"
      },
      "message": "SLUB: Don\u0027t pass __GFP_FAIL for the initial allocation\n\nSLUB uses higher order allocations by default but falls back to small\norders under memory pressure. Make sure the GFP mask used in the initial\nallocation doesn\u0027t include __GFP_NOFAIL.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4923abf9f1a4c1864af438a57c1f3686548230e9",
      "tree": "cbe9762f552478ce0c2a68728b45d0c604822882",
      "parents": [
        "c82e6d450fda56cb2d4f68534173d3cd11b32f9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 24 12:16:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 24 12:16:49 2009 -0700"
      },
      "message": "Don\u0027t warn about order-1 allocations with __GFP_NOFAIL\n\nTraditionally, we never failed small orders (even regardless of any\n__GFP_NOFAIL flags), and slab will allocate order-1 allocations even for\nsmall allocations that could fit in a single page (in order to avoid\nexcessive fragmentation).\n\nMaybe we should remove this warning entirely, but before making that\njudgement, at least limit it to bigger allocations.\n\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06b16e9f68edaa1e71aee943d3c030bcf7380af1",
      "tree": "fcdbc0302571e6cda4817869a377d7498a44f776",
      "parents": [
        "281eede0328c84a8f20e0e85b807d5b51c3de4f2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 08 19:56:00 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 08:17:06 2009 -0400"
      },
      "message": "switch shmem to inode-\u003ei_acl\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "364df0ebfbbb1330bfc6ca159f4d6020efc15a12",
      "tree": "80c79bf145d8388ad96a0f7c47a4d25642e403a1",
      "parents": [
        "01ff53f416757da416413bc32229770a8448b6ef"
      ],
      "author": {
        "name": "Dimitri Sivanich",
        "email": "sivanich@sgi.com",
        "time": "Tue Jun 23 12:37:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 23 12:50:05 2009 -0700"
      },
      "message": "mm: fix handling of pagesets for downed cpus\n\nAfter downing/upping a cpu, an attempt to set\n/proc/sys/vm/percpu_pagelist_fraction results in an oops in\npercpu_pagelist_fraction_sysctl_handler().\n\nIf a processor is downed then we need to set the pageset pointer back to\nthe boot pageset.\n\nUpdates of the high water marks should not access pagesets of unpopulated\nzones (those pointer go to the boot pagesets which would be no longer\nfunctional if their size would be increased beyond zero).\n\nSigned-off-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a5c9b696ec109bb54d547fdb437a7a0c2d514670",
      "tree": "c97533e38359a2e731bcc2c65f063a27f4f629e6",
      "parents": [
        "626f380d0b264a1e40237f5a2a3dffc5d14f256e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Tue Jun 23 12:36:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 23 12:50:05 2009 -0700"
      },
      "message": "mm: pass mm to grab_swap_token\n\nIf a kthread happens to use get_user_pages() on an mm (as KSM does),\nthere\u0027s a chance that it will end up trying to read in a swap page, then\noops in grab_swap_token() because the kthread has no mm: GUP passes down\nthe right mm, so grab_swap_token() ought to be using it.\n\nWe have not identified a stronger case than KSM\u0027s daemon (not yet in\nmainline), but the issue must have come up before, since RHEL has included\na fix for this for years (though a different fix, they just back out of\ngrab_swap_token if current-\u003emm is unset: which is what we first proposed,\nbut using the right mm here seems more correct).\n\nReported-by: Izik Eidus \u003cieidus@redhat.com\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Rik van Riel \u003criel@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": "95b3692d9c22c659312acb466d0608bf8509f296",
      "tree": "a6978e2f84ab45833f402227d5920a44eca00f1e",
      "parents": [
        "d26ed650d9947a786bbda8de9cd914dbeebc1a68",
        "bf96d1e3e7a35a17cea255048ffb3243bd9c8123"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 23 11:25:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 23 11:25:04 2009 -0700"
      },
      "message": "Merge branch \u0027kmemleak\u0027 of git://linux-arm.org/linux-2.6\n\n* \u0027kmemleak\u0027 of git://linux-arm.org/linux-2.6:\n  kmemleak: Do not force the slab debugging Kconfig options\n  kmemleak: use pr_fmt\n"
    },
    {
      "commit": "d26ed650d9947a786bbda8de9cd914dbeebc1a68",
      "tree": "4d3b9577187b2adca6c48861266842dd4f9e7290",
      "parents": [
        "788c7df451467df71638dd79a2d63d78c6e13b9c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Tue Jun 23 13:52:49 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 23 11:23:33 2009 -0700"
      },
      "message": "mm: don\u0027t rely on flags coincidence\n\nIndeed FOLL_WRITE matches FAULT_FLAG_WRITE, matches GUP_FLAGS_WRITE,\nand it\u0027s tempting to devise a set of Grand Unified Paging flags;\nbut not today.  So until then, let\u0027s rely upon the compiler to spot\nthe coincidence, \"rather than have that subtle dependency and a\ncomment for it\" - as you remarked in another context yesterday.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "788c7df451467df71638dd79a2d63d78c6e13b9c",
      "tree": "30714df634b620784b7a04fefc51d8c09291de38",
      "parents": [
        "a800faec1b21d7133b5f0c8c6dac593b7c4e118d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Tue Jun 23 13:49:05 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 23 11:23:33 2009 -0700"
      },
      "message": "hugetlb: fault flags instead of write_access\n\nhandle_mm_fault() is now passing fault flags rather than write_access\ndown to hugetlb_fault(), so better recognize that in hugetlb_fault(),\nand in hugetlb_no_page().\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb4cbcf6b3cf79f80c157afdc8dd8221643d8481",
      "tree": "a328516967ad0daeff9702a2cf5760fb25fd26a7",
      "parents": [
        "d888a4c76c51092993643f8992bf55b3c28da483"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jun 23 08:57:55 2009 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 23 10:17:28 2009 -0700"
      },
      "message": "mm: fix incorrect page removal from LRU\n\nThe isolated page is \"cursor_page\" not \"page\".\n\nThis could cause LRU list corruption under memory pressure, caught by\nCONFIG_DEBUG_LIST.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nTested-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae281064be164342554b34f4ca5c4af33dce3de1",
      "tree": "d607e7cf60b0cecbc0a0da25a80367a3c0607a16",
      "parents": [
        "d888a4c76c51092993643f8992bf55b3c28da483"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 23 14:40:26 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Tue Jun 23 14:40:26 2009 +0100"
      },
      "message": "kmemleak: use pr_fmt\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "fa8a7094ba1679b4b9b443e0ac9f5e046c79ee8d",
      "tree": "cda9df47b1a84581685d8f4e0cd8ce66cac1d234",
      "parents": [
        "e59a1bb2fdfb745c685f5b40ffbed126331d3223"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Jun 22 11:56:24 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Jun 22 11:56:24 2009 +0900"
      },
      "message": "x86: implement percpu_alloc kernel parameter\n\nAccording to Andi, it isn\u0027t clear whether lpage allocator is worth the\ntrouble as there are many processors where PMD TLB is far scarcer than\nPTE TLB.  The advantage or disadvantage probably depends on the actual\nsize of percpu area and specific processor.  As performance\ndegradation due to TLB pressure tends to be highly workload specific\nand subtle, it is difficult to decide which way to go without more\ndata.\n\nThis patch implements percpu_alloc kernel parameter to allow selecting\nwhich first chunk allocator to use to ease debugging and testing.\n\nWhile at it, make sure all the failure paths report why something\nfailed to help determining why certain allocator isn\u0027t working.  Also,\nkill the \"Great future plan\" comment which had already been realized\nquite some time ago.\n\n[ Impact: allow explicit percpu first chunk allocator selection ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Jan Beulich \u003cJBeulich@novell.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "85ae87c1ad8e18a421e7448a99a42ecda183f29f",
      "tree": "8fcf3fe5bc9a96a1c16244950d944d4a4e7130c5",
      "parents": [
        "f234012f52a37e48f2330e1ca2df69800e797c3b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Jun 22 11:56:23 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Jun 22 11:56:23 2009 +0900"
      },
      "message": "percpu: fix too lazy vunmap cache flushing\n\nIn pcpu_unmap(), flushing virtual cache on vunmap can\u0027t be delayed as\nthe page is going to be returned to the page allocator.  Only TLB\nflushing can be put off such that vmalloc code can handle it lazily.\nFix it.\n\n[ Impact: fix subtle virtual cache flush bug ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d06063cc221fdefcab86589e79ddfdb7c0e14b63",
      "tree": "00ccaf8c1992b57a4445d78b9eae25fde0b3ab31",
      "parents": [
        "30c9f3a9fae79517bca595826a19c6855fbb6d32"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 10 09:01:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 21 13:08:22 2009 -0700"
      },
      "message": "Move FAULT_FLAG_xyz into handle_mm_fault() callers\n\nThis allows the callers to now pass down the full set of FAULT_FLAG_xyz\nflags to handle_mm_fault().  All callers have been (mechanically)\nconverted to the new calling convention, there\u0027s almost certainly room\nfor architectures to clean up their code and then add FAULT_FLAG_RETRY\nwhen that support is added.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "30c9f3a9fae79517bca595826a19c6855fbb6d32",
      "tree": "f7eb9588fe38dc1b045e97409e25c57c516aaf44",
      "parents": [
        "232086b19964d0e13359d30d74b11ca31b0751cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 10 08:43:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 21 13:06:05 2009 -0700"
      },
      "message": "Remove internal use of \u0027write_access\u0027 in mm/memory.c\n\nThe fault handling routines really want more fine-grained flags than a\nsingle \"was it a write fault\" boolean - the callers will want to set\nflags like \"you can return a retry error\" etc.\n\nAnd that\u0027s actually how the VM works internally, but right now the\ntop-level fault handling functions in mm/memory.c all pass just the\n\u0027write_access\u0027 boolean around.\n\nThis switches them over to pass around the FAULT_FLAG_xyzzy \u0027flags\u0027\nvariable instead.  The \u0027write_access\u0027 calling convention still exists\nfor the exported \u0027handle_mm_fault()\u0027 function, but that is next.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c277331d5fbaae5772ed19862feefa91f4e477d3",
      "tree": "fcd980b58d9487421e9b0c45b7c082fa1302debb",
      "parents": [
        "9063c61fd5cbd6f42e95929aa0e02380c9e15656"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Fri Jun 19 19:30:56 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 16:08:22 2009 -0700"
      },
      "message": "mm: page_alloc: clear PG_locked before checking flags on free\n\nda456f1 \"page allocator: do not disable interrupts in free_page_mlock()\" moved\nthe PG_mlocked clearing after the flag sanity checking which makes mlocked\npages always trigger \u0027bad page\u0027.  Fix this by clearing the bit up front.\n\nReported--and-debugged-by: Peter Chubb \u003cpeter.chubb@nicta.com.au\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "433f13a7274ccc3541d2832ffe5ef4472036cc72",
      "tree": "3ae071e5bb856de36c78cce612dfba81bee68523",
      "parents": [
        "1e9c28599879040039f610c5b177e61ef65ff100"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Jun 18 16:48:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 19 16:46:04 2009 -0700"
      },
      "message": "bootmem.c: avoid c90 declaration warning\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "dcce284a259373f9e5570f2e33f79eca84fcf565"
}
