)]}'
{
  "log": [
    {
      "commit": "47c317a7aaa2fbac03811a569829fa954e641520",
      "tree": "e6e20c1d9d73e9b2377e4af8f8381af072f681bb",
      "parents": [
        "e89970aa93b06d0605a488e74af3b0a2a80e03b5",
        "0ebd652b35e988c0be3390e49b39cc064ba1cfce"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 21 12:40:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 21 12:40:15 2008 -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  slub: dump more data on slab corruption\n  SLUB: simplify re on_each_cpu()\n"
    },
    {
      "commit": "db7a94d60f871ce6a52e97d82dea476cee0c4ea0",
      "tree": "1f68ce11e11a4b0b9088271ffa6187e274349f4a",
      "parents": [
        "a6ffb404dc03f806a257faaab831a6cb55c0b790"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 19 22:39:46 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 19 22:39:46 2008 -0700"
      },
      "message": "highmem: Export totalhigh_pages.\n\nHash et al. sizing code in SCTP wants to make the\ncalculation totalram_pages - totalhigh_pages, just\nlike TCP.  But this requires an export for the\nCONFIG_HIGHMEM case to work.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0ebd652b35e988c0be3390e49b39cc064ba1cfce",
      "tree": "320df368cab858929101325f9e3b956e9cd3c52c",
      "parents": [
        "41ab8592ca35a20580665cae18c172816236b21e"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sat Jul 19 14:17:22 2008 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sat Jul 19 14:17:22 2008 +0300"
      },
      "message": "slub: dump more data on slab corruption\n\nThe limit of 128 bytes is too small when debugging slab corruption of the skb\ncache, for example. So increase the limit to PAGE_SIZE to make debugging\ncorruptions easier.\n\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "41ab8592ca35a20580665cae18c172816236b21e",
      "tree": "eca24fc6861ef6a3228089bd72d2e0a723995817",
      "parents": [
        "a3cf859321486f69506326146ab3e2fd15c05c3f"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Jul 16 21:29:02 2008 +0400"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Jul 16 23:55:00 2008 +0300"
      },
      "message": "SLUB: simplify re on_each_cpu()\n\non_each_cpu() expands to function call on UP, too.\n\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "84c3d4aaec3338201b449034beac41635866bddf",
      "tree": "3412951682fb2dd4feb8a5532f8efbaf8b345933",
      "parents": [
        "43d2548bb2ef7e6d753f91468a746784041e522d",
        "fafa3a3f16723997f039a0193997464d66dafd8f"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Jul 16 11:07:59 2008 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Jul 16 11:07:59 2008 +1000"
      },
      "message": "Merge commit \u0027origin/master\u0027\n\nManual merge of:\n\n\tarch/powerpc/Kconfig\n\tarch/powerpc/kernel/stacktrace.c\n\tarch/powerpc/mm/slice.c\n\tarch/ppc/kernel/smp.c"
    },
    {
      "commit": "1a781a777b2f6ac46523fe92396215762ced624d",
      "tree": "4f34bb4aade85c0eb364b53d664ec7f6ab959006",
      "parents": [
        "b9d2252c1e44fa83a4e65fdc9eb93db6297c55af",
        "42a2f217a5e324ed5f2373ab1b7a0a15187c4d6c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 15 21:55:59 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 15 21:55:59 2008 +0200"
      },
      "message": "Merge branch \u0027generic-ipi\u0027 into generic-ipi-for-linus\n\nConflicts:\n\n\tarch/powerpc/Kconfig\n\tarch/s390/kernel/time.c\n\tarch/x86/kernel/apic_32.c\n\tarch/x86/kernel/cpu/perfctr-watchdog.c\n\tarch/x86/kernel/i8259_64.c\n\tarch/x86/kernel/ldt.c\n\tarch/x86/kernel/nmi_64.c\n\tarch/x86/kernel/smpboot.c\n\tarch/x86/xen/smp.c\n\tinclude/asm-x86/hw_irq_32.h\n\tinclude/asm-x86/hw_irq_64.h\n\tinclude/asm-x86/mach-default/irq_vectors.h\n\tinclude/asm-x86/mach-voyager/irq_vectors.h\n\tinclude/asm-x86/smp.h\n\tkernel/Makefile\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b9d2252c1e44fa83a4e65fdc9eb93db6297c55af",
      "tree": "7db5a11d1d57a56fc330b8313680bbbe4eb3a564",
      "parents": [
        "b312bf359e20cc39c00d480fd40a24c245d80bf7",
        "e79aec291da55aa322ddb5d8f3bb04cdf69470d5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 11:26:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 11:26:14 2008 -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: rename slab_destroy_objs\n  slub: current is always valid\n  slub: Add check for kfree() of non slab objects.\n"
    },
    {
      "commit": "e79aec291da55aa322ddb5d8f3bb04cdf69470d5",
      "tree": "aa49571cf5cb7a085dd8bdb9c88ad13e5a1250f7",
      "parents": [
        "88e4ccf294ca62c2da998012a83533ce150c8dce"
      ],
      "author": {
        "name": "Rabin Vincent",
        "email": "rabin@rab.in",
        "time": "Fri Jul 04 00:40:32 2008 +0530"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Jul 15 20:36:02 2008 +0300"
      },
      "message": "slab: rename slab_destroy_objs\n\nWith the removal of destructors, slab_destroy_objs no longer actually\ndestroys any objects, making the kernel doc incorrect and the function\nname misleading.\n\nIn keeping with the other debug functions, rename it to\nslab_destroy_debugcheck and drop the kernel doc.\n\nSigned-off-by: Rabin Vincent \u003crabin@rab.in\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "88e4ccf294ca62c2da998012a83533ce150c8dce",
      "tree": "bfb5e1a3bc4b5f0459cdd2d7ebe6ace2593f4e9d",
      "parents": [
        "0937502af7c9b648ed4e884ccb7f504b01a005a1"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Jun 23 02:58:37 2008 +0400"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Jul 15 20:36:01 2008 +0300"
      },
      "message": "slub: current is always valid\n\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "0937502af7c9b648ed4e884ccb7f504b01a005a1",
      "tree": "25ed40b554b3c5e5e8a34351b38ccffe336a1b40",
      "parents": [
        "4d3702b62e004172f44870763cf56793d8de0cbf"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 28 10:32:22 2008 -0700"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Jul 15 20:36:01 2008 +0300"
      },
      "message": "slub: Add check for kfree() of non slab objects.\n\nWe can detect kfree()s on non slab objects by checking for PageCompound().\nWorks in the same way as for ksize. This helped me catch an invalid\nkfree().\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "8d2567a620ae8c24968a2bdc1c906c724fac1f6a",
      "tree": "8e228abbadbe760e3f015d30c2e1180a67eeb8f9",
      "parents": [
        "bcf559e385ba099996c90469c817d2eb38aba418",
        "49f1487b2e41bd8439ea39a4f15b4064e823cc54"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 08:36:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 08:36:38 2008 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (61 commits)\n  ext4: Documention update for new ordered mode and delayed allocation\n  ext4: do not set extents feature from the kernel\n  ext4: Don\u0027t allow nonextenst mount option for large filesystem\n  ext4: Enable delalloc by default.\n  ext4: delayed allocation i_blocks fix for stat\n  ext4: fix delalloc i_disksize early update issue\n  ext4: Handle page without buffers in ext4_*_writepage()\n  ext4: Add ordered mode support for delalloc\n  ext4: Invert lock ordering of page_lock and transaction start in delalloc\n  mm: Add range_cont mode for writeback\n  ext4: delayed allocation ENOSPC handling\n  percpu_counter: new function percpu_counter_sum_and_set\n  ext4: Add delayed allocation support in data\u003dwriteback mode\n  vfs: add hooks for ext4\u0027s delayed allocation support\n  jbd2: Remove data\u003dordered mode support using jbd buffer heads\n  ext4: Use new framework for data\u003dordered mode in JBD2\n  jbd2: Implement data\u003dordered mode handling via inodes\n  vfs: export filemap_fdatawrite_range()\n  ext4: Fix lock inversion in ext4_ext_truncate()\n  ext4: Invert the locking order of page_lock and transaction start\n  ...\n"
    },
    {
      "commit": "43d2548bb2ef7e6d753f91468a746784041e522d",
      "tree": "77d13fcd48fd998393abb825ec36e2b732684a73",
      "parents": [
        "585583d95c5660973bc0cf64add517b040acd8a4",
        "85082fd7cbe3173198aac0eb5e85ab1edcc6352c"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 15 15:44:51 2008 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 15 15:44:51 2008 +1000"
      },
      "message": "Merge commit \u002785082fd7cbe3173198aac0eb5e85ab1edcc6352c\u0027 into test-build\n\nManual fixup of:\n\n\tarch/powerpc/Kconfig"
    },
    {
      "commit": "e18425a0abc8eafa8e98ecffac517bb0c0904f4b",
      "tree": "5eb743e7201850de19496183554bb34c766948c4",
      "parents": [
        "d1794f2c5b5817eb79ccc5e00701ca748d1b073a",
        "5806b81ac1c0c52665b91723fd4146a4f86e386b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 14:49:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 14:49:54 2008 -0700"
      },
      "message": "Merge branch \u0027tracing/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (228 commits)\n  ftrace: build fix for ftraced_suspend\n  ftrace: separate out the function enabled variable\n  ftrace: add ftrace_kill_atomic\n  ftrace: use current CPU for function startup\n  ftrace: start wakeup tracing after setting function tracer\n  ftrace: check proper config for preempt type\n  ftrace: trace schedule\n  ftrace: define function trace nop\n  ftrace: move sched_switch enable after markers\n  ftrace: prevent ftrace modifications while being kprobe\u0027d, v2\n  fix \"ftrace: store mcount address in rec-\u003eip\"\n  mmiotrace broken in linux-next (8-bit writes only)\n  ftrace: avoid modifying kprobe\u0027d records\n  ftrace: freeze kprobe\u0027d records\n  kprobes: enable clean usage of get_kprobe\n  ftrace: store mcount address in rec-\u003eip\n  ftrace: build fix with gcc 4.3\n  namespacecheck: fixes\n  ftrace: fix \"notrace\" filtering priority\n  ftrace: fix printout\n  ...\n"
    },
    {
      "commit": "a3da5bf84a97d48cfaf66c6842470fc403da5121",
      "tree": "cdf66c0cff8c61eedd60601fc9dffdd1ed39b880",
      "parents": [
        "3b23e665b68387f5ee7b21f7b75ceea4d9acae4a",
        "d59fdcf2ac501de99c3dfb452af5e254d4342886"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 13:43:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 13:43:24 2008 -0700"
      },
      "message": "Merge branch \u0027x86/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (821 commits)\n  x86: make 64bit hpet_set_mapping to use ioremap too, v2\n  x86: get x86_phys_bits early\n  x86: max_low_pfn_mapped fix #4\n  x86: change _node_to_cpumask_ptr to return const ptr\n  x86: I/O APIC: remove an IRQ2-mask hack\n  x86: fix numaq_tsc_disable calling\n  x86, e820: remove end_user_pfn\n  x86: max_low_pfn_mapped fix, #3\n  x86: max_low_pfn_mapped fix, #2\n  x86: max_low_pfn_mapped fix, #1\n  x86_64: fix delayed signals\n  x86: remove conflicting nx6325 and nx6125 quirks\n  x86: Recover timer_ack lost in the merge of the NMI watchdog\n  x86: I/O APIC: Never configure IRQ2\n  x86: L-APIC: Always fully configure IRQ0\n  x86: L-APIC: Set IRQ0 as edge-triggered\n  x86: merge dwarf2 headers\n  x86: use AS_CFI instead of UNWIND_INFO\n  x86: use ignore macro instead of hash comment\n  x86: use matching CFI_ENDPROC\n  ...\n"
    },
    {
      "commit": "6c118e43dc513a7118b49b9ff953fe61e14515dc",
      "tree": "ef654ba1982c17a516697d25b3d0405acb6aeac1",
      "parents": [
        "847106ff628805e1a0aa91e7f53381f3fdfcd839",
        "72f6befeea7dc634a83219287d5b874734b85637"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 13:37:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 13:37:29 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6: (31 commits)\n  avr32: Fix typo of IFSR in a comment in the PIO header file\n  avr32: Power Management support (\"standby\" and \"mem\" modes)\n  avr32: Add system device for the internal interrupt controller (intc)\n  avr32: Add simple SRAM allocator\n  avr32: Enable SDRAMC clock at startup\n  rtc-at32ap700x: Enable wakeup\n  macb: Basic suspend/resume support\n  atmel_serial: Drain console TX shifter before suspending\n  atmel_serial: Fix build on avr32 with CONFIG_PM enabled\n  avr32: Use a quicklist for PTE allocation as well\n  avr32: Use a quicklist for PGD allocation\n  avr32: Cover the kernel page tables in the user PGDs\n  avr32: Store virtual addresses in the PGD\n  avr32: Remove useless zeroing of swapper_pg_dir at startup\n  avr32: Clean up and optimize the TLB operations\n  avr32: Rename at32ap.c -\u003e pdc.c\n  avr32: Move setup_platform() into chip-specific file\n  avr32: Kill special exception handler sections\n  avr32: Kill unneeded #include \u003casm/pgalloc.h\u003e from asm/mmu_context.h\n  avr32: Clean up time.c #includes\n  ...\n"
    },
    {
      "commit": "b7f80afa28866c257876c272d6c013e0dbed3c31",
      "tree": "4e72598307cda046a2e0db5e7c7cb1d8a15574ae",
      "parents": [
        "42c59208219a2d43f0dde94bebc68c20b95b13ce",
        "5e34599fc8ba1e8889095bd56a71fd9802ed5a51"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 13:25:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 13:25:01 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git390.osdl.marist.edu/pub/scm/linux-2.6\n\n* \u0027for-linus\u0027 of git://git390.osdl.marist.edu/pub/scm/linux-2.6: (71 commits)\n  [S390] sclp_tty: Fix scheduling while atomic bug.\n  [S390] sclp_tty: remove ioctl interface.\n  [S390] Remove P390 support.\n  [S390] Cleanup vmcp printk messages.\n  [S390] Cleanup lcs printk messages.\n  [S390] Cleanup kprobes printk messages.\n  [S390] Cleanup vmwatch printk messages.\n  [S390] Cleanup dcssblk printk messages.\n  [S390] Cleanup zfcp dumper printk messages.\n  [S390] Cleanup vmlogrdr printk messages.\n  [S390] Cleanup s390 debug feature print messages.\n  [S390] Cleanup monreader printk messages.\n  [S390] Cleanup appldata printk messages.\n  [S390] Cleanup smsgiucv printk messages.\n  [S390] Cleanup cpacf printk messages.\n  [S390] Cleanup qeth print messages.\n  [S390] Cleanup netiucv printk messages.\n  [S390] Cleanup iucv printk messages.\n  [S390] Cleanup sclp printk messages.\n  [S390] Cleanup zcrypt printk messages.\n  ...\n"
    },
    {
      "commit": "7daf705f362e349983e92037a198b8821db198af",
      "tree": "cf51f77b975718852dc5819dfe90c02a1c1a6bd5",
      "parents": [
        "bce7f793daec3e65ec5c5705d2457b81fe7b5725"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 12:12:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 12:12:53 2008 -0700"
      },
      "message": "Start using the new \u0027%pS\u0027 infrastructure to print symbols\n\nThis simplifies the code significantly, and was the whole point of the\nexercise.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5806b81ac1c0c52665b91723fd4146a4f86e386b",
      "tree": "24ea8763bf308ce1407c1de91dc8de4d2655e1c1",
      "parents": [
        "d14c8a680ccfdeb5e7b9be4d61162c2b373bd1e8",
        "6712e299b7dc78aa4971b85e803435ee6d49a9dd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 14 16:11:52 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 14 16:11:52 2008 +0200"
      },
      "message": "Merge branch \u0027auto-ftrace-next\u0027 into tracing/for-linus\n\nConflicts:\n\n\tarch/x86/kernel/entry_32.S\n\tarch/x86/kernel/process_32.c\n\tarch/x86/kernel/process_64.c\n\tarch/x86/lib/Makefile\n\tinclude/asm-x86/irqflags.h\n\tkernel/Makefile\n\tkernel/sched.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "421c175c4d609864350df495b34d3e99f9fb1bdd",
      "tree": "ea3ade04452a6a6c578ae7895b5451c1bf231bc9",
      "parents": [
        "0788fea4d583a3b7d199696819940ff3387d79a3"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Jul 14 09:59:18 2008 +0200"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Jul 14 10:02:16 2008 +0200"
      },
      "message": "[S390] Add support for memory hot-add.\n\nCc: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "11c2d8174ed3dc4f1971564732689b4a39129702",
      "tree": "ac00daa548ea8ac24ae7a5c8062312e335ab9858",
      "parents": [
        "cde274c0c789404df8ece3f9e7d6506caf0127e2",
        "bce7f793daec3e65ec5c5705d2457b81fe7b5725"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Jul 14 14:29:49 2008 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Jul 14 14:29:49 2008 +1000"
      },
      "message": "Merge commit \u0027origin/HEAD\u0027 into test-merge\n\nManual fixup of include/asm-powerpc/pgtable-ppc64.h"
    },
    {
      "commit": "ae94b8075a2ed58d2318ef03827b25bc844f844e",
      "tree": "7211f558d841cb40e1015d0b7527643ad55cb8e7",
      "parents": [
        "eca91e7838ec92e8c12122849ec7539c4765b689",
        "a26929fb489188ff959b1715ee67f0c9f84405b5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 12 07:29:02 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 12 07:29:02 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into x86/core\n\nConflicts:\n\n\tarch/x86/mm/ioremap.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "06d6cf6959d22037fcec598f4f954db5db3d7356",
      "tree": "3248c7a27114031ac3d0012080a97932a6190469",
      "parents": [
        "d2a1763791a634e315ec926b62829c1e88842c86"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "mm: Add range_cont mode for writeback\n\nFilesystems like ext4 needs to start a new transaction in\nthe writepages for block allocation. This happens with delayed\nallocation and there is limit to how many credits we can request\nfrom the journal layer. So we call write_cache_pages multiple\ntimes with wbc-\u003enr_to_write set to the maximum possible value\nlimitted by the max journal credits available.\n\nAdd a new mode to writeback that enables us to handle this\nbehaviour. In the new mode we update the wbc-\u003erange_start\nto point to the new offset to be written. Next call to\ncall to write_cache_pages will start writeout from specified\nrange_start offset. In the new mode we also limit writing\nto the specified wbc-\u003erange_end.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f4c0a0fdfae708f7aa438c27a380ed4071294e11",
      "tree": "f729aa07b21c0d40c3c2c254b1a99c5b5879b92a",
      "parents": [
        "9ddfc3dc75b5cc55ff3cfa586e962d252f1db9d3"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "vfs: export filemap_fdatawrite_range()\n\nMake filemap_fdatawrite_range() function public, so that it can later\nbe used in ordered mode rewrite by JBD/JBD2.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "bdb21928512a860a60e6a24a849dc5b63cbaf96a",
      "tree": "440a0e418d9eeb8480b26b1e7e47bbff01b4c3de",
      "parents": [
        "96a8e13ed44e380fc2bb6c711d74d5ba698c00b2"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Thu Jul 10 22:21:58 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 10 15:18:50 2008 -0700"
      },
      "message": "slub: Fix use-after-preempt of per-CPU data structure\n\nVegard Nossum reported a crash in kmem_cache_alloc():\n\n\tBUG: unable to handle kernel paging request at da87d000\n\tIP: [\u003cc01991c7\u003e] kmem_cache_alloc+0xc7/0xe0\n\t*pde \u003d 28180163 *pte \u003d 1a87d160\n\tOops: 0002 [#1] PREEMPT SMP DEBUG_PAGEALLOC\n\tPid: 3850, comm: grep Not tainted (2.6.26-rc9-00059-gb190333 #5)\n\tEIP: 0060:[\u003cc01991c7\u003e] EFLAGS: 00210203 CPU: 0\n\tEIP is at kmem_cache_alloc+0xc7/0xe0\n\tEAX: 00000000 EBX: da87c100 ECX: 1adad71a EDX: 6b6b6b6b\n\tESI: 00200282 EDI: da87d000 EBP: f60bfe74 ESP: f60bfe54\n\tDS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\n\nand analyzed it:\n\n  \"The register %ecx looks innocent but is very important here. The disassembly:\n\n       mov    %edx,%ecx\n       shr    $0x2,%ecx\n       rep stos %eax,%es:(%edi) \u003c-- the fault\n\n   So %ecx has been loaded from %edx... which is 0x6b6b6b6b/POISON_FREE.\n   (0x6b6b6b6b \u003e\u003e 2 \u003d\u003d 0x1adadada.)\n\n   %ecx is the counter for the memset, from here:\n\n       memset(object, 0, c-\u003eobjsize);\n\n  i.e. %ecx was loaded from c-\u003eobjsize, so \"c\" must have been freed.\n  Where did \"c\" come from? Uh-oh...\n\n       c \u003d get_cpu_slab(s, smp_processor_id());\n\n  This looks like it has very much to do with CPU hotplug/unplug. Is\n  there a race between SLUB/hotplug since the CPU slab is used after it\n  has been freed?\"\n\nGood analysis.\n\nYeah, it\u0027s possible that a caller of kmem_cache_alloc() -\u003e slab_alloc()\ncan be migrated on another CPU right after local_irq_restore() and\nbefore memset().  The inital cpu can become offline in the mean time (or\na migration is a consequence of the CPU going offline) so its\n\u0027kmem_cache_cpu\u0027 structure gets freed ( slab_cpuup_callback).\n\nAt some point of time the caller continues on another CPU having an\nobsolete pointer...\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nReported-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bac0c9103b31c3dd83ad9d731dd9834e2ba75e4f",
      "tree": "702dd6a7ce06d224d594c2293af546b11ac9f51b",
      "parents": [
        "6329d3021bcfa9038621e6e917d98929421d8ec8",
        "98a05ed4bd7774f533ab185fe0bf2fdc58292d7c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 11:43:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 11:43:00 2008 +0200"
      },
      "message": "Merge branch \u0027tracing/ftrace\u0027 into auto-ftrace-next\n"
    },
    {
      "commit": "b845f313d78e4e259ec449909e3bbadf77b53a6d",
      "tree": "03239e77dbc43f627ce112963736c8b4c53117e6",
      "parents": [
        "e5093ff05d36c64e8f36a9ddb26358256dc133ea"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@linux.vnet.ibm.com",
        "time": "Tue Jul 08 00:28:51 2008 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Jul 09 16:30:45 2008 +1000"
      },
      "message": "mm: Allow architectures to define additional protection bits\n\nThis patch allows architectures to define functions to deal with\nadditional protections bits for mmap() and mprotect().\n\narch_calc_vm_prot_bits() maps additonal protection bits to vm_flags\narch_vm_get_page_prot() maps additional vm_flags to the vma\u0027s vm_page_prot\narch_validate_prot() checks for valid values of the protection bits\n\nNote: vm_get_page_prot() is now pretty ugly, but the generated code\nshould be identical for architectures that don\u0027t define additional\nprotection bits.\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "5dab8ec139be215fbaba216fb4aea914d0f4dac5",
      "tree": "246dfbfdf1d6cbf0177329cedf6da23f6480c27a",
      "parents": [
        "3381959da5a00ae8289cfbd28b0b6d228f2d1d46"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Wed Jun 25 05:44:40 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 13:10:40 2008 +0200"
      },
      "message": "mm, generic, x86 boot: more tweaks to hex prints of some pfn addresses\n\nFix some problems with (and applies on top of) a previous patch:\n  x86 boot: show pfn addresses in hex not decimal in some kernel info printks\n\nPrimarily change \"0x%8lx\" format, which displays with a right aligned\nspace filled hex number (spaces between the \"0x\" prefix and the number),\ninto \"%0#10lx\" format, which zero fills instead of space fills, and\nwhich uses the printf flag \u0027#\u0027 to request the \"0x\" prefix instead of\nhard coding it.\n\nAlso replace some other \"0x%lx\" formats with \"%#lx\", making use of the\n\u0027#\u0027 printf flag again.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: \"Yinghai Lu\" \u003cyhlu.kernel@gmail.com\u003e\nCc: \"Jack Steiner\" \u003csteiner@sgi.com\u003e\nCc: \"Mike Travis\" \u003ctravis@sgi.com\u003e\nCc: \"Huang\nCc: Ying\" \u003cying.huang@intel.com\u003e\nCc: \"Andi Kleen\" \u003candi@firstfloor.org\u003e\nCc: \"Andrew Morton\" \u003cakpm@linux-foundation.org\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2bc0d2615a15a93d344abbe8cb1b9056122bce9d",
      "tree": "8011b668497aac0870119dda987de6501c5d507d",
      "parents": [
        "e2fc252e0ce695b4c4abe27bb073c35bd0d73252"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jun 22 07:22:17 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 12:51:38 2008 +0200"
      },
      "message": "x86 boot: more consistently use type int for node ids\n\nEverywhere I look, node id\u0027s are of type \u0027int\u0027, except in this one\ncase, which has \u0027unsigned long\u0027.  Change this one to \u0027int\u0027 as well.\nThere is nothing special about the way this variable \u0027nid\u0027 is used in\nthis routine to justify using an unusual type here.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: \"Yinghai Lu\" \u003cyhlu.kernel@gmail.com\u003e\nCc: \"Jack Steiner\" \u003csteiner@sgi.com\u003e\nCc: \"Mike Travis\" \u003ctravis@sgi.com\u003e\nCc: \"Huang\nCc: Ying\" \u003cying.huang@intel.com\u003e\nCc: \"Andi Kleen\" \u003candi@firstfloor.org\u003e\nCc: \"Andrew Morton\" \u003cakpm@linux-foundation.org\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e2fc252e0ce695b4c4abe27bb073c35bd0d73252",
      "tree": "53875bf55b7221d65d568bfad1c4568b2c732d04",
      "parents": [
        "c4ba1320b7075e9ce33ad0afaef43ba13260b4c2"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jun 22 07:22:12 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 12:51:37 2008 +0200"
      },
      "message": "x86 boot: show pfn addresses in hex not decimal in some kernel info printks\n\nPage frame numbers (the portion of physical addresses above the low\norder page offsets) are displayed in several kernel debug and info\nprints in decimal, not hex.  Decimal addresse are unreadable.  Use hex.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: \"Yinghai Lu\" \u003cyhlu.kernel@gmail.com\u003e\nCc: \"Jack Steiner\" \u003csteiner@sgi.com\u003e\nCc: \"Mike Travis\" \u003ctravis@sgi.com\u003e\nCc: \"Huang\nCc: Ying\" \u003cying.huang@intel.com\u003e\nCc: \"Andi Kleen\" \u003candi@firstfloor.org\u003e\nCc: \"Andrew Morton\" \u003cakpm@linux-foundation.org\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d52d53b8a5b258bfaab9223a5e7284fcfdd48577",
      "tree": "8871bb322bdb1b31546eaa130e0017a588bbceab",
      "parents": [
        "1ea598c29748a559a0086a84a016886d786e6272"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Mon Jun 16 20:10:55 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 12:48:27 2008 +0200"
      },
      "message": "RFC x86: try to remove arch_get_ram_range\n\nwant to remove arch_get_ram_range, and use early_node_map instead.\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3de352bbd86f890dd0c5e1c09a6a1b0b29e0f8ce",
      "tree": "d4c5eba8cd2abefd7c9f16d089393f0f5999cf63",
      "parents": [
        "1b8ba39a3fad9c58532f6dad12c94d6e675be656",
        "9340e1ccdf7b9b22a2be7f51cd74e8b5e11961bf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 11:14:58 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 11:14:58 2008 +0200"
      },
      "message": "Merge branch \u0027x86/mpparse\u0027 into x86/devel\n\nConflicts:\n\n\tarch/x86/Kconfig\n\tarch/x86/kernel/io_apic_32.c\n\tarch/x86/kernel/setup_64.c\n\tarch/x86/mm/init_32.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b5bc6c0e55000dab86b73f838f5ad02908b23755",
      "tree": "4895117f5e69ed8648f102dccc895c80c14fbae5",
      "parents": [
        "d0be6bdea103b8d04c8a3495538b7c0011ae4129"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Sat Jun 14 18:32:52 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 10:37:25 2008 +0200"
      },
      "message": "x86, mm: use add_highpages_with_active_regions() for high pages init v2\n\nuse early_node_map to init high pages, so we can remove page_is_ram() and\npage_is_reserved_early() in the big loop with add_one_highpage\n\nalso remove page_is_reserved_early(), it is not needed anymore.\n\nv2: fix the build of other platforms\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cc1050bafebfb1d7935331282e948b5016318192",
      "tree": "7e9e6935ed4a18afb63dedbcd808657c683265f5",
      "parents": [
        "d2dbf343329dc777d77488743465f7be4245971d"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Fri Jun 13 19:08:52 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 10:36:29 2008 +0200"
      },
      "message": "x86: replace shrink_active_range() with remove_active_range()\n\nin case we have kva before ramdisk on a node, we still need to use\nthose ranges.\n\nv2: reserve_early kva ram area, in case there are holes in highmem, to avoid\n    those area could be treat as free high pages.\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "896395c290f902576270d84291c1f7f8bfbe339d",
      "tree": "650114bff3a5f808ee1d713ecc443b0eaab2e1c3",
      "parents": [
        "af1cf204ba2fd8135933a2e4df523fb1112dc0e2",
        "1b40a895df6c7d5a80e71f65674060b03d84bbef"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 10:32:56 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 10:32:56 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tmp.x86.mpparse.new\n"
    },
    {
      "commit": "6924d1ab8b7bbe5ab416713f5701b3316b2df85b",
      "tree": "affbf0ff13f7522336f25505e8e7b5f12a34e705",
      "parents": [
        "4e78c91abe1a40b905611100a593be62784ba355",
        "25556c1699ad84dd6077adf67c92eba362aa7dc2",
        "b764a15f679942a7bc9d4f9645299e1defcc5b43",
        "437a0a54eea7b101e8a5b70688009956f6522ed0",
        "41b3eae669fb1ef6ae4acaa937b4e4617a1aa078",
        "84e65b0a84a2c856bef36f13d122047678408b0a",
        "684eb0163a98bc329193b4aa4535cdd705a5dd58",
        "93022136fff9e6130aa128a5ed8a599e93ac813c",
        "5cb04df8d3f03e37a19f2502591a84156be71772",
        "44974c8fc1d7047abe414562e0782320f4c1f511",
        "48cf937f48f68bd1e61f37c6357dbff5adb95532",
        "205f93288093df69f9ab5f6981aef27b91088b28",
        "c54f9da1c8ceee19436430afac0798a989eb886d",
        "0ed368c71aa65cba8d349432bd4dab4a9a2eb39c",
        "b478458aeebfc55fe409abec43794ac72a623c79",
        "2d144e63098be47c21ad59d68a4fd17bd73a3aaf",
        "607baf1f4ef94637ab0f7d0e258932851dc5c0a2",
        "33af9039cbf629041da2bfa0cf451208391a1ec3",
        "3557b18fcbe0e29706214f3c7cc680a7823605eb",
        "63687a528c39a67c1a213cdffa09feb0e6af9dbe",
        "009b9fc98ddd83f9139fdabb12c0d7a8535d5421",
        "f6477cc76c73833a56e97f1fafc36a7ca92927e5",
        "e6b0edef3453677b13e175a104a83eb36d062dd3",
        "400d34944c4ad82a817c06e570bc93b1114aa596"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 09:16:56 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 09:16:56 2008 +0200"
      },
      "message": "Merge branches \u0027x86/numa-fixes\u0027, \u0027x86/apic\u0027, \u0027x86/apm\u0027, \u0027x86/bitops\u0027, \u0027x86/build\u0027, \u0027x86/cleanups\u0027, \u0027x86/cpa\u0027, \u0027x86/cpu\u0027, \u0027x86/defconfig\u0027, \u0027x86/gart\u0027, \u0027x86/i8259\u0027, \u0027x86/intel\u0027, \u0027x86/irqstats\u0027, \u0027x86/kconfig\u0027, \u0027x86/ldt\u0027, \u0027x86/mce\u0027, \u0027x86/memtest\u0027, \u0027x86/pat\u0027, \u0027x86/ptemask\u0027, \u0027x86/resumetrace\u0027, \u0027x86/threadinfo\u0027, \u0027x86/timers\u0027, \u0027x86/vdso\u0027 and \u0027x86/xen\u0027 into x86/devel\n"
    },
    {
      "commit": "d79df630f622806c4d0e116fbaf6ebf6baf53461",
      "tree": "d5a1c06209210c84ec60099687e4a87723ae1599",
      "parents": [
        "b8a0b6ccf2ba2519ace65d782b41ee91bf3c3778"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Fri Jul 04 12:24:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 04 13:03:05 2008 -0700"
      },
      "message": "mempolicy: mask off internal flags for userspace API\n\nFlags considered internal to the mempolicy kernel code are stored as part\nof the \"flags\" member of struct mempolicy.\n\nBefore exposing a policy type to userspace via get_mempolicy(), these\ninternal flags must be masked.  Flags exposed to userspace, however,\nshould still be returned to the user.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a36a752d006f6874049da510297eeb7f09d92a7",
      "tree": "764d02c44b95e34deb9cd3ed9d7bdc03c35ef172",
      "parents": [
        "7ca796f492a11f9408e661c8f22cd8c4f486b8e5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 04 09:59:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 04 10:40:04 2008 -0700"
      },
      "message": "get_user_pages(): fix possible page leak on oom\n\nget_user_pages() must not return the error when i !\u003d 0.  When pages !\u003d\nNULL we have i get_page()\u0027ed pages.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\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": "251b97f552b1ad414cc5a9ccc8e4e94503edd5fc",
      "tree": "5d7559154edb8eb2069f39b6be99ffc2484580cd",
      "parents": [
        "cde53535991fbb5c34a1566f25955297c1487b8d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 04 09:59:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 04 10:40:04 2008 -0700"
      },
      "message": "mm: dirty page accounting vs VM_MIXEDMAP\n\nDirty page accounting accurately measures the amound of dirty pages in\nwritable shared mappings by mapping the pages RO (as indicated by\nvma_wants_writenotify).  We then trap on first write and call\nset_page_dirty() on the page, after which we map the page RW and\ncontinue execution.\n\nWhen we launder dirty pages, we call clear_page_dirty_for_io() which\nclears both the dirty flag, and maps the page RO again before we start\nwriteout so that the story can repeat itself.\n\nvma_wants_writenotify() excludes VM_PFNMAP on the basis that we cannot\ndo the regular dirty page stuff on raw PFNs and the memory isn\u0027t going\nanywhere anyway.\n\nThe recently introduced VM_MIXEDMAP mixes both !pfn_valid() and\npfn_valid() pages in a single mapping.\n\nWe can\u0027t do dirty page accounting on !pfn_valid() pages as stated\nabove, and mapping them RO causes them to be COW\u0027ed on write, which\nbreaks VM_SHARED semantics.\n\nExcluding VM_MIXEDMAP in vma_wants_writenotify() would mean we don\u0027t do\nthe regular dirty page accounting for the pfn_valid() pages, which\nwould bring back all the head-aches from inaccurate dirty page\naccounting.\n\nSo instead, we let the !pfn_valid() pages get mapped RO, but fix them\nup unconditionally in the fault path.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: \"Jared Hulbert\" \u003cjaredeh@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cde53535991fbb5c34a1566f25955297c1487b8d",
      "tree": "4f87e67b52c8761cfc421a619379263733b91159",
      "parents": [
        "a926c063738f31c8c8b5c2b883812a40e7868072"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jul 04 09:59:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 04 10:40:04 2008 -0700"
      },
      "message": "Christoph has moved\n\nRemove all clameter@sgi.com addresses from the kernel tree since they will\nbecome invalid on June 27th.  Change my maintainer email address for the\nslab allocators to cl@linux-foundation.org (which will be the new email\naddress for the future).\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ea9eed49346eb80f17f1c6539c47dc508be1173",
      "tree": "a3e82cc6e3deded667a7eda071894c1ddf079db7",
      "parents": [
        "852bb9f594e0ea737f83487962a040ad210e8a13",
        "41d54d3bf83f62d3ff5948cb788fe6007e66a0d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 04 09:48:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 04 09:48:21 2008 -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  slub: Do not use 192 byte sized cache if minimum alignment is 128 byte\n"
    },
    {
      "commit": "494de90098784b8e2797598cefdd34188884ec2e",
      "tree": "cef8c0655f85ed64bb7426df3eeb794c2cf27580",
      "parents": [
        "c461a973118346d5c103aaaddd62e53939fd7c67"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Jul 03 05:27:51 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 03 09:22:59 2008 -0700"
      },
      "message": "Do not overwrite nr_zones on !NUMA when initialising zlcache_ptr\n\nThe non-NUMA case of build_zonelist_cache() would initialize the\nzlcache_ptr for both node_zonelists[] to NULL.\n\nWhich is problematic, since non-NUMA only has a single node_zonelists[]\nentry, and trying to zero the non-existent second one just overwrote the\nnr_zones field instead.\n\nAs kswapd uses this value to determine what reclaim work is necessary,\nthe result is that kswapd never reclaims.  This causes processes to\nstall frequently in low-memory situations as they always direct reclaim.\nThis patch initialises zlcache_ptr correctly.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nTested-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n[ Simplified patch a bit ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41d54d3bf83f62d3ff5948cb788fe6007e66a0d0",
      "tree": "7aef950af184b3f9b406127415be1f0b52bca8c7",
      "parents": [
        "481c5346d0981940ee63037eb53e4e37b0735c10"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Thu Jul 03 09:14:26 2008 -0500"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Jul 03 19:01:55 2008 +0300"
      },
      "message": "slub: Do not use 192 byte sized cache if minimum alignment is 128 byte\n\nThe 192 byte cache is not necessary if we have a basic alignment of 128\nbyte. If it would be used then the 192 would be aligned to the next 128 byte\nboundary which would result in another 256 byte cache. Two 256 kmalloc caches\ncause sysfs to complain about a duplicate entry.\n\nMIPS needs 128 byte aligned kmalloc caches and spits out warnings on boot without\nthis patch.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "38510754a50192a072210e24fdc4ae65592182f0",
      "tree": "f14de78921e4e6a5f56aee93d5ba921c57c2a82f",
      "parents": [
        "5a4d5292779b6163aa41e594a56307e442fbe73c"
      ],
      "author": {
        "name": "Haavard Skinnemoen",
        "email": "haavard.skinnemoen@atmel.com",
        "time": "Mon Jan 14 23:35:32 2008 +0100"
      },
      "committer": {
        "name": "Haavard Skinnemoen",
        "email": "haavard.skinnemoen@atmel.com",
        "time": "Wed Jul 02 11:01:29 2008 +0200"
      },
      "message": "avr32: Use a quicklist for PTE allocation as well\n\nUsing a quicklist to allocate PTEs might be slightly faster than using\nthe page allocator directly since we might avoid zeroing the page\nafter each allocation.\n\nSigned-off-by: Haavard Skinnemoen \u003chaavard.skinnemoen@atmel.com\u003e\n"
    },
    {
      "commit": "15c8b6c1aaaf1c4edd67e2f02e4d8e1bd1a51c0d",
      "tree": "3658f893c2f89ea0be4c6cc08aa11fa54476d0f4",
      "parents": [
        "8691e5a8f691cc2a4fda0651e8d307aaba0e7d68"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 09 09:39:44 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jun 26 11:24:38 2008 +0200"
      },
      "message": "on_each_cpu(): kill unused \u0027retry\u0027 parameter\n\nIt\u0027s not even passed on to smp_call_function() anymore, since that\nwas removed. So kill it.\n\nAcked-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1ea0704e0da65b2b46f9142ff1391163aac24060",
      "tree": "420215f0876bc9cf3da5a21e5c5904611f821faa",
      "parents": [
        "d02859ecb321c8c0f74cb9bbe3f51a59e58822b0"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Mon Jun 16 04:30:00 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 25 15:15:53 2008 +0200"
      },
      "message": "mm: add a ptep_modify_prot transaction abstraction\n\nThis patch adds an API for doing read-modify-write updates to a pte\u0027s\nprotection bits which may race against hardware updates to the pte.\nAfter reading the pte, the hardware may asynchonously set the accessed\nor dirty bits on a pte, which would be lost when writing back the\nmodified pte value.\n\nThe existing technique to handle this race is to use\nptep_get_and_clear() atomically fetch the old pte value and clear it\nin memory.  This has the effect of marking the pte as non-present,\nwhich will prevent the hardware from updating its state.  When the new\nvalue is written back, the pte will be present again, and the hardware\ncan resume updating the access/dirty flags.\n\nWhen running in a virtualized environment, pagetable updates are\nrelatively expensive, since they generally involve some trap into the\nhypervisor.  To mitigate the cost of these updates, we tend to batch\nthem.\n\nHowever, because of the atomic nature of ptep_get_and_clear(), it is\ninherently non-batchable.  This new interface allows batching by\ngiving the underlying implementation enough information to open a\ntransaction between the read and write phases:\n\nptep_modify_prot_start() returns the current pte value, and puts the\n  pte entry into a state where either the hardware will not update the\n  pte, or if it does, the updates will be preserved on commit.\n\nptep_modify_prot_commit() writes back the updated pte, makes sure that\n  any hardware updates made since ptep_modify_prot_start() are\n  preserved.\n\nptep_modify_prot_start() and _commit() must be exactly paired, and\nused while holding the appropriate pte lock.  They do not protect\nagainst other software updates of the pte in any way.\n\nThe current implementations of ptep_modify_prot_start and _commit are\nfunctionally unchanged from before: _start() uses ptep_get_and_clear()\nfetch the pte and zero the entry, preventing any hardware updates.\n_commit() simply writes the new pte value back knowing that the\nhardware has not updated the pte in the meantime.\n\nThe only current user of this interface is mprotect\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "97e6722b8d6b5880c4d5751127d5083b1b7df27d",
      "tree": "060c52298d42530f975064f7addc4e637fe00289",
      "parents": [
        "f22f9a89ce6857d377bf22dba4c1a8cd256c5136",
        "543cf4cb3fe6f6cae3651ba918b9c56200b257d0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 25 12:27:56 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 25 12:27:56 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/ftrace\n"
    },
    {
      "commit": "945754a1754f9d4c2974a8241ad4f92fad7f3a6a",
      "tree": "d310dc918d8094a1a6e00e15b24f7953616d7a82",
      "parents": [
        "672ca28e300c17bf8d792a2a7a8631193e580c74"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Jun 23 14:30:30 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 23 11:28:32 2008 -0700"
      },
      "message": "mm: fix race in COW logic\n\nThere is a race in the COW logic.  It contains a shortcut to avoid the\nCOW and reuse the page if we have the sole reference on the page,\nhowever it is possible to have two racing do_wp_page()ers with one\ncausing the other to mistakenly believe it is safe to take the shortcut\nwhen it is not.  This could lead to data corruption.\n\nProcess 1 and process2 each have a wp pte of the same anon page (ie.\none forked the other).  The page\u0027s mapcount is 2.  Then they both\nattempt to write to it around the same time...\n\n  proc1\t\t\t\tproc2 thr1\t\t\tproc2 thr2\n  CPU0\t\t\t\tCPU1\t\t\t\tCPU3\n  do_wp_page()\t\t\tdo_wp_page()\n\t\t\t\t trylock_page()\n\t\t\t\t  can_share_swap_page()\n\t\t\t\t   load page mapcount (\u003d\u003d2)\n\t\t\t\t  reuse \u003d 0\n\t\t\t\t pte unlock\n\t\t\t\t copy page to new_page\n\t\t\t\t pte lock\n\t\t\t\t page_remove_rmap(page);\n   trylock_page()\n    can_share_swap_page()\n     load page mapcount (\u003d\u003d1)\n    reuse \u003d 1\n   ptep_set_access_flags (allow W)\n\n  write private key into page\n\t\t\t\t\t\t\t\tread from page\n\t\t\t\tptep_clear_flush()\n\t\t\t\tset_pte_at(pte of new_page)\n\nFix this by moving the page_remove_rmap of the old page after the pte\nclear and flush.  Potentially the entire branch could be moved down\nhere, but in order to stay consistent, I won\u0027t (should probably move all\nthe *_mm_counter stuff with one patch).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "672ca28e300c17bf8d792a2a7a8631193e580c74",
      "tree": "73b414f017d15cd404528e2fdd555a93bdb69b61",
      "parents": [
        "96a331b1d6426726c37242ddbe939ee14b255790"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 23 11:21:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 23 11:21:37 2008 -0700"
      },
      "message": "Fix ZERO_PAGE breakage with vmware\n\nCommit 89f5b7da2a6bad2e84670422ab8192382a5aeb9f (\"Reinstate ZERO_PAGE\noptimization in \u0027get_user_pages()\u0027 and fix XIP\") broke vmware, as\nreported by Jeff Chua:\n\n  \"This broke vmware 6.0.4.\n   Jun 22 14:53:03.845: vmx| NOT_IMPLEMENTED\n   /build/mts/release/bora-93057/bora/vmx/main/vmmonPosix.c:774\"\n\nand the reason seems to be that there\u0027s an old bug in how we handle do\nFOLL_ANON on VM_SHARED areas in get_user_pages(), but since it only\ntriggered if the whole page table was missing, nobody had apparently hit\nit before.\n\nThe recent changes to \u0027follow_page()\u0027 made the FOLL_ANON logic trigger\nnot just for whole missing page tables, but for individual pages as\nwell, and exposed this problem.\n\nThis fixes it by making the test for when FOLL_ANON is used more\ncareful, and also makes the code easier to read and understand by moving\nthe logic to a separate inline function.\n\nReported-and-tested-by: Jeff Chua \u003cjeff.chua.linux@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f34bfb1beef8a17ba3d46b60f8fa19ffedc1ed8d",
      "tree": "0816c565d26ae24854616faa0d497be365c2fe8b",
      "parents": [
        "ee4311adf105f4d740f52e3948acc1d81598afcc",
        "481c5346d0981940ee63037eb53e4e37b0735c10"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 23 11:11:42 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 23 11:11:42 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/ftrace\n"
    },
    {
      "commit": "481c5346d0981940ee63037eb53e4e37b0735c10",
      "tree": "3fcae626ec4e1d4e698008671cfd62d794992ac5",
      "parents": [
        "62a8efe632be1815b544845db643f1fcd9afcfb0"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sat Jun 21 16:46:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 21 16:51:02 2008 -0700"
      },
      "message": "Slab: Fix memory leak in fallback_alloc()\n\nThe zonelist patches caused the loop that checks for available\nobjects in permitted zones to not terminate immediately. One object\nper zone per allocation may be allocated and then abandoned.\n\nBreak the loop when we have successfully allocated one object.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71c2742f5e6348d76ee62085cf0a13e5eff0f00e",
      "tree": "44020f575319903e3ef18665baec360b6ea1c98d",
      "parents": [
        "a19214430d27a3af6f1672ec26f3c893ef899ede"
      ],
      "author": {
        "name": "Bernhard Walle",
        "email": "bwalle@suse.de",
        "time": "Sat Jun 21 19:01:02 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 21 11:25:10 2008 -0700"
      },
      "message": "Add return value to reserve_bootmem_node()\n\nThis patch changes the function reserve_bootmem_node() from void to int,\nreturning -ENOMEM if the allocation fails.\n\nThis fixes a build problem on x86 with CONFIG_KEXEC\u003dy and\nCONFIG_NEED_MULTIPLE_NODES\u003dy\n\nSigned-off-by: Bernhard Walle \u003cbwalle@suse.de\u003e\nReported-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89f5b7da2a6bad2e84670422ab8192382a5aeb9f",
      "tree": "4f55cf9ef8a76d4b9a960e1b443ed015e63e713f",
      "parents": [
        "9bedbcb207ed9a571b239231d99c8fd4a34ae24d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 20 11:18:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 20 11:18:25 2008 -0700"
      },
      "message": "Reinstate ZERO_PAGE optimization in \u0027get_user_pages()\u0027 and fix XIP\n\nKAMEZAWA Hiroyuki and Oleg Nesterov point out that since the commit\n557ed1fa2620dc119adb86b34c614e152a629a80 (\"remove ZERO_PAGE\") removed\nthe ZERO_PAGE from the VM mappings, any users of get_user_pages() will\ngenerally now populate the VM with real empty pages needlessly.\n\nWe used to get the ZERO_PAGE when we did the \"handle_mm_fault()\", but\nsince fault handling no longer uses ZERO_PAGE for new anonymous pages,\nwe now need to handle that special case in follow_page() instead.\n\nIn particular, the removal of ZERO_PAGE effectively removed the core\nfile writing optimization where we would skip writing pages that had not\nbeen populated at all, and increased memory pressure a lot by allocating\nall those useless newly zeroed pages.\n\nThis reinstates the optimization by making the unmapped PTE case the\nsame as for a non-existent page table, which already did this correctly.\n\nWhile at it, this also fixes the XIP case for follow_page(), where the\ncaller could not differentiate between the case of a page that simply\ncould not be used (because it had no \"struct page\" associated with it)\nand a page that just wasn\u0027t mapped.\n\nWe do that by simply returning an error pointer for pages that could not\nbe turned into a \"struct page *\".  The error is arbitrarily picked to be\nEFAULT, since that was what get_user_pages() already used for the\nequivalent IO-mapped page case.\n\n[ Also removed an impossible test for pte_offset_map_lock() failing:\n  that\u0027s not how that function works ]\n\nAcked-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e765ee90da62535ac7d7a97f2464f9646539d683",
      "tree": "7a9cecce5aab958938e9a3bf46c2302d6af1958c",
      "parents": [
        "a4500b84c51645bbc86be3ca84f2252b7ada060f",
        "066519068ad2fbe98c7f45552b1f592903a9c8c8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 16 11:15:58 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 16 11:15:58 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/ftrace\n"
    },
    {
      "commit": "2165009bdf63f79716a36ad545df14c3cdf958b7",
      "tree": "83d1735f2104b6b5158be56a362856ac1079861d",
      "parents": [
        "cfc53f65f56f9f33c0cf522124045ac5a64076b3"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Thu Jun 12 15:21:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 12 18:05:41 2008 -0700"
      },
      "message": "pagemap: pass mm into pagewalkers\n\nWe need this at least for huge page detection for now, because powerpc\nneeds the vm_area_struct to be able to determine whether a virtual address\nis referring to a huge page (its pmd_huge() doesn\u0027t work).\n\nIt might also come in handy for some of the other users.\n\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c700be3d1320d2be4f04c8a5330186b7df724438",
      "tree": "f6f44d9fc37462ecc7ae7bac6b26c3da9ac29964",
      "parents": [
        "df0bcab2c66ac876d5e80864fca5cce944a44540"
      ],
      "author": {
        "name": "kosaki.motohiro@jp.fujitsu.com",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Jun 12 15:21:27 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 12 18:05:39 2008 -0700"
      },
      "message": "mm: fix incorrect variable type in do_try_to_free_pages()\n\n\"Smarter retry of costly-order allocations\" patch series change behaver of\ndo_try_to_free_pages().  But unfortunately ret variable type was\nunchanged.\n\nThus an overflow is possible.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a1603be58f11edb1b30cb1e40cfbdd4439289d0",
      "tree": "822e2711385da42bd3b53472b74ee99963913915",
      "parents": [
        "f969c5672b16b857e5231ad3c78f08d8ef3305aa"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jun 12 16:29:55 2008 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 12 07:56:17 2008 -0700"
      },
      "message": "nommu: Correct kobjsize() page validity checks.\n\nThis implements a few changes on top of the recent kobjsize() refactoring\nintroduced by commit 6cfd53fc03670c7a544a56d441eb1a6cc800d72b.\n\nAs Christoph points out:\n\n\tvirt_to_head_page cannot return NULL. virt_to_page also\n\tdoes not return NULL. pfn_valid() needs to be used to\n\tfigure out if a page is valid.  Otherwise the page struct\n\treference that was returned may have PageReserved() set\n\tto indicate that it is not a valid page.\n\nAs discussed further in the thread, virt_addr_valid() is the preferable\nway to validate the object pointer in this case. In addition to fixing\nup the reserved page case, it also has the benefit of encapsulating the\nhack introduced by commit 4016a1390d07f15b267eecb20e76a48fd5c524ef on\nthe impacted platforms, allowing us to get rid of the extra checking in\nkobjsize() for the platforms that don\u0027t perform this type of bizarre\nmemory_end abuse (every nommu platform that isn\u0027t blackfin). If blackfin\ndecides to get in line with every other platform and use PageReserved\nfor the DMA pages in question, kobjsize() will also continue to work\nfine.\n\nIt also turns out that compound_order() will give us back 0-order for\nnon-head pages, so we can get rid of the PageCompound check and just\nuse compound_order() directly. Clean that up while we\u0027re at it.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nReviewed-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc1a9d86ce989083703c4bdc11b75a87e1cc404a",
      "tree": "ee2b58df708b291f4a20311508cb26438647f82f",
      "parents": [
        "db3660c1905293b91653e07f7857576df71ebf28"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Sun Jun 08 19:39:16 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 10 11:31:44 2008 +0200"
      },
      "message": "mm, x86: shrink_active_range() should check all\n\nNow we are using register_e820_active_regions() instead of\nadd_active_range() directly. So end_pfn could be different between the\nvalue in early_node_map to node_end_pfn.\n\nSo we need to make shrink_active_range() smarter.\n\nshrink_active_range() is a generic MM function in mm/page_alloc.c but\nit is only used on 32-bit x86. Should we move it back to some file in\narch/x86?\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dfa7e20cc0d1a7a620def4dce97de1ae5375f99b",
      "tree": "0e197e502fc884e9de2bc49d3d9cdbee9e7bc3c4",
      "parents": [
        "d5791d13b1d45542895104edf4b09476d5ad24b0"
      ],
      "author": {
        "name": "Russ Anderson",
        "email": "rja@sgi.com",
        "time": "Mon Jun 09 11:18:45 2008 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 09 10:22:24 2008 -0700"
      },
      "message": "mm: Minor clean-up of page flags in mm/page_alloc.c\n\nMinor source code cleanup of page flags in mm/page_alloc.c.\nMove the definition of the groups of bits to page-flags.h.\n\nThe purpose of this clean up is that the next patch will\nconditionally add a page flag to the groups.  Doing that\nin a header file is cleaner than adding #ifdefs to the\nC code.\n\nSigned-off-by: Russ Anderson \u003crja@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6cfd53fc03670c7a544a56d441eb1a6cc800d72b",
      "tree": "806badd9dc55ff81822694037ff10425b99eacaa",
      "parents": [
        "6f09bdfc717a0e1a89a029001484d5a195faab64"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jun 05 22:46:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 06 11:29:09 2008 -0700"
      },
      "message": "nommu: fix kobjsize() for SLOB and SLUB\n\nkobjsize() has been abusing page-\u003eindex as a method for sorting out\ncompound order, which blows up both for page cache pages, and SLOB\u0027s\nreuse of the index in struct slob_page.\n\nPresently we are not able to accurately size arbitrary pointers that\ndon\u0027t come from kmalloc(), so the best we can do is sort out the\ncompound order from the head page if it\u0027s a compound page, or default\nto 0-order if it\u0027s impossible to ksize() the object.\n\nObviously this leaves quite a bit to be desired in terms of object\nsizing accuracy, but the behaviour is unchanged over the existing\nimplementation, while fixing the page-\u003eindex oopses originally reported\nhere:\n\n\thttp://marc.info/?l\u003dlinux-mm\u0026m\u003d121127773325245\u0026w\u003d2\n\nAccuracy could also be improved by having SLUB and SLOB both set PG_slab\non ksizeable pages, rather than just handling the __GFP_COMP cases\nirregardless of the PG_slab setting, as made possibly with Pekka\u0027s\npatches:\n\n\thttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d121139439900534\u0026w\u003d2\n\thttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d121139440000537\u0026w\u003d2\n\thttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d121139440000540\u0026w\u003d2\n\nThis is primarily a bugfix for nommu systems for 2.6.26, with the aim\nbeing to gradually kill off kobjsize() and its particular brand of\nobject abuse entirely.\n\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a5b4592cf77b973c29e7c9695873a26052b58951",
      "tree": "9f2af3014d5d41ddc22d7aa2793b871ee15297d8",
      "parents": [
        "33dda515a1995dfb3b6b57d7ace9b3ee9d449c11"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Jun 05 22:46:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 06 11:29:09 2008 -0700"
      },
      "message": "brk: make sys_brk() honor COMPAT_BRK when computing lower bound\n\nFix a regression introduced by\n\ncommit 4cc6028d4040f95cdb590a87db478b42b8be0508\nAuthor: Jiri Kosina \u003cjkosina@suse.cz\u003e\nDate:   Wed Feb 6 22:39:44 2008 +0100\n\n    brk: check the lower bound properly\n\nThe check in sys_brk() on minimum value the brk might have must take\nCONFIG_COMPAT_BRK setting into account.  When this option is turned on\n(i.e.  we support ancient legacy binaries, e.g.  libc5-linked stuff), the\nlower bound on brk value is mm-\u003eend_code, otherwise the brk start is\nallowed to be arbitrarily shifted.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nTested-by: Geert Uytterhoeven \u003cgeert@linux-m68k.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": "4647875819aa210115d926242aa18e034517cece",
      "tree": "585c9743038dc7a8ac8651ea316d2e6ff0c0e274",
      "parents": [
        "e2d4ecafd24d6eee4ae6bdbede0cfd0e78423a33"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jun 05 22:45:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 06 11:29:09 2008 -0700"
      },
      "message": "hugetlb: fix lockdep error\n\n\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[ INFO: possible recursive locking detected ]\n2.6.26-rc4 #30\n---------------------------------------------\nheap-overflow/2250 is trying to acquire lock:\n (\u0026mm-\u003epage_table_lock){--..}, at: [\u003cc0000000000cf2e8\u003e] .copy_hugetlb_page_range+0x108/0x280\n\nbut task is already holding lock:\n (\u0026mm-\u003epage_table_lock){--..}, at: [\u003cc0000000000cf2dc\u003e] .copy_hugetlb_page_range+0xfc/0x280\n\nother info that might help us debug this:\n3 locks held by heap-overflow/2250:\n #0:  (\u0026mm-\u003emmap_sem){----}, at: [\u003cc000000000050e44\u003e] .dup_mm+0x134/0x410\n #1:  (\u0026mm-\u003emmap_sem/1){--..}, at: [\u003cc000000000050e54\u003e] .dup_mm+0x144/0x410\n #2:  (\u0026mm-\u003epage_table_lock){--..}, at: [\u003cc0000000000cf2dc\u003e] .copy_hugetlb_page_range+0xfc/0x280\n\nstack backtrace:\nCall Trace:\n[c00000003b2774e0] [c000000000010ce4] .show_stack+0x74/0x1f0 (unreliable)\n[c00000003b2775a0] [c0000000003f10e0] .dump_stack+0x20/0x34\n[c00000003b277620] [c0000000000889bc] .__lock_acquire+0xaac/0x1080\n[c00000003b277740] [c000000000089000] .lock_acquire+0x70/0xb0\n[c00000003b2777d0] [c0000000003ee15c] ._spin_lock+0x4c/0x80\n[c00000003b277870] [c0000000000cf2e8] .copy_hugetlb_page_range+0x108/0x280\n[c00000003b277950] [c0000000000bcaa8] .copy_page_range+0x558/0x790\n[c00000003b277ac0] [c000000000050fe0] .dup_mm+0x2d0/0x410\n[c00000003b277ba0] [c000000000051d24] .copy_process+0xb94/0x1020\n[c00000003b277ca0] [c000000000052244] .do_fork+0x94/0x310\n[c00000003b277db0] [c000000000011240] .sys_clone+0x60/0x80\n[c00000003b277e30] [c0000000000078c4] .ppc_clone+0x8/0xc\n\nFix is the same way that mm/memory.c copy_page_range does the\nlockdep annotation.\n\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8c27ac9191ab9e6506ae5cbe70d87ac50f8e960",
      "tree": "2495cf0575b34b69210eca62c91224b474cf5092",
      "parents": [
        "0596152388e234efebce464355186ad9e16c8cb6"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Sun Jun 01 13:15:22 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 03 13:26:26 2008 +0200"
      },
      "message": "x86, numa, 32-bit: print out debug info on all kvas\n\nalso fix the print out of node_remap_end_vaddr\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1434b65731963207a4cc84bd87e6191e34321986",
      "tree": "07f58551b451675c2f85ebe88e5feb8971577d78",
      "parents": [
        "4934ed888e6fe78d9d339471fb870819da911e8b",
        "76994412f8e824e79a593d6777ec327d85f942b2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 26 10:21:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 26 10:21:26 2008 -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  slub: ksize() abuse checks\n  slob: Fix to return wrong pointer\n"
    },
    {
      "commit": "cd94b9dbfa300fc42e45f230010623fc08d59563",
      "tree": "ad9581e94a635032d74d3905975ebd4c39bed5f2",
      "parents": [
        "7eb54824b76793dd86afb54f182ef9aa64b3a45a"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri May 23 13:04:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 24 09:56:12 2008 -0700"
      },
      "message": "memory hotplug: fix early allocation handling\n\nTrying to add memory via add_memory() from within an initcall function\nresults in\n\nbootmem alloc of 163840 bytes failed!\nKernel panic - not syncing: Out of memory\n\nThis is caused by zone_wait_table_init() which uses system_state to decide\nif it should use the bootmem allocator or not.\n\nWhen initcalls are handled the system_state is still SYSTEM_BOOTING but\nthe bootmem allocator doesn\u0027t work anymore.  So the allocation will fail.\n\nTo fix this use slab_is_available() instead as indicator like we do it\neverywhere else.\n\n[akpm@linux-foundation.org: coding-style fix]\nReviewed-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7eb54824b76793dd86afb54f182ef9aa64b3a45a",
      "tree": "400753c14099e9ecbba9ab4665b4c1badd180839",
      "parents": [
        "03a74dcc7eebe6edd778317e82fafdf71e68488c"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Fri May 23 13:04:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 24 09:56:11 2008 -0700"
      },
      "message": "zonelists: handle a node zonelist with no applicable entries\n\nWhen booting 2.6.26-rc3 on a multi-node x86_32 numa system we are seeing\npanics when trying node local allocations:\n\n BUG: unable to handle kernel NULL pointer dereference at 0000034c\n IP: [\u003cc1042507\u003e] get_page_from_freelist+0x4a/0x18e\n *pdpt \u003d 00000000013a7001 *pde \u003d 0000000000000000\n Oops: 0000 [#1] SMP\n Modules linked in:\n\n Pid: 0, comm: swapper Not tainted (2.6.26-rc3-00003-g5abc28d #82)\n EIP: 0060:[\u003cc1042507\u003e] EFLAGS: 00010282 CPU: 0\n EIP is at get_page_from_freelist+0x4a/0x18e\n EAX: c1371ed8 EBX: 00000000 ECX: 00000000 EDX: 00000000\n ESI: f7801180 EDI: 00000000 EBP: 00000000 ESP: c1371ec0\n  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068\n Process swapper (pid: 0, ti\u003dc1370000 task\u003dc12f5b40 task.ti\u003dc1370000)\n Stack: 00000000 00000000 00000000 00000000 000612d0 000412d0 00000000 000412d0\n        f7801180 f7c0101c f7c01018 c10426e4 f7c01018 00000001 00000044 00000000\n        00000001 c12f5b40 00000001 00000010 00000000 000412d0 00000286 000412d0\n Call Trace:\n  [\u003cc10426e4\u003e] __alloc_pages_internal+0x99/0x378\n  [\u003cc10429ca\u003e] __alloc_pages+0x7/0x9\n  [\u003cc105e0e8\u003e] kmem_getpages+0x66/0xef\n  [\u003cc105ec55\u003e] cache_grow+0x8f/0x123\n  [\u003cc105f117\u003e] ____cache_alloc_node+0xb9/0xe4\n  [\u003cc105f427\u003e] kmem_cache_alloc_node+0x92/0xd2\n  [\u003cc122118c\u003e] setup_cpu_cache+0xaf/0x177\n  [\u003cc105e6ca\u003e] kmem_cache_create+0x2c8/0x353\n  [\u003cc13853af\u003e] kmem_cache_init+0x1ce/0x3ad\n  [\u003cc13755c5\u003e] start_kernel+0x178/0x1ee\n\nThis occurs when we are scanning the zonelists looking for a ZONE_NORMAL\npage.  In this system there is only ZONE_DMA and ZONE_NORMAL memory on\nnode 0, all other nodes are mapped above 4GB physical.  Here is a dump\nof the zonelists from this system:\n\n    zonelists pgdat\u003dc1400000\n     0: c14006c0:2 f7c006c0:2 f7e006c0:2 c1400360:1 c1400000:0\n     1: c14006c0:2 c1400360:1 c1400000:0\n    zonelists pgdat\u003df7c00000\n     0: f7c006c0:2 f7e006c0:2 c14006c0:2 c1400360:1 c1400000:0\n     1: f7c006c0:2\n    zonelists pgdat\u003df7e00000\n     0: f7e006c0:2 c14006c0:2 f7c006c0:2 c1400360:1 c1400000:0\n     1: f7e006c0:2\n\nWhen performing a node local allocation we call get_page_from_freelist()\nlooking for a page.  It in turn calls first_zones_zonelist() which returns\na preferred_zone.  Where there are no applicable zones this will be NULL.\nHowever we use this unconditionally, leading to this panic.\n\nWhere there are no applicable zones there is no possibility of a successful\nallocation, so simply fail the allocation.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: 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": "80119ef5c8153e0a6cc5edf00c083dc98a9bd348",
      "tree": "a2af11a3991b1bebe9d764ab6d4d28891e86eda2",
      "parents": [
        "6c7c6afbb8c0e60d32a563cae7c6889211e9d9d8"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Fri May 23 13:04:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 24 09:56:09 2008 -0700"
      },
      "message": "mm: fix atomic_t overflow in vm\n\nThe atomic_t type is 32bit but a 64bit system can have more than 2^32\npages of virtual address space available.  Without this we overflow on\nludicrously large mappings\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7232154198f928fc25f420d6190468212a7632a",
      "tree": "3216938f94face00fd6c6094bc8ccb66c2ef3619",
      "parents": [
        "f899b0adc6fc8f60a9db8b52f36f06fd1abeaf7c"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Fri May 23 13:04:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 24 09:56:07 2008 -0700"
      },
      "message": "mm: don\u0027t drop a partial page in a zone\u0027s memory map size\n\nIn a zone\u0027s present pages number, account for all pages occupied by the\nmemory map, including a partial.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42172d751b4596b8ca4346a1c251b5f1c661ab0c",
      "tree": "f9149aee9349c43bd8e253b407acae920e041d00",
      "parents": [
        "c2448278e3be3a43fe0343e138444742af1e99ae"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri May 23 13:04:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 24 09:56:07 2008 -0700"
      },
      "message": "mm: allow pfnmap -\u003efault()s\n\nTake out an assertion to allow -\u003efault handlers to service PFNMAP regions.\nThis is required to reimplement .nopfn handlers with .fault handlers and\nsubsequently remove nopfn.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3eefae994d9224fb7771a3ddb683868363c23510",
      "tree": "0c7fe35765b485ff2a155c4ae1189199476a34b3",
      "parents": [
        "6c6c27969a4c6024e6c8838829546c02aaddca18"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 12 21:21:04 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 22:05:14 2008 +0200"
      },
      "message": "ftrace: limit trace entries\n\nCurrently there is no protection from the root user to use up all of\nmemory for trace buffers. If the root user allocates too many entries,\nthe OOM killer might start kill off all tasks.\n\nThis patch adds an algorith to check the following condition:\n\n pages_requested \u003e (freeable_memory + current_trace_buffer_pages) / 4\n\nIf the above is met then the allocation fails. The above prevents more\nthan 1/4th of freeable memory from being used by trace buffers.\n\nTo determine the freeable_memory, I made determine_dirtyable_memory in\nmm/page-writeback.c global.\n\nSpecial thanks goes to Peter Zijlstra for suggesting the above calculation.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "76994412f8e824e79a593d6777ec327d85f942b2",
      "tree": "9acd5883a43daf1bf21ab23608915c1181fd2008",
      "parents": [
        "239f49c0800778c863585a103805c58afbad6748"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu May 22 19:22:25 2008 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu May 22 19:52:18 2008 +0300"
      },
      "message": "slub: ksize() abuse checks\n\nAdd a WARN_ON for pages that don\u0027t have PageSlab nor PageCompound set to catch\nthe worst abusers of ksize() in the kernel.\n\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "19051c5035d217e572672a2ca9db06c1cef50e9b",
      "tree": "9fef0047e070c977463a85d5cbd0f9479694d286",
      "parents": [
        "8882b39421bae317e3ee864edd845e994307ce16"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu May 15 13:44:08 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue May 20 13:31:53 2008 -0700"
      },
      "message": "mm: bdi: fix race in bdi_class device creation\n\nThere is a race from when a device is created with device_create() and\nthen the drvdata is set with a call to dev_set_drvdata() in which a\nsysfs file could be open, yet the drvdata will be NULL, causing all\nsorts of bad things to happen.\n\nThis patch fixes the problem by using the new function,\ndevice_create_vargs().\n\nMany thanks to Arthur Jones \u003cajones@riverbed.com\u003e for reporting the bug,\nand testing patches out.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Arthur Jones \u003cajones@riverbed.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "239f49c0800778c863585a103805c58afbad6748",
      "tree": "bc49ae2d4405b4431e6e7463b3eac52245793a02",
      "parents": [
        "f26a3988917913b3d11b2bd741601a2c64ab9204"
      ],
      "author": {
        "name": "MinChan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon May 19 22:12:08 2008 +0900"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon May 19 20:55:25 2008 +0300"
      },
      "message": "slob: Fix to return wrong pointer\n\nAlthough slob_alloc return NULL, __kmalloc_node returns NULL + align.\nBecause align always can be changed, it is very hard for debugging\nproblem of no page if it don\u0027t return NULL.\n\nWe have to return NULL in case of no page.\n\n[penberg@cs.helsinki.fi: fix formatting as suggested by Matt.]\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "76cdd58e558669366adfaded436fda01b30cce3e",
      "tree": "deaccb499752c928919693edea65f9ea4c1fe756",
      "parents": [
        "1c12c4cf9411eb130b245fa8d0fbbaf989477c7b"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed May 14 16:05:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 14 19:11:15 2008 -0700"
      },
      "message": "memory_hotplug: always initialize pageblock bitmap\n\nTrying to online a new memory section that was added via memory hotplug\nsometimes results in crashes when the new pages are added via __free_page.\n Reason for that is that the pageblock bitmap isn\u0027t initialized and hence\ncontains random stuff.  That means that get_pageblock_migratetype()\nreturns also random stuff and therefore\n\n\tlist_add(\u0026page-\u003elru,\n\t\t\u0026zone-\u003efree_area[order].free_list[migratetype]);\n\nin __free_one_page() tries to do a list_add to something that isn\u0027t even\nnecessarily a list.\n\nThis happens since 86051ca5eaf5e560113ec7673462804c54284456 (\"mm: fix\nusemap initialization\") which makes sure that the pageblock bitmap gets\nonly initialized for pages present in a zone.  Unfortunately for hot-added\nmemory the zones \"grow\" after the memmap and the pageblock memmap have\nbeen initialized.  Which means that the new pages have an unitialized\nbitmap.  To solve this the calls to grow_zone_span() and grow_pgdat_span()\nare moved to __add_zone() just before the initialization happens.\n\nThe patch also moves the two functions since __add_zone() is the only\ncaller and I didn\u0027t want to add a forward declaration.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Yasunori Goto \u003cy-goto@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": "1c12c4cf9411eb130b245fa8d0fbbaf989477c7b",
      "tree": "f61d58e955b3159007ef77513c1c4f1ed2c9ec23",
      "parents": [
        "44c81433e8b05dbc85985d939046f10f95901184"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Wed May 14 16:05:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 14 19:11:15 2008 -0700"
      },
      "message": "mprotect: prevent alteration of the PAT bits\n\nThere is a defect in mprotect, which lets the user change the page cache\ntype bits by-passing the kernel reserve_memtype and free_memtype\nwrappers.  Fix the problem by not letting mprotect change the PAT bits.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd8a4221ad76df700ff34875c9fbc42302aa4ba3",
      "tree": "4f37586cef40dca7cc8b630e85965a698e3aa1be",
      "parents": [
        "3fc957721d18c93662f7d4dab455b80f53dd2641"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoffrey.levand@am.sony.com",
        "time": "Wed May 14 16:05:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 14 19:11:14 2008 -0700"
      },
      "message": "memory_hotplug: check for walk_memory_resource() failure in online_pages()\n\nAdd a check to online_pages() to test for failure of\nwalk_memory_resource().  This fixes a condition where a failure\nof walk_memory_resource() can lead to online_pages() returning\nsuccess without the requested pages being onlined.\n\nSigned-off-by: Geoff Levand \u003cgeoffrey.levand@am.sony.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Keith Mannthey \u003ckmannth@us.ibm.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3723ca3874a8fc2218c4726d57e3a7da9e83e47",
      "tree": "d7aa49e6ce3d10bcab1a79e3045425dad6906c40",
      "parents": [
        "3b7ec117bf6c98f5a845311c4ca5ca020a3d7689"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed May 14 16:05:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 14 19:11:14 2008 -0700"
      },
      "message": "memory hotplug: memmap_init_zone called twice\n\n__add_zone calls memmap_init_zone twice if memory gets attached to an empty\nzone.  Once via init_currently_empty_zone and once explictly right after that\ncall.\n\nLooks like this is currently not a bug, however the call is superfluous and\nmight lead to subtle bugs if memmap_init_zone gets changed.  So make sure it\nis called only once.\n\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ef0f720e47e895b613b0305eb0a483e3ec11f23",
      "tree": "e696a950d76c90199661515e1068fc00102a15bf",
      "parents": [
        "3b73a223661ed137c5d3d2635f954382e94f5a43"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed May 14 16:05:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 14 19:11:13 2008 -0700"
      },
      "message": "mm: fix infinite loop in filemap_fault\n\nfilemap_fault will go into an infinite loop if -\u003ereadpage() fails\nasynchronously.\n\nAFAICS the bug was introduced by this commit, which removed the wait after the\nfinal readpage:\n\n   commit d00806b183152af6d24f46f0c33f14162ca1262a\n   Author: Nick Piggin \u003cnpiggin@suse.de\u003e\n   Date:   Thu Jul 19 01:46:57 2007 -0700\n\n       mm: fix fault vs invalidate race for linear mappings\n\nFix by reintroducing the wait_on_page_locked() after -\u003ereadpage() to make sure\nthe page is up-to-date before jumping back to the beginning of the function.\n\nI\u0027ve noticed this while testing nfs exporting on fuse.  The patch\nfixes it.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: 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": "362a61ad61199e19a61b8e432015e2586b288f5b",
      "tree": "b766e454928eea0db1ec6e301340c27ef5f5244f",
      "parents": [
        "73f10281ea96d7e8b4fc1c5d755a7c8eb484155b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed May 14 06:37:36 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 14 10:05:18 2008 -0700"
      },
      "message": "fix SMP data race in pagetable setup vs walking\n\nThere is a possible data race in the page table walking code. After the split\nptlock patches, it actually seems to have been introduced to the core code, but\neven before that I think it would have impacted some architectures (powerpc\nand sparc64, at least, walk the page tables without taking locks eg. see\nfind_linux_pte()).\n\nThe race is as follows:\nThe pte page is allocated, zeroed, and its struct page gets its spinlock\ninitialized. The mm-wide ptl is then taken, and then the pte page is inserted\ninto the pagetables.\n\nAt this point, the spinlock is not guaranteed to have ordered the previous\nstores to initialize the pte page with the subsequent store to put it in the\npage tables. So another Linux page table walker might be walking down (without\nany locks, because we have split-leaf-ptls), and find that new pte we\u0027ve\ninserted. It might try to take the spinlock before the store from the other\nCPU initializes it. And subsequently it might read a pte_t out before stores\nfrom the other CPU have cleared the memory.\n\nThere are also similar races in higher levels of the page tables. They\nobviously don\u0027t involve the spinlock, but could see uninitialized memory.\n\nArch code and hardware pagetable walkers that walk the pagetables without\nlocks could see similar uninitialized memory problems, regardless of whether\nsplit ptes are enabled or not.\n\nI prefer to put the barriers in core code, because that\u0027s where the higher\nlevel logic happens, but the page table accessors are per-arch, and open-coding\nthem everywhere I don\u0027t think is an option. I\u0027ll put the read-side barriers\nin alpha arch code for now (other architectures perform data-dependent loads\nin order).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5aecd559871d23a3cc297e544c9d63f0b8441cf4",
      "tree": "490290335041770d190ad2acab7c1e4570efc36c",
      "parents": [
        "241937b863c8a3ef10511712f53285f41ab05308"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Mon May 12 14:02:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:24 2008 -0700"
      },
      "message": "mm/pdflush.c: merge the same code in two path\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b5be11329f8cb2cc1a4c3b33b6b8d096c6012895",
      "tree": "30ccea8a490bbde0e0760274b6eb4c5863971caa",
      "parents": [
        "78f508ab07954d12896097ac07ab2fab443c7ca2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon May 12 14:02:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:23 2008 -0700"
      },
      "message": "make vmstat cpu-unplug safe\n\nWhen accessing cpu_online_map, we should prevent dynamic changing\nof cpu_online_map by get_online_cpus().\n\nUnfortunately, all_vm_events() doesn\u0027t do that.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a34912d90c17a90d9fad12c4c51833b4e70707b",
      "tree": "a3811697f5eba3c5d12216ac76f681420046b219",
      "parents": [
        "0f1bce41fed02e45f31c2409f29e69e1fedebcdc",
        "75065ff619e42fe35178eda863cbcddd57776794"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 08 10:48:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 08 10:48:36 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  Revert \"relay: fix splice problem\"\n  docbook: fix bio missing parameter\n  block: use unitialized_var() in bio_alloc_bioset()\n  block: avoid duplicate calls to get_part() in disk stat code\n  cfq-iosched: make io priorities inherit CPU scheduling class as well as nice\n  block: optimize generic_unplug_device()\n  block: get rid of likely/unlikely predictions in merge logic\n  vfs: splice remove_suid() cleanup\n  cfq-iosched: fix RCU race in the cfq io_context destructor handling\n  block: adjust tagging function queue bit locking\n  block: sysfs store function needs to grab queue_lock and use queue_flag_*()\n"
    },
    {
      "commit": "4ea33e2dc2dab10960877e1649ee527c033f42c0",
      "tree": "5e66cd116868336d7a0fa3e6da38ebbf3e8d5a32",
      "parents": [
        "ba719baeabbff5476eeb91c223e6921ba29e1490"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue May 06 20:42:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 08 10:46:56 2008 -0700"
      },
      "message": "slub: fix atomic usage in any_slab_objects()\n\nany_slab_objects() does an atomic_read on an atomic_long_t, this\nfixes it to use atomic_long_read instead.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f3d4ee108c184ab215036051087aaaaa8de7661",
      "tree": "373f4f928f0687ca84478964b43c26e3ec9cec70",
      "parents": [
        "07416d29bcf608257f1e5280642dcbe0021518a3"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed May 07 09:22:39 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed May 07 09:29:00 2008 +0200"
      },
      "message": "vfs: splice remove_suid() cleanup\n\ngeneric_file_splice_write() duplicates remove_suid() just because it\ndoesn\u0027t hold i_mutex.  But it grabs i_mutex inside splice_from_pipe()\nanyway, so this is rather pointless.\n\nMove locking to generic_file_splice_write() and call remove_suid() and\n__splice_from_pipe() instead.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "aeed5fce37196e09b4dac3a1c00d8b7122e040ce",
      "tree": "d16a8f824ad06ac5dea6052f1986165a0d7fc865",
      "parents": [
        "bb78be8397d3b0900af3d717672218ee3ea07985"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue May 06 20:49:23 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 06 13:08:58 2008 -0700"
      },
      "message": "x86: fix PAE pmd_bad bootup warning\n\nFix warning from pmd_bad() at bootup on a HIGHMEM64G HIGHPTE x86_32.\n\nThat came from 9fc34113f6880b215cbea4e7017fc818700384c2 x86: debug pmd_bad();\nbut we understand now that the typecasting was wrong for PAE in the previous\nversion: pagetable pages above 4GB looked bad and stopped Arjan from booting.\n\nAnd revert that cded932b75ab0a5f9181ee3da34a0a488d1a14fd x86: fix pmd_bad\nand pud_bad to support huge pages.  It was the wrong way round: we shouldn\u0027t\nweaken every pmd_bad and pud_bad check to let huge pages slip through - in\npart they check that we _don\u0027t_ have a huge page where it\u0027s not expected.\n\nPut the x86 pmd_bad() and pud_bad() definitions back to what they have long\nbeen: they can be improved (x86_32 should use PTE_MASK, to stop PAE thinking\njunk in the upper word is good; and x86_64 should follow x86_32\u0027s stricter\ncomparison, to stop thinking any subset of required bits is good); but that\nshould be a later patch.\n\nFix Hans\u0027 good observation that follow_page() will never find pmd_huge()\nbecause that would have already failed the pmd_bad test: test pmd_huge in\nbetween the pmd_none and pmd_bad tests.  Tighten x86\u0027s pmd_huge() check?\nNo, once it\u0027s a hugepage entry, it can get quite far from a good pmd: for\nexample, PROT_NONE leaves it with only ACCESSED of the KERN_PGTABLE bits.\n\nHowever... though follow_page() contains this and another test for huge\npages, so it\u0027s nice to keep it working on them, where does it actually get\ncalled on a huge page?  get_user_pages() checks is_vm_hugetlb_page(vma) to\nto call alternative hugetlb processing, as does unmap_vmas() and others.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nEarlier-version-tested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Jeff Chua \u003cjeff.chua.linux@gmail.com\u003e\nCc: Hans Rosenfeld \u003chans.rosenfeld@amd.com\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6acb63508700b5f8cd817082b62c96ba907775e",
      "tree": "0fc0cdd4660fdf186f3becc1b80d743f8d3edbea",
      "parents": [
        "f715e6f15ee167026581a8a2e09b2ed644b974aa"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Apr 29 16:16:06 2008 -0700"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri May 02 00:27:13 2008 +0300"
      },
      "message": "slub: #ifdef simplification\n\nIf we make SLUB_DEBUG depend on SYSFS then we can simplify some\n#ifdefs and avoid others.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "0121c619d03820d965745e56f80f6eb5994533fe",
      "tree": "75ecdc5dee9c3a6bb64ee095f51cc831be2cd475",
      "parents": [
        "886c35fbcf6fb2eee15687efc2d64d99b6ad9a4a"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Apr 29 16:11:12 2008 -0700"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri May 02 00:26:31 2008 +0300"
      },
      "message": "slub: Whitespace cleanup and use of strict_strtoul\n\nFix some issues with wrapping and use strict_strtoul to make parameter\npassing from sysfs safer.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "55e462b05b5df4fd113c4a304c4f487d44b0898e",
      "tree": "0d538695cc0611395666194a6326b3ad424a9dc7",
      "parents": [
        "f39e578172f30d3bdd4533465c7ec00db738eb9d"
      ],
      "author": {
        "name": "Balaji Rao",
        "email": "balajirrao@gmail.com",
        "time": "Thu May 01 04:35:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:04:02 2008 -0700"
      },
      "message": "memcg: simple stats for memory resource controller\n\nImplement trivial statistics for the memory resource controller.\n\nSigned-off-by: Balaji Rao \u003cbalajirrao@gmail.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c85d194bfd2e36c5254b8058c1f35cfce0dfa10a",
      "tree": "63c3862e412c4741bf6661f8dc70e91371aea875",
      "parents": [
        "5045790589bd426b5d515d78fa71f0fc92dd4e83"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu May 01 04:34:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:59 2008 -0700"
      },
      "message": "docbook: fix vmalloc missing parameter notation\n\nFix vmalloc kernel-doc warning:\n\nWarning(linux-2.6.25-git14//mm/vmalloc.c:555): No description found for parameter \u0027caller\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@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": "f8bd2258e2d520dff28c855658bd24bdafb5102d",
      "tree": "d76db1dc858cb316bc7d5b8473f690a753fd2c93",
      "parents": [
        "6f6d6a1a6a1336431a6cba60ace9e97c3a496a19"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Thu May 01 04:34:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:58 2008 -0700"
      },
      "message": "remove div_long_long_rem\n\nx86 is the only arch right now, which provides an optimized for\ndiv_long_long_rem and it has the downside that one has to be very careful that\nthe divide doesn\u0027t overflow.\n\nThe API is a little akward, as the arguments for the unsigned divide are\nsigned.  The signed version also doesn\u0027t handle a negative divisor and\nproduces worse code on 64bit archs.\n\nThere is little incentive to keep this API alive, so this converts the few\nusers to the new API.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5167464446e527b5a3b5618ba0baff93048bcbbe",
      "tree": "798e82ec478d6d6935ae371fc764ae95d86a337d",
      "parents": [
        "3a902c5f6851cd0b64c33efaa3bd57aa27a82efb"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Apr 30 00:55:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:55 2008 -0700"
      },
      "message": "revert \"memory hotplug: allocate usemap on the section with pgdat\"\n\nThis:\n\ncommit 86f6dae1377523689bd8468fed2f2dd180fc0560\nAuthor: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nDate:   Mon Apr 28 02:13:33 2008 -0700\n\n    memory hotplug: allocate usemap on the section with pgdat\n\n    Usemaps are allocated on the section which has pgdat by this.\n\n    Because usemap size is very small, many other sections usemaps are allocated\n    on only one page.  If a section has usemap, it can\u0027t be removed until removing\n    other sections.  This dependency is not desirable for memory removing.\n\n    Pgdat has similar feature.  When a section has pgdat area, it must be the last\n    section for removing on the node.  So, if section A has pgdat and section B\n    has usemap for section A, Both sections can\u0027t be removed due to dependency\n    each other.\n\n    To solve this issue, this patch collects usemap on same section with pgdat.\n    If other sections doesn\u0027t have any dependency, this section will be able to be\n    removed finally.\n\n    Signed-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\n    Cc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\n    Cc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\n    Cc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n\nbroke davem\u0027s sparc64 bootup.  Revert it while we work out what went wrong.\n\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3a902c5f6851cd0b64c33efaa3bd57aa27a82efb",
      "tree": "9803f7bdc847ed8cd5192816d9ca0ee9e310cd60",
      "parents": [
        "969a19f1c405a8e9d15ceb9e75e3f4a321aaf56f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Apr 30 00:55:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:55 2008 -0700"
      },
      "message": "mm: fix warning on memory offline\n\nKAMEZAWA Hiroyuki found a warning message in the buffer dirtying code that\nis coming from page migration caller.\n\nWARNING: at fs/buffer.c:720 __set_page_dirty+0x330/0x360()\nCall Trace:\n [\u003ca000000100015220\u003e] show_stack+0x80/0xa0\n [\u003ca000000100015270\u003e] dump_stack+0x30/0x60\n [\u003ca000000100089ed0\u003e] warn_on_slowpath+0x90/0xe0\n [\u003ca0000001001f8b10\u003e] __set_page_dirty+0x330/0x360\n [\u003ca0000001001ffb90\u003e] __set_page_dirty_buffers+0xd0/0x280\n [\u003ca00000010012fec0\u003e] set_page_dirty+0xc0/0x260\n [\u003ca000000100195670\u003e] migrate_page_copy+0x5d0/0x5e0\n [\u003ca000000100197840\u003e] buffer_migrate_page+0x2e0/0x3c0\n [\u003ca000000100195eb0\u003e] migrate_pages+0x770/0xe00\n\nWhat was happening is that migrate_page_copy wants to transfer the PG_dirty\nbit from old page to new page, so what it would do is set_page_dirty(newpage).\nHowever set_page_dirty() is used to set the entire page dirty, wheras in\nthis case, only part of the page was dirty, and it also was not uptodate.\n\nMarking the whole page dirty with set_page_dirty would lead to corruption or\nunresolvable conditions -- a dirty \u0026\u0026 !uptodate page and dirty \u0026\u0026 !uptodate\nbuffers.\n\nPossibly we could just ClearPageDirty(oldpage); SetPageDirty(newpage);\nhowever in the interests of keeping the change minimal...\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nTested-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": "d40cee245ff6ad05d3448401d7320be82c1c5af1",
      "tree": "5467cada898e80d5e43592393b21252312c908fa",
      "parents": [
        "d7853d1f8932c847a8d7b3b38e6baedf77148cfb"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Apr 30 00:55:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:53 2008 -0700"
      },
      "message": "mm: remove remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ac7fe5a4aab409bd5674d0b070bce97f9d20872",
      "tree": "5e12e8864bb8737695e4eb9c63970602d5f69e73",
      "parents": [
        "30327acf7846c5eb97c8e31c78317a2918d3e515"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Apr 30 00:55:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:53 2008 -0700"
      },
      "message": "infrastructure to debug (dynamic) objects\n\nWe can see an ever repeating problem pattern with objects of any kind in the\nkernel:\n\n1) freeing of active objects\n2) reinitialization of active objects\n\nBoth problems can be hard to debug because the crash happens at a point where\nwe have no chance to decode the root cause anymore.  One problem spot are\nkernel timers, where the detection of the problem often happens in interrupt\ncontext and usually causes the machine to panic.\n\nWhile working on a timer related bug report I had to hack specialized code\ninto the timer subsystem to get a reasonable hint for the root cause.  This\ndebug hack was fine for temporary use, but far from a mergeable solution due\nto the intrusiveness into the timer code.\n\nThe code further lacked the ability to detect and report the root cause\ninstantly and keep the system operational.\n\nKeeping the system operational is important to get hold of the debug\ninformation without special debugging aids like serial consoles and special\nknowledge of the bug reporter.\n\nThe problems described above are not restricted to timers, but timers tend to\nexpose it usually in a full system crash.  Other objects are less explosive,\nbut the symptoms caused by such mistakes can be even harder to debug.\n\nInstead of creating specialized debugging code for the timer subsystem a\ngeneric infrastructure is created which allows developers to verify their code\nand provides an easy to enable debug facility for users in case of trouble.\n\nThe debugobjects core code keeps track of operations on static and dynamic\nobjects by inserting them into a hashed list and sanity checking them on\nobject operations and provides additional checks whenever kernel memory is\nfreed.\n\nThe tracked object operations are:\n- initializing an object\n- adding an object to a subsystem list\n- deleting an object from a subsystem list\n\nEach operation is sanity checked before the operation is executed and the\nsubsystem specific code can provide a fixup function which allows to prevent\nthe damage of the operation.  When the sanity check triggers a warning message\nand a stack trace is printed.\n\nThe list of operations can be extended if the need arises.  For now it\u0027s\nlimited to the requirements of the first user (timers).\n\nThe core code enqueues the objects into hash buckets.  The hash index is\ngenerated from the address of the object to simplify the lookup for the check\non kfree/vfree.  Each bucket has it\u0027s own spinlock to avoid contention on a\nglobal lock.\n\nThe debug code can be compiled in without being active.  The runtime overhead\nis minimal and could be optimized by asm alternatives.  A kernel command line\noption enables the debugging code.\n\nThanks to Ingo Molnar for review, suggestions and cleanup patches.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc3ba692a4d19019387c5acaea63131f9eab05dd",
      "tree": "c86e025cb8f79c7ffc479029989b7378bcb9f285",
      "parents": [
        "dd5656e59ca7b25fb60a22f9079905ed0da5ed0c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "mm: Add NR_WRITEBACK_TEMP counter\n\nFuse will use temporary buffers to write back dirty data from memory mappings\n(normal writes are done synchronously).  This is needed, because there cannot\nbe any guarantee about the time in which a write will complete.\n\nBy using temporary buffers, from the MM\u0027s point if view the page is written\nback immediately.  If the writeout was due to memory pressure, this\neffectively migrates data from a full zone to a less full zone.\n\nThis patch adds a new counter (NR_WRITEBACK_TEMP) for the number of pages used\nas temporary buffers.\n\n[Lee.Schermerhorn@hp.com: add vmstat_text for NR_WRITEBACK_TEMP]\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: 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": "dd5656e59ca7b25fb60a22f9079905ed0da5ed0c",
      "tree": "47c156e6023e93f3028c63a2594bbb3e27e968a4",
      "parents": [
        "e4ad08fe64afca4ef79ecc4c624e6e871688da0d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "mm: bdi: export bdi_writeout_inc()\n\nFuse needs this for writable mmap support.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4ad08fe64afca4ef79ecc4c624e6e871688da0d",
      "tree": "5b8b390b874700041dc0c095e8ba9ac3ed42ea77",
      "parents": [
        "76f1418b485da2707531178e517bbb5cf06b3c76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "mm: bdi: add separate writeback accounting capability\n\nAdd a new BDI capability flag: BDI_CAP_NO_ACCT_WB.  If this flag is\nset, then don\u0027t update the per-bdi writeback stats from\ntest_set_page_writeback() and test_clear_page_writeback().\n\nMisc cleanups:\n\n - convert bdi_cap_writeback_dirty() and friends to static inline functions\n - create a flag that includes all three dirty/writeback related flags,\n   since almst all users will want to have them toghether\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "76f1418b485da2707531178e517bbb5cf06b3c76",
      "tree": "138a012d965ebc284163f42e0ff5786c6de1cda5",
      "parents": [
        "a42dde04152750426cc620fd277e80fffae2f65a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "mm: bdi: move statistics to debugfs\n\nMove BDI statistics to debugfs:\n\n   /sys/kernel/debug/bdi/\u003cbdi\u003e/stats\n\nUse postcore_initcall() to initialize the sysfs class and debugfs,\nbecause debugfs is initialized in core_initcall().\n\nUpdate descriptions in ABI documentation.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a42dde04152750426cc620fd277e80fffae2f65a",
      "tree": "98cdf246280c59e0bf044ae6d2c229fc27b73203",
      "parents": [
        "189d3c4a94ef19fca2a71a6a336e9fda900e25e7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Apr 30 00:54:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "mm: bdi: allow setting a maximum for the bdi dirty limit\n\nAdd \"max_ratio\" to /sys/class/bdi.  This indicates the maximum percentage of\nthe global dirty threshold allocated to this bdi.\n\n[mszeredi@suse.cz]\n\n - fix parsing in max_ratio_store().\n - export bdi_set_max_ratio() to modules\n - limit bdi_dirty with bdi-\u003emax_ratio\n - document new sysfs attribute\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "189d3c4a94ef19fca2a71a6a336e9fda900e25e7",
      "tree": "75c0de871fe9922885a2fa073f15806d829342fa",
      "parents": [
        "b6f2fcbcfca9db2bd7aa24940224fcd3bbdbb8aa"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Apr 30 00:54:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "mm: bdi: allow setting a minimum for the bdi dirty limit\n\nUnder normal circumstances each device is given a part of the total write-back\ncache that relates to its current avg writeout speed in relation to the other\ndevices.\n\nmin_ratio - allows one to assign a minimum portion of the write-back cache to\na particular device.  This is useful in situations where you might want to\nprovide a minimum QoS.  (One request for this feature came from flash based\nstorage people who wanted to avoid writing out at all costs - they of course\nneeded some pdflush hacks as well)\n\nmax_ratio - allows one to assign a maximum portion of the dirty limit to a\nparticular device.  This is useful in situations where you want to avoid one\ndevice taking all or most of the write-back cache.  Eg.  an NFS mount that is\nprone to get stuck, or a FUSE mount which you don\u0027t trust to play fair.\n\nAdd \"min_ratio\" to /sys/class/bdi.  This indicates the minimum percentage of\nthe global dirty threshold allocated to this bdi.\n\n[mszeredi@suse.cz]\n\n - fix parsing in min_ratio_store()\n - document new sysfs attribute\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf0ca9fe5dd9e3693d935757a7b2fc50fc576554",
      "tree": "c795c5271eda9fc67579fa3176c646b892dfdb41",
      "parents": [
        "caafa4324335aeb11bc233d5f87aca8cce30beba"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Apr 30 00:54:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:49 2008 -0700"
      },
      "message": "mm: bdi: export BDI attributes in sysfs\n\nProvide a place in sysfs (/sys/class/bdi) for the backing_dev_info object.\nThis allows us to see and set the various BDI specific variables.\n\nIn particular this properly exposes the read-ahead window for all relevant\nusers and /sys/block/\u003cblock\u003e/queue/read_ahead_kb should be deprecated.\n\nWith patient help from Kay Sievers and Greg KH\n\n[mszeredi@suse.cz]\n\n - split off NFS and FUSE changes into separate patches\n - document new sysfs attributes under Documentation/ABI\n - do bdi_class_init as a core_initcall, otherwise the \"default\" BDI\n   won\u0027t be initialized\n - remove bdi_init_fmt macro, it\u0027s not used very much\n\n[akpm@linux-foundation.org: fix ia64 warning]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "41b25a3784c137ad52c71619c73b925860b1b3a2"
}
