)]}'
{
  "log": [
    {
      "commit": "e4e4e534faa3c2be4e165ce414f44b76ada7208c",
      "tree": "615280ce53bdba4f99c95616d2a1527c3b863c39",
      "parents": [
        "39675e89fb472c1b9c8e740e00acb1df2bbc6be7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 14 08:50:02 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 31 17:20:29 2008 +0200"
      },
      "message": "sched clock: revert various sched_clock() changes\n\nFound an interactivity problem on a quad core test-system - simple\nCPU loops would occasionally delay the system un an unacceptable way.\n\nAfter much debugging with Peter Zijlstra it turned out that the problem\nis caused by the string of sched_clock() changes - they caused the CPU\nclock to jump backwards a bit - which confuses the scheduler arithmetics.\n\n(which is unsigned for performance reasons)\n\nSo revert:\n\n # c300ba2: sched_clock: and multiplier for TSC to gtod drift\n # c0c8773: sched_clock: only update deltas with local reads.\n # af52a90: sched_clock: stop maximum check on NO HZ\n # f7cce27: sched_clock: widen the max and min time\n\nThis solves the interactivity problems.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\n"
    },
    {
      "commit": "5dfb66ba8c4a96eb732942c9f78629e4db1a51d4",
      "tree": "d443adb4d02ac2599baf402698a589a9b814e478",
      "parents": [
        "1d9b9f6a53d77ed801ba875f937d6dabbfc381ce",
        "424f525a1241351da947fb48a938128ddd774511"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 18:15:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 18:15:41 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.o-hand.com/linux-mfd\n\n* \u0027for-linus\u0027 of git://git.o-hand.com/linux-mfd:\n  mfd: accept pure device as a parent, not only platform_device\n  mfd: add platform_data to mfd_cell\n  mfd: Coding style fixes\n  mfd: Use to_platform_device instead of container_of\n"
    },
    {
      "commit": "1d9b9f6a53d77ed801ba875f937d6dabbfc381ce",
      "tree": "36ea93b80a444c3b37111e352790ebc07f29379f",
      "parents": [
        "a3ad7f128c637b7612ebeacb1f85fec933bb1195",
        "12c0b20fa4afb5c8a377d6987fb2dcf353e1dce1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 18:14:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 18:14:24 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (21 commits)\n  x86/PCI: use dev_printk when possible\n  PCI: add D3 power state avoidance quirk\n  PCI: fix bogus \"\u0027device\u0027 may be used uninitialized\" warning in pci_slot\n  PCI: add an option to allow ASPM enabled forcibly\n  PCI: disable ASPM on pre-1.1 PCIe devices\n  PCI: disable ASPM per ACPI FADT setting\n  PCI MSI: Don\u0027t disable MSIs if the mask bit isn\u0027t supported\n  PCI: handle 64-bit resources better on 32-bit machines\n  PCI: rewrite PCI BAR reading code\n  PCI: document pci_target_state\n  PCI hotplug: fix typo in pcie hotplug output\n  x86 gart: replace to_pages macro with iommu_num_pages\n  x86, AMD IOMMU: replace to_pages macro with iommu_num_pages\n  iommu: add iommu_num_pages helper function\n  dma-coherent: add documentation to new interfaces\n  Cris: convert to using generic dma-coherent mem allocator\n  Sh: use generic per-device coherent dma allocator\n  ARM: support generic per-device coherent dma mem\n  Generic dma-coherent: fix DMA_MEMORY_EXCLUSIVE\n  x86: use generic per-device dma coherent allocator\n  ...\n"
    },
    {
      "commit": "424f525a1241351da947fb48a938128ddd774511",
      "tree": "e837c0f6b15a3efe38bb0aa3db5a46305e5a9f38",
      "parents": [
        "56edb58be157a06dc147a988af3588059556d392"
      ],
      "author": {
        "name": "Dmitry Baryshkov",
        "email": "dbaryshkov@gmail.com",
        "time": "Tue Jul 29 01:30:26 2008 +0200"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "sameo@openedhand.com",
        "time": "Tue Jul 29 01:30:26 2008 +0200"
      },
      "message": "mfd: accept pure device as a parent, not only platform_device\n\nSigned-off-by: Dmitry Baryshkov \u003cdbaryshkov@gmail.com\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "8ab22b9abb5c55413802e4adc9aa6223324547c3",
      "tree": "cff3319e1275e8a7c083d492889ec6bd0c7712d3",
      "parents": [
        "d84a52f62f6a396ed77aa0052da74ca9e760b28a"
      ],
      "author": {
        "name": "Hisashi Hifumi",
        "email": "hifumi.hisashi@oss.ntt.co.jp",
        "time": "Mon Jul 28 15:46:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 16:30:21 2008 -0700"
      },
      "message": "vfs: pagecache usage optimization for pagesize!\u003dblocksize\n\nWhen we read some part of a file through pagecache, if there is a\npagecache of corresponding index but this page is not uptodate, read IO\nis issued and this page will be uptodate.\n\nI think this is good for pagesize \u003d\u003d blocksize environment but there is\nroom for improvement on pagesize !\u003d blocksize environment.  Because in\nthis case a page can have multiple buffers and even if a page is not\nuptodate, some buffers can be uptodate.\n\nSo I suggest that when all buffers which correspond to a part of a file\nthat we want to read are uptodate, use this pagecache and copy data from\nthis pagecache to user buffer even if a page is not uptodate.  This can\nreduce read IO and improve system throughput.\n\nI wrote a benchmark program and got result number with this program.\n\nThis benchmark do:\n\n  1: mount and open a test file.\n\n  2: create a 512MB file.\n\n  3: close a file and umount.\n\n  4: mount and again open a test file.\n\n  5: pwrite randomly 300000 times on a test file.  offset is aligned\n     by IO size(1024bytes).\n\n  6: measure time of preading randomly 100000 times on a test file.\n\nThe result was:\n\t2.6.26\n        330 sec\n\n\t2.6.26-patched\n        226 sec\n\nArch:i386\nFilesystem:ext3\nBlocksize:1024 bytes\nMemory: 1GB\n\nOn ext3/4, a file is written through buffer/block.  So random read/write\nmixed workloads or random read after random write workloads are optimized\nwith this patch under pagesize !\u003d blocksize environment.  This test result\nshowed this.\n\nThe benchmark program is as follows:\n\n#include \u003cstdio.h\u003e\n#include \u003csys/types.h\u003e\n#include \u003csys/stat.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003ctime.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cstring.h\u003e\n#include \u003csys/mount.h\u003e\n\n#define LEN 1024\n#define LOOP 1024*512 /* 512MB */\n\nmain(void)\n{\n\tunsigned long i, offset, filesize;\n\tint fd;\n\tchar buf[LEN];\n\ttime_t t1, t2;\n\n\tif (mount(\"/dev/sda1\", \"/root/test1/\", \"ext3\", 0, 0) \u003c 0) {\n\t\tperror(\"cannot mount\\n\");\n\t\texit(1);\n\t}\n\tmemset(buf, 0, LEN);\n\tfd \u003d open(\"/root/test1/testfile\", O_CREAT|O_RDWR|O_TRUNC);\n\tif (fd \u003c 0) {\n\t\tperror(\"cannot open file\\n\");\n\t\texit(1);\n\t}\n\tfor (i \u003d 0; i \u003c LOOP; i++)\n\t\twrite(fd, buf, LEN);\n\tclose(fd);\n\tif (umount(\"/root/test1/\") \u003c 0) {\n\t\tperror(\"cannot umount\\n\");\n\t\texit(1);\n\t}\n\tif (mount(\"/dev/sda1\", \"/root/test1/\", \"ext3\", 0, 0) \u003c 0) {\n\t\tperror(\"cannot mount\\n\");\n\t\texit(1);\n\t}\n\tfd \u003d open(\"/root/test1/testfile\", O_RDWR);\n\tif (fd \u003c 0) {\n\t\tperror(\"cannot open file\\n\");\n\t\texit(1);\n\t}\n\n\tfilesize \u003d LEN * LOOP;\n\tfor (i \u003d 0; i \u003c 300000; i++){\n\t\toffset \u003d (random() % filesize) \u0026 (~(LEN - 1));\n\t\tpwrite(fd, buf, LEN, offset);\n\t}\n\tprintf(\"start test\\n\");\n\ttime(\u0026t1);\n\tfor (i \u003d 0; i \u003c 100000; i++){\n\t\toffset \u003d (random() % filesize) \u0026 (~(LEN - 1));\n\t\tpread(fd, buf, LEN, offset);\n\t}\n\ttime(\u0026t2);\n\tprintf(\"%ld sec\\n\", t2-t1);\n\tclose(fd);\n\tif (umount(\"/root/test1/\") \u003c 0) {\n\t\tperror(\"cannot umount\\n\");\n\t\texit(1);\n\t}\n}\n\nSigned-off-by: Hisashi Hifumi \u003chifumi.hisashi@oss.ntt.co.jp\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: \u003clinux-ext4@vger.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": "cddb8a5c14aa89810b40495d94d3d2a0faee6619",
      "tree": "d0b47b071f7d2dd1d6f9c36084aa8cfcef90d1da",
      "parents": [
        "7906d00cd1f687268f0a3599442d113767795ae6"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@qumranet.com",
        "time": "Mon Jul 28 15:46:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 16:30:21 2008 -0700"
      },
      "message": "mmu-notifiers: core\n\nWith KVM/GFP/XPMEM there isn\u0027t just the primary CPU MMU pointing to pages.\n There are secondary MMUs (with secondary sptes and secondary tlbs) too.\nsptes in the kvm case are shadow pagetables, but when I say spte in\nmmu-notifier context, I mean \"secondary pte\".  In GRU case there\u0027s no\nactual secondary pte and there\u0027s only a secondary tlb because the GRU\nsecondary MMU has no knowledge about sptes and every secondary tlb miss\nevent in the MMU always generates a page fault that has to be resolved by\nthe CPU (this is not the case of KVM where the a secondary tlb miss will\nwalk sptes in hardware and it will refill the secondary tlb transparently\nto software if the corresponding spte is present).  The same way\nzap_page_range has to invalidate the pte before freeing the page, the spte\n(and secondary tlb) must also be invalidated before any page is freed and\nreused.\n\nCurrently we take a page_count pin on every page mapped by sptes, but that\nmeans the pages can\u0027t be swapped whenever they\u0027re mapped by any spte\nbecause they\u0027re part of the guest working set.  Furthermore a spte unmap\nevent can immediately lead to a page to be freed when the pin is released\n(so requiring the same complex and relatively slow tlb_gather smp safe\nlogic we have in zap_page_range and that can be avoided completely if the\nspte unmap event doesn\u0027t require an unpin of the page previously mapped in\nthe secondary MMU).\n\nThe mmu notifiers allow kvm/GRU/XPMEM to attach to the tsk-\u003emm and know\nwhen the VM is swapping or freeing or doing anything on the primary MMU so\nthat the secondary MMU code can drop sptes before the pages are freed,\navoiding all page pinning and allowing 100% reliable swapping of guest\nphysical address space.  Furthermore it avoids the code that teardown the\nmappings of the secondary MMU, to implement a logic like tlb_gather in\nzap_page_range that would require many IPI to flush other cpu tlbs, for\neach fixed number of spte unmapped.\n\nTo make an example: if what happens on the primary MMU is a protection\ndowngrade (from writeable to wrprotect) the secondary MMU mappings will be\ninvalidated, and the next secondary-mmu-page-fault will call\nget_user_pages and trigger a do_wp_page through get_user_pages if it\ncalled get_user_pages with write\u003d1, and it\u0027ll re-establishing an updated\nspte or secondary-tlb-mapping on the copied page.  Or it will setup a\nreadonly spte or readonly tlb mapping if it\u0027s a guest-read, if it calls\nget_user_pages with write\u003d0.  This is just an example.\n\nThis allows to map any page pointed by any pte (and in turn visible in the\nprimary CPU MMU), into a secondary MMU (be it a pure tlb like GRU, or an\nfull MMU with both sptes and secondary-tlb like the shadow-pagetable layer\nwith kvm), or a remote DMA in software like XPMEM (hence needing of\nschedule in XPMEM code to send the invalidate to the remote node, while no\nneed to schedule in kvm/gru as it\u0027s an immediate event like invalidating\nprimary-mmu pte).\n\nAt least for KVM without this patch it\u0027s impossible to swap guests\nreliably.  And having this feature and removing the page pin allows\nseveral other optimizations that simplify life considerably.\n\nDependencies:\n\n1) mm_take_all_locks() to register the mmu notifier when the whole VM\n   isn\u0027t doing anything with \"mm\".  This allows mmu notifier users to keep\n   track if the VM is in the middle of the invalidate_range_begin/end\n   critical section with an atomic counter incraese in range_begin and\n   decreased in range_end.  No secondary MMU page fault is allowed to map\n   any spte or secondary tlb reference, while the VM is in the middle of\n   range_begin/end as any page returned by get_user_pages in that critical\n   section could later immediately be freed without any further\n   -\u003einvalidate_page notification (invalidate_range_begin/end works on\n   ranges and -\u003einvalidate_page isn\u0027t called immediately before freeing\n   the page).  To stop all page freeing and pagetable overwrites the\n   mmap_sem must be taken in write mode and all other anon_vma/i_mmap\n   locks must be taken too.\n\n2) It\u0027d be a waste to add branches in the VM if nobody could possibly\n   run KVM/GRU/XPMEM on the kernel, so mmu notifiers will only enabled if\n   CONFIG_KVM\u003dm/y.  In the current kernel kvm won\u0027t yet take advantage of\n   mmu notifiers, but this already allows to compile a KVM external module\n   against a kernel with mmu notifiers enabled and from the next pull from\n   kvm.git we\u0027ll start using them.  And GRU/XPMEM will also be able to\n   continue the development by enabling KVM\u003dm in their config, until they\n   submit all GRU/XPMEM GPLv2 code to the mainline kernel.  Then they can\n   also enable MMU_NOTIFIERS in the same way KVM does it (even if KVM\u003dn).\n   This guarantees nobody selects MMU_NOTIFIER\u003dy if KVM and GRU and XPMEM\n   are all \u003dn.\n\nThe mmu_notifier_register call can fail because mm_take_all_locks may be\ninterrupted by a signal and return -EINTR.  Because mmu_notifier_reigster\nis used when a driver startup, a failure can be gracefully handled.  Here\nan example of the change applied to kvm to register the mmu notifiers.\nUsually when a driver startups other allocations are required anyway and\n-ENOMEM failure paths exists already.\n\n struct  kvm *kvm_arch_create_vm(void)\n {\n        struct kvm *kvm \u003d kzalloc(sizeof(struct kvm), GFP_KERNEL);\n+       int err;\n\n        if (!kvm)\n                return ERR_PTR(-ENOMEM);\n\n        INIT_LIST_HEAD(\u0026kvm-\u003earch.active_mmu_pages);\n\n+       kvm-\u003earch.mmu_notifier.ops \u003d \u0026kvm_mmu_notifier_ops;\n+       err \u003d mmu_notifier_register(\u0026kvm-\u003earch.mmu_notifier, current-\u003emm);\n+       if (err) {\n+               kfree(kvm);\n+               return ERR_PTR(err);\n+       }\n+\n        return kvm;\n }\n\nmmu_notifier_unregister returns void and it\u0027s reliable.\n\nThe patch also adds a few needed but missing includes that would prevent\nkernel to compile after these changes on non-x86 archs (x86 didn\u0027t need\nthem by luck).\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix mm/filemap_xip.c build]\n[akpm@linux-foundation.org: fix mm/mmu_notifier.c build]\nSigned-off-by: Andrea Arcangeli \u003candrea@qumranet.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Kanoj Sarcar \u003ckanojsarcar@yahoo.com\u003e\nCc: Roland Dreier \u003crdreier@cisco.com\u003e\nCc: Steve Wise \u003cswise@opengridcomputing.com\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nCc: Chris Wright \u003cchrisw@redhat.com\u003e\nCc: Marcelo Tosatti \u003cmarcelo@kvack.org\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Izik Eidus \u003cizike@qumranet.com\u003e\nCc: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7906d00cd1f687268f0a3599442d113767795ae6",
      "tree": "63609454d164a088d7f535f826764579c0f297f6",
      "parents": [
        "6beeac76f5f96590fb751af5e138fbc3f62e8460"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@qumranet.com",
        "time": "Mon Jul 28 15:46:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 16:30:21 2008 -0700"
      },
      "message": "mmu-notifiers: add mm_take_all_locks() operation\n\nmm_take_all_locks holds off reclaim from an entire mm_struct.  This allows\nmmu notifiers to register into the mm at any time with the guarantee that\nno mmu operation is in progress on the mm.\n\nThis operation locks against the VM for all pte/vma/mm related operations\nthat could ever happen on a certain mm.  This includes vmtruncate,\ntry_to_unmap, and all page faults.\n\nThe caller must take the mmap_sem in write mode before calling\nmm_take_all_locks().  The caller isn\u0027t allowed to release the mmap_sem\nuntil mm_drop_all_locks() returns.\n\nmmap_sem in write mode is required in order to block all operations that\ncould modify pagetables and free pages without need of altering the vma\nlayout (for example populate_range() with nonlinear vmas).  It\u0027s also\nneeded in write mode to avoid new anon_vmas to be associated with existing\nvmas.\n\nA single task can\u0027t take more than one mm_take_all_locks() in a row or it\nwould deadlock.\n\nmm_take_all_locks() and mm_drop_all_locks are expensive operations that\nmay have to take thousand of locks.\n\nmm_take_all_locks() can fail if it\u0027s interrupted by signals.\n\nWhen mmu_notifier_register returns, we must be sure that the driver is\nnotified if some task is in the middle of a vmtruncate for the \u0027mm\u0027 where\nthe mmu notifier was registered (mmu_notifier_invalidate_range_start/end\nis run around the vmtruncation but mmu_notifier_register can run after\nmmu_notifier_invalidate_range_start and before\nmmu_notifier_invalidate_range_end).  Same problem for rmap paths.  And\nwe\u0027ve to remove page pinning to avoid replicating the tlb_gather logic\ninside KVM (and GRU doesn\u0027t work well with page pinning regardless of\nneeding tlb_gather), so without mm_take_all_locks when vmtruncate frees\nthe page, kvm would have no way to notice that it mapped into sptes a page\nthat is going into the freelist without a chance of any further\nmmu_notifier notification.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Andrea Arcangeli \u003candrea@qumranet.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Kanoj Sarcar \u003ckanojsarcar@yahoo.com\u003e\nCc: Roland Dreier \u003crdreier@cisco.com\u003e\nCc: Steve Wise \u003cswise@opengridcomputing.com\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nCc: Chris Wright \u003cchrisw@redhat.com\u003e\nCc: Marcelo Tosatti \u003cmarcelo@kvack.org\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Izik Eidus \u003cizike@qumranet.com\u003e\nCc: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6beeac76f5f96590fb751af5e138fbc3f62e8460",
      "tree": "530b768655b63893f019204fe4f9b8405db07ac2",
      "parents": [
        "93686ae8357c1b1e37e8dfc96547f807e7a93b4b"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@qumranet.com",
        "time": "Mon Jul 28 15:46:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 16:30:20 2008 -0700"
      },
      "message": "mmu-notifiers: add list_del_init_rcu()\n\nIntroduce list_del_init_rcu() and document it.\n\nSigned-off-by: Andrea Arcangeli \u003candrea@qumranet.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Kanoj Sarcar \u003ckanojsarcar@yahoo.com\u003e\nCc: Roland Dreier \u003crdreier@cisco.com\u003e\nCc: Steve Wise \u003cswise@opengridcomputing.com\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nCc: Chris Wright \u003cchrisw@redhat.com\u003e\nCc: Marcelo Tosatti \u003cmarcelo@kvack.org\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Izik Eidus \u003cizike@qumranet.com\u003e\nCc: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "56edb58be157a06dc147a988af3588059556d392",
      "tree": "3771389d15ef26bf40ac19f8abd0d39454dc6db6",
      "parents": [
        "7f71ac9374fec066e428892a68db158946cee1fb"
      ],
      "author": {
        "name": "Mike Rapoport",
        "email": "mike@compulab.co.il",
        "time": "Tue Jul 29 01:23:32 2008 +0200"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "sameo@openedhand.com",
        "time": "Tue Jul 29 01:23:32 2008 +0200"
      },
      "message": "mfd: add platform_data to mfd_cell\n\nAdding platform_data to mfd_cell allows passing of platform data directly\nto the platform_device created for each cell and thus reuse of existing\ndrivers.\nOn the other side it can be used as a hook to mfd_cell itself\nremoving the need in mfd_get_cell method.\n\nSigned-off-by: Mike Rapoport \u003cmike@compulab.co.il\u003e\nAcked-by: Dmitry Baryshkov \u003cdbaryshkov@gmail.com\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "979b1791e5b8f8b556faeec4c48339e7ed63af9f",
      "tree": "30990937096bb25aa8349dae7285e70f268a767a",
      "parents": [
        "362b7077a5546b42131af15ba4776f30c9a72d0c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Jul 24 17:18:38 2008 +0100"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Mon Jul 28 15:12:11 2008 -0700"
      },
      "message": "PCI: add D3 power state avoidance quirk\n\nLibata has some hacks to deal with certain controllers going silly in D3\nstate. The right way to handle this is to keep a PCI device flag for\nsuch devices. That can then be generalised for no ATA devices with power\nproblems.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "149e16372a2066c5474d8a8db9b252afd57eb427",
      "tree": "075a46f0672739fdab18d2f1e5f06080160de8b0",
      "parents": [
        "5fde244d39b88625ac578d83e6625138714de031"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Wed Jul 23 10:32:31 2008 +0800"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Mon Jul 28 14:56:57 2008 -0700"
      },
      "message": "PCI: disable ASPM on pre-1.1 PCIe devices\n\nDisable ASPM on pre-1.1 PCIe devices, as many of them don\u0027t implement it\ncorrectly.\n\nTested-by: Jack Howarth \u003chowarth@bromo.msbb.uc.edu\u003e\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "5fde244d39b88625ac578d83e6625138714de031",
      "tree": "e50762b22a94f7f7990c9dbab699a857da0982eb",
      "parents": [
        "ce6fce4295ba727b36fdc73040e444bd1aae64cd"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Wed Jul 23 10:32:24 2008 +0800"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Mon Jul 28 14:56:09 2008 -0700"
      },
      "message": "PCI: disable ASPM per ACPI FADT setting\n\nThe ACPI FADT table includes an ASPM control bit. If the bit is set, do\nnot enable ASPM since it may indicate that the platform doesn\u0027t actually\nsupport the feature.\n\nTested-by: Jack Howarth \u003chowarth@bromo.msbb.uc.edu\u003e\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "9e3ee1c39c0cc71222f9980ccbf87fe072897eef",
      "tree": "99462000e6f0d4f907cb2fc690f19d4d441ba0f3",
      "parents": [
        "e56b3bc7942982ac2589c942fb345e38bc7a341a",
        "f934fb19ef34730263e6afc01e8ec27a8a71470f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 23:32:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 23:32:00 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpus4096\n\nConflicts:\n\n\tkernel/stop_machine.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "29111f579f4f3f2a07385f931854ab0527ae7ea5",
      "tree": "0271f20b0c954fa364be8627e0d6065544de0534",
      "parents": [
        "cc5499c3a607a392e8a7adb934aaf14b2c6a3519",
        "87e39ea5714dd59ba31e36c25833d2b20255a29d"
      ],
      "author": {
        "name": "Jesse Barnes",
        "email": "jbarnes@hobbes.lan",
        "time": "Mon Jul 28 14:31:10 2008 -0700"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Mon Jul 28 14:31:10 2008 -0700"
      },
      "message": "Merge branch \u0027x86/iommu\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip into for-linus\n"
    },
    {
      "commit": "e56b3bc7942982ac2589c942fb345e38bc7a341a",
      "tree": "8130492904f5bb9cff061f62ebb1c5d6eed3308b",
      "parents": [
        "414f746d232d41ed6ae8632c4495ae795373c44b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 11:32:33 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 22:20:41 2008 +0200"
      },
      "message": "cpu masks: optimize and clean up cpumask_of_cpu()\n\nClean up and optimize cpumask_of_cpu(), by sharing all the zero words.\n\nInstead of stupidly generating all possible i\u003d0...NR_CPUS 2^i patterns\ncreating a huge array of constant bitmasks, realize that the zero words\ncan be shared.\n\nIn other words, on a 64-bit architecture, we only ever need 64 of these\narrays - with a different bit set in one single world (with enough zero\nwords around it so that we can create any bitmask by just offsetting in\nthat big array). And then we just put enough zeroes around it that we\ncan point every single cpumask to be one of those things.\n\nSo when we have 4k CPU\u0027s, instead of having 4k arrays (of 4k bits each,\nwith one bit set in each array - 2MB memory total), we have exactly 64\narrays instead, each 8k bits in size (64kB total).\n\nAnd then we just point cpumask(n) to the right position (which we can\ncalculate dynamically). Once we have the right arrays, getting\n\"cpumask(n)\" ends up being:\n\n  static inline const cpumask_t *get_cpu_mask(unsigned int cpu)\n  {\n          const unsigned long *p \u003d cpu_bit_bitmap[1 + cpu % BITS_PER_LONG];\n          p -\u003d cpu / BITS_PER_LONG;\n          return (const cpumask_t *)p;\n  }\n\nThis brings other advantages and simplifications as well:\n\n - we are not wasting memory that is just filled with a single bit in\n   various different places\n\n - we don\u0027t need all those games to re-create the arrays in some dense\n   format, because they\u0027re already going to be dense enough.\n\nif we compile a kernel for up to 4k CPU\u0027s, \"wasting\" that 64kB of memory\nis a non-issue (especially since by doing this \"overlapping\" trick we\nprobably get better cache behaviour anyway).\n\n[ mingo@elte.hu:\n\n  Converted Linus\u0027s mails into a commit. See:\n\n     http://lkml.org/lkml/2008/7/27/156\n     http://lkml.org/lkml/2008/7/28/320\n\n  Also applied a family filter - which also has the side-effect of leaving\n  out the bits where Linus calls me an idio... Oh, never mind ;-)\n]\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "414f746d232d41ed6ae8632c4495ae795373c44b",
      "tree": "167f9bc8f139c6e82e6732b38c7a938b8a9d31cd",
      "parents": [
        "5a7a201c51c324876d00a54e7208af6af12d1ca4",
        "c9272c4f9fbe2087beb3392f526dc5b19efaa56b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 21:14:43 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 21:14:43 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpus4096\n"
    },
    {
      "commit": "f934fb19ef34730263e6afc01e8ec27a8a71470f",
      "tree": "6988fa3734adb98ab989657c56b7e31e94e723f8",
      "parents": [
        "3988ba0708e98b4bafc9034aa476775520bee708",
        "72d18a7b9e1a3a9511bae78fc7f0932ae01d5d73"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 09:59:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 09:59:26 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: add driver for Atmel integrated touchscreen controller\n  Input: ads7846 - optimize order of calculating Rt in ads7846_rx()\n  Input: ads7846 - fix sparse endian warnings\n  Input: uinput - remove duplicate include\n  Input: serio - offload resume to kseriod\n  Input: serio - mark serio_register_driver() __must_check\n"
    },
    {
      "commit": "7f71ac9374fec066e428892a68db158946cee1fb",
      "tree": "56c0ef9140380cfa0ecaff155c6f670f12f7733e",
      "parents": [
        "96ee41993b5b25ee0fbde2d4dcaac1f8c5ef5cc4"
      ],
      "author": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Mon Jul 28 18:29:09 2008 +0200"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "sameo@openedhand.com",
        "time": "Mon Jul 28 18:29:09 2008 +0200"
      },
      "message": "mfd: Coding style fixes\n\nFix some coding style fixes in the mfd core driver.\n\nSigned-off-by: Ben Dooks \u003cben-linux@fluff.org\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "d9089c296bdd82e6c1b7f82d04c11b5decde75e7",
      "tree": "6c2a3b8bc1b6f8b5930f6a20b099511dd19aa4ba",
      "parents": [
        "bda426f5310ffddcd463fe20f352609e84989514",
        "00df438e89a9003895948170e1abf64dd4665872"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 09:05:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 09:05:35 2008 -0700"
      },
      "message": "Merge branch \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (25 commits)\n  powerpc: Disable 64K hugetlb support when doing 64K SPU mappings\n  powerpc/powermac: Fixup default serial port device for pmac_zilog\n  powerpc/powermac: Use sane default baudrate for SCC debugging\n  powerpc/mm: Implement _PAGE_SPECIAL \u0026 pte_special() for 64-bit\n  powerpc: Show processor cache information in sysfs\n  powerpc: Make core id information available to userspace\n  powerpc: Make core sibling information available to userspace\n  powerpc/vio: More fallout from dma_mapping_error API change\n  ibmveth: Fix multiple errors with dma_mapping_error conversion\n  powerpc/pseries: Fix CMO sysdev attribute API change fallout\n  powerpc: Enable tracehook for the architecture\n  powerpc: Add TIF_NOTIFY_RESUME support for tracehook\n  powerpc: Add asm/syscall.h with the tracehook entry points\n  powerpc: Make syscall tracing use tracehook.h helpers\n  powerpc: Call tracehook_signal_handler() when setting up signal frames\n  powerpc: Update cpu_sibling_maps dynamically\n  powerpc: register_cpu_online should be __cpuinit\n  powerpc: kill useless SMT code in prom_hold_cpus\n  powerpc: Fix 8xx build failure\n  powerpc: Fix vio build warnings\n  ...\n"
    },
    {
      "commit": "b10a8b7238d7b034f28d32a85bb05c48475f132a",
      "tree": "8e70e816757c2a517de6fb721dd9ac2276619c26",
      "parents": [
        "37eaf8c7463e53cf1acf025fb566fb6c4573297f",
        "8b2224dc6a5b46cfa1d54ab1fe82107351c66443"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 08:41:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 08:41:13 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (72 commits)\n  sh: SuperH Mobile CEU and camera platform data for AP325RXA\n  sh: Update smc911x platform data for AP325RXA\n  sh: SuperH Mobile LCDC platform data for AP325RXA\n  sh: Add SuperH Mobile CEU platform data for Migo-R\n  sh: Add SuperH Mobile LCDC platform data for Migo-R\n  sh: Move asid_cache() out of ifdef to fix SH-3/4 nommu build.\n  sh: Workaround for __put_user_asm() bug with gcc 4.x on big-endian.\n  sh: Wire up new syscalls.\n  sh: fix uImage Entry Point\n  sh_keysc: remove request_mem_region() and release_mem_region()\n  sh: Don\u0027t miss pending signals returning to user mode after signal processing\n  sh: Use clk_always_enable() on sh7366\n  sh: Use clk_always_enable() on sh7343 / SE77343\n  sh: Use clk_always_enable() on sh7722 / Migo-R / SE7722\n  sh: Use clk_always_enable() on sh7723 / ap325rxa\n  sh: Introduce clk_always_enable() function\n  sh: Show all clocks and their state in /proc/clocks\n  sh: Merge sh7343 and sh7722 clock code\n  sh: Add SuperH Mobile MSTPCR bits to clock framework\n  sh: Use arch_flags to simplify sh7722 siu clock code\n  ...\n"
    },
    {
      "commit": "37eaf8c7463e53cf1acf025fb566fb6c4573297f",
      "tree": "9df7e9e3e7722d9ddf257e19fd8551425d27a292",
      "parents": [
        "58f250714f2bfa3514798fde8b9d38a15e4a9836",
        "784e2d76007f90d69341b95967160c4fb7829299"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 08:37:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 08:37:46 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  stop_machine: fix up ftrace.c\n  stop_machine: Wean existing callers off stop_machine_run()\n  stop_machine(): stop_machine_run() changed to use cpu mask\n  Hotplug CPU: don\u0027t check cpu_online after take_cpu_down\n  Simplify stop_machine\n  stop_machine: add ALL_CPUS option\n  module: fix build warning with !CONFIG_KALLSYMS\n"
    },
    {
      "commit": "306cfd630a4d121cf4e08b894d8b4c4cf106e57e",
      "tree": "1d89d99201c2a4f317c2bf4ae5fa391e45d2349f",
      "parents": [
        "4cec1a37ba7d9dce6ed5d8259b95272100a98b1f"
      ],
      "author": {
        "name": "Adrian McMenamin",
        "email": "adrian@newgolddream.dyndns.info",
        "time": "Sun Jun 15 20:48:09 2008 +0100"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Jul 28 18:10:30 2008 +0900"
      },
      "message": "maple: tidy maple_driver code by removing redundant connect/disconnect\n\nThe connect and disconnect functions are unnecessary - everything they do can be\naccomplished in the initial probe - so remove them.\n\nSigned-off-by: Adrian McMenamin \u003cadrian@mcmen.demon.co.uk\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "d65d830ca06040ffe6a35ce7cb06ee642ddbd6a8",
      "tree": "27cda8b58a24eb8b1acdc3c14f902b90ab3d9eb1",
      "parents": [
        "837b41b5de356aa67abb2cadb5eef3efc7776f91",
        "284b01897340974000bcc84de87a4e1becc8a83d"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Jul 28 16:30:40 2008 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Jul 28 16:30:40 2008 +1000"
      },
      "message": "Merge commit \u0027gcl/gcl-next\u0027\n"
    },
    {
      "commit": "eeec4fad963490821348a331cca6102ae1c4a7a3",
      "tree": "163a7d9414d719fccac096d1ba822416f705b397",
      "parents": [
        "04321587584272f4e8b9818f319f40caf8eeee13"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:30 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:30 2008 +1000"
      },
      "message": "stop_machine(): stop_machine_run() changed to use cpu mask\n\nInstead of a \"cpu\" arg with magic values NR_CPUS (any cpu) and ~0 (all\ncpus), pass a cpumask_t.  Allow NULL for the common case (where we\ndon\u0027t care which CPU the function is run on): temporary cpumask_t\u0027s\nare usually considered bad for stack space.\n\nThis deprecates stop_machine_run, to be removed soon when all the\ncallers are dead.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ffdb5976c47609c862917d4c186ecbb5706d2dda",
      "tree": "7a8485260922290080094adc25f3cbebd4ad506b",
      "parents": [
        "5c2aed622571ac7c3c6ec182d6d3c318e4b45c8b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:28 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:29 2008 +1000"
      },
      "message": "Simplify stop_machine\n\nstop_machine creates a kthread which creates kernel threads.  We can\ncreate those threads directly and simplify things a little.  Some care\nmust be taken with CPU hotunplug, which has special needs, but that code\nseems more robust than it was in the past.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\n"
    },
    {
      "commit": "5c2aed622571ac7c3c6ec182d6d3c318e4b45c8b",
      "tree": "0a3b422b16cd0725eebbe5047fd5482583279d8a",
      "parents": [
        "15bba37d62351749c3915add81f673b256952ee1"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Thu Feb 28 11:33:03 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:28 2008 +1000"
      },
      "message": "stop_machine: add ALL_CPUS option\n\n-allow stop_mahcine_run() to call a function on all cpus. Calling\n stop_machine_run() with a \u0027ALL_CPUS\u0027 invokes this new behavior.\n stop_machine_run() proceeds as normal until the calling cpu has\n invoked \u0027fn\u0027. Then, we tell all the other cpus to call \u0027fn\u0027.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCC: Adrian Bunk \u003cbunk@stusta.de\u003e\nCC: Andi Kleen \u003candi@firstfloor.org\u003e\nCC: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCC: Christoph Hellwig \u003chch@infradead.org\u003e\nCC: mingo@elte.hu\nCC: akpm@osdl.org\n"
    },
    {
      "commit": "c2f90e9536887fb76fb6a2aa239a70fc49beda10",
      "tree": "f87e6b29248c45a92ec6b4b8ffe675bb52e6104b",
      "parents": [
        "f3409f71a76838b1bc985f753eed787a3f17bc2c",
        "c9272c4f9fbe2087beb3392f526dc5b19efaa56b"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@infradead.org",
        "time": "Sun Jul 27 22:23:18 2008 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@infradead.org",
        "time": "Sun Jul 27 22:23:18 2008 -0300"
      },
      "message": "Merge ../linux-2.6\n"
    },
    {
      "commit": "940389b8afad6495211614c13eb91ef7001773ec",
      "tree": "92c581cc9dc7a067899a6a28e382e4099dfe8ead",
      "parents": [
        "837b41b5de356aa67abb2cadb5eef3efc7776f91"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "righi.andrea@gmail.com",
        "time": "Mon Jul 28 00:48:12 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 16:12:28 2008 -0700"
      },
      "message": "task IO accounting: move all IO statistics in struct task_io_accounting\n\nSimplify the code of include/linux/task_io_accounting.h.\n\nIt is also more reasonable to have all the task i/o-related statistics in a\nsingle struct (task_io_accounting).\n\nSigned-off-by: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eb703027ac4ed563823e4d7824f68afed637d89a",
      "tree": "de35552440e7d2c7b74d0020c6a3cc1a8ed8b060",
      "parents": [
        "429e90893c9ad2c266d541c94d6ca69a34a7701d",
        "837b41b5de356aa67abb2cadb5eef3efc7776f91"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@infradead.org",
        "time": "Sun Jul 27 18:11:53 2008 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@infradead.org",
        "time": "Sun Jul 27 18:11:53 2008 -0300"
      },
      "message": "Merge ../linux-2.6\n"
    },
    {
      "commit": "837b41b5de356aa67abb2cadb5eef3efc7776f91",
      "tree": "b63a9898c9a2b6563d8aec75c2abbec379898613",
      "parents": [
        "211c8d4942edf2f3337820dda101da6b13c8a19a",
        "f05e21b39f7dddcebab03ff329fef5783fea58d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 10:24:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 10:24:06 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: state userland requirements in Kconfig help\n  firewire: avoid memleak after phy config transmit failure\n  firewire: fw-ohci: TSB43AB22/A dualbuffer workaround\n  firewire: queue the right number of data\n  firewire: warn on unfinished transactions during card removal\n  firewire: small fw_fill_request cleanup\n  firewire: fully initialize fw_transaction before marking it pending\n  firewire: fix race of bus reset with request transmission\n"
    },
    {
      "commit": "5995477ab7f3522c497c9c4a1c55373e9d655574",
      "tree": "a147fb61642a7ac5441855964eb97a2ff1e37202",
      "parents": [
        "605ccb73f6a1c891a16268b3a2923208fc637958"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "righi.andrea@gmail.com",
        "time": "Sun Jul 27 17:29:15 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 09:58:20 2008 -0700"
      },
      "message": "task IO accounting: improve code readability\n\nPut all i/o statistics in struct proc_io_accounting and use inline functions to\ninitialize and increment statistics, removing a lot of single variable\nassignments.\n\nThis also reduces the kernel size as following (with CONFIG_TASK_XACCT\u003dy and\nCONFIG_TASK_IO_ACCOUNTING\u003dy).\n\n    text    data     bss     dec     hex filename\n   11651       0       0   11651    2d83 kernel/exit.o.before\n   11619       0       0   11619    2d63 kernel/exit.o.after\n   10886     132     136   11154    2b92 kernel/fork.o.before\n   10758     132     136   11026    2b12 kernel/fork.o.after\n\n 3082029  807968 4818600 8708597  84e1f5 vmlinux.o.before\n 3081869  807968 4818600 8708437  84e155 vmlinux.o.after\n\nSigned-off-by: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50cb993ea6cd187bfed085cb3e0747066edeb02f",
      "tree": "61edac62c6c5bc07c59e4369c50c6821ad77f2c0",
      "parents": [
        "445c2714cf72817ab1ad3ca894c6d9b2047b3a3e",
        "8be1a6d6c77ab4532e4476fdb8177030ef48b52c"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@infradead.org",
        "time": "Sun Jul 27 12:25:57 2008 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@infradead.org",
        "time": "Sun Jul 27 12:25:57 2008 -0300"
      },
      "message": "Merge ../linux-2.6\n"
    },
    {
      "commit": "9fa0f6db3a201bef49f28e69f80802559a38586b",
      "tree": "858548b44a2f218a754b8b0506d1a75c1280732e",
      "parents": [
        "74b9ef21162fd81d9de87319c4373f523e2869cd"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@infradead.org",
        "time": "Sun Jul 27 08:55:17 2008 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@infradead.org",
        "time": "Sun Jul 27 12:24:02 2008 -0300"
      },
      "message": "V4L/DVB (8522): videodev2: Fix merge conflict\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\n"
    },
    {
      "commit": "c1d7f4f1648cb8efd87f1b9560c40af2297e7c05",
      "tree": "1021b2e3b1e53bfa61fd0562d3ceda225a006692",
      "parents": [
        "0ea6bc8d43c9ee3c5384bea184eab020927a5b2c"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hverkuil@xs4all.nl",
        "time": "Sat Jul 26 08:33:47 2008 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@infradead.org",
        "time": "Sun Jul 27 11:07:12 2008 -0300"
      },
      "message": "V4L/DVB (8524): videodev: copy the VID_TYPE defines to videodev.h\n\nThe VID_TYPE defines are V4L1 specific, so copy them back to videodev.h.\nIn videodev2.h ensure that they are not used in the kernel (you need\nto include videodev.h instead) and mark them are deprecated.\n\nSigned-off-by: Hans Verkuil \u003chverkuil@xs4all.nl\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\n"
    },
    {
      "commit": "1250ac6d4ab716dafe0ac245fd31cd3a7cbc0a98",
      "tree": "7fa259d8d414566ddc80bc5cba6627d7e946cd28",
      "parents": [
        "496cd7e977c73df2c287eaf6d612fc49d6f83dd7"
      ],
      "author": {
        "name": "Jean-Francois Moine",
        "email": "moinejf@free.fr",
        "time": "Sat Jul 26 08:02:47 2008 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@infradead.org",
        "time": "Sun Jul 27 11:06:42 2008 -0300"
      },
      "message": "V4L/DVB (8518): gspca: Remove the remaining frame decoding functions from the subdrivers.\n\nSPCA505 and SPCA508 added in the pixel formats.\nDecode functions and associated resources removed in spca505, 506 and 508.\nThe decode routines are now found in the V4L library.\n\nSigned-off-by: Jean-Francois Moine \u003cmoinejf@free.fr\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\n"
    },
    {
      "commit": "9993e51c0c47ec69dce1f26c2321af6bb9165e9e",
      "tree": "3febbd2f33f39fa04e7da76a8d8c8e1308b8720b",
      "parents": [
        "fdd2a7e2dac56a3384068802be46b822f2aed703"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@infradead.org",
        "time": "Sat Jul 26 13:53:46 2008 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@infradead.org",
        "time": "Sun Jul 27 11:06:20 2008 -0300"
      },
      "message": "V4L/DVB (8502): videodev2.h: CodingStyle cleanups\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\n"
    },
    {
      "commit": "8be1a6d6c77ab4532e4476fdb8177030ef48b52c",
      "tree": "c94ff327a6291672e1f9071a79bf61d63f5f0cb9",
      "parents": [
        "852fef69c0d9510a28a70221cfddd004efa02552",
        "cc9969c96765476db5e30c9e074a57838604c1d1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:40:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:40:36 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:\n  mlx4: Update/add Mellanox Technologies copyright lines to mlx4 driver files\n  mlx4_core: Add VLAN tag field to WQE control segment struct\n  RDMA/nes: CM connection setup/teardown rework\n  IPoIB: Correct help text for INFINIBAND_IPOIB_DEBUG\n  IPoIB/cm: Connected mode is no longer EXPERIMENTAL\n  RDMA/ucm: BKL is not needed for ib_ucm_open()\n  RDMA/ucma: BKL is not needed for ucma_open()\n"
    },
    {
      "commit": "9ee08c2df47c10ba624ff05a6c0f2500748bcb69",
      "tree": "0a2788abb3b5547b83965e0b3132eec8b196bd81",
      "parents": [
        "eaf0ba5ef69538b6913525294a3a0fcb0e0992e0",
        "3d45955962496879dead8d4dd70bb9a23b07154b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:30:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:30:56 2008 -0700"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6: (57 commits)\n  [MTD] [NAND] subpage read feature as a way to increase performance. \n  CPUFREQ: S3C24XX NAND driver frequency scaling support.\n  [MTD][NAND] au1550nd: remove unused variable\n  [MTD] jedec_probe: Fix SST 16-bit chip detection\n  [MTD][MTDPART] Fix a division by zero bug\n  [MTD][MTDPART] Cleanup and document the erase region handling\n  [MTD][MTDPART] Handle most checkpatch findings\n  [MTD][MTDPART] Seperate main loop from per-partition code in add_mtd_partition\n  [MTD] physmap: resume already suspended chips on failure to suspend\n  [MTD] physmap: Fix suspend/resume/shutdown bugs.\n  [MTD] [NOR] Fix -ETIMEO errors in CFI driver\n  [MTD] [NAND] fsl_elbc_nand: fix section mismatch with CONFIG_MTD_OF_PARTS\u003dy\n  [JFFS2] Use .unlocked_ioctl\n  [MTD] Fix const assignment in the MTD command line partitioning driver\n  [MTD] [NOR] gen_probe: No debug message when debugging is disabled\n  [MTD] [NAND] remove __PPC__ hardcoded address from DiskOnChip drivers\n  [MTD] [MAPS] Remove the bast-flash driver.\n  [MTD] [NAND] fsl_elbc_nand: ecclayout cleanups\n  [MTD] [NAND] fsl_elbc_nand: implement support for flash-based BBT\n  [MTD] [NAND] fsl_elbc_nand: fix OOB workability for large page NAND chips\n  ...\n"
    },
    {
      "commit": "eaf0ba5ef69538b6913525294a3a0fcb0e0992e0",
      "tree": "2c67cfa8fcc8f971bcf660b83654c9e6b807ff3d",
      "parents": [
        "732730d48dc777f6577a6e0fece42b860324998e",
        "a9906a19193db69ad0158f289f839edf8aaf103f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:29:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:29:39 2008 -0700"
      },
      "message": "Merge branch \u0027tracehook\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-utrace\n\n* \u0027tracehook\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-utrace:\n  tracehook: comment fixes\n"
    },
    {
      "commit": "bdee6ac7d1c9a4a9b65db1753b0bfa0b61361dde",
      "tree": "d2d260a3aa7e0902be023c0fbdb52ec26dbd6609",
      "parents": [
        "4836e3007882984279ca63d3c42bf0b14616eb78",
        "deec9ae31e6079551ce9260d29a4cf83e5b19a83"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:27:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:27:31 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc:\n  atmel-mci: debugfs support\n  mmc: Add per-card debugfs support\n  mmc: Export internal host state through debugfs\n  imxmmc: fix crash when no platform data is provided\n  imxmmc: fix platform resources\n  imxmmc: remove DEBUG definition\n  mmc_spi: put signals to low power off fix\n"
    },
    {
      "commit": "4836e3007882984279ca63d3c42bf0b14616eb78",
      "tree": "28bf22726964e068b825491d71a141eefedbe5f8",
      "parents": [
        "5c7c204aeca51ccfad63caab4fcdc5d8026c0fd8",
        "4e1e018ecc6f7bfd10fc75b3ff9715cc8164e0a2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:23:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:23:44 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (39 commits)\n  [PATCH] fix RLIM_NOFILE handling\n  [PATCH] get rid of corner case in dup3() entirely\n  [PATCH] remove remaining namei_{32,64}.h crap\n  [PATCH] get rid of indirect users of namei.h\n  [PATCH] get rid of __user_path_lookup_open\n  [PATCH] f_count may wrap around\n  [PATCH] dup3 fix\n  [PATCH] don\u0027t pass nameidata to __ncp_lookup_validate()\n  [PATCH] don\u0027t pass nameidata to gfs2_lookupi()\n  [PATCH] new (local) helper: user_path_parent()\n  [PATCH] sanitize __user_walk_fd() et.al.\n  [PATCH] preparation to __user_walk_fd cleanup\n  [PATCH] kill nameidata passing to permission(), rename to inode_permission()\n  [PATCH] take noexec checks to very few callers that care\n  Re: [PATCH 3/6] vfs: open_exec cleanup\n  [patch 4/4] vfs: immutable inode checking cleanup\n  [patch 3/4] fat: dont call notify_change\n  [patch 2/4] vfs: utimes cleanup\n  [patch 1/4] vfs: utimes: move owner check into inode_change_ok()\n  [PATCH] vfs: use kstrdup() and check failing allocation\n  ...\n"
    },
    {
      "commit": "5c7c204aeca51ccfad63caab4fcdc5d8026c0fd8",
      "tree": "4bfd5f4455b706c9ba86a8925bf367f437d16336",
      "parents": [
        "228428428138e231a155464239880201e5cc8b44",
        "3712b42d4b1bec29a4232a6673bf2e6dcc5faa68"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:19:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:19:41 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/kkeil/ISDN-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/kkeil/ISDN-2.6:\n  Add layer1 over IP support\n  Add mISDN HFC multiport driver\n  Add mISDN HFC PCI driver\n  Add mISDN DSP\n  Add mISDN core files\n  Define AF_ISDN and PF_ISDN\n  Add mISDN driver\n"
    },
    {
      "commit": "228428428138e231a155464239880201e5cc8b44",
      "tree": "89b437f5501d03ca36b717e232337426d0de77ca",
      "parents": [
        "78681ac08a611313595d13cafabae1183b71ef48",
        "6c3b8fc618905d7599dcc514c99ce4293d476f39"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:17:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:17:56 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  netns: fix ip_rt_frag_needed rt_is_expired\n  netfilter: nf_conntrack_extend: avoid unnecessary \"ct-\u003eext\" dereferences\n  netfilter: fix double-free and use-after free\n  netfilter: arptables in netns for real\n  netfilter: ip{,6}tables_security: fix future section mismatch\n  selinux: use nf_register_hooks()\n  netfilter: ebtables: use nf_register_hooks()\n  Revert \"pkt_sched: sch_sfq: dump a real number of flows\"\n  qeth: use dev-\u003eml_priv instead of dev-\u003epriv\n  syncookies: Make sure ECN is disabled\n  net: drop unused BUG_TRAP()\n  net: convert BUG_TRAP to generic WARN_ON\n  drivers/net: convert BUG_TRAP to generic WARN_ON\n"
    },
    {
      "commit": "510a35d4a47802f4a0028aa6bd2ca2170da5e32f",
      "tree": "8eb0d6091fe89f013436c5080dc4cbaf825172cf",
      "parents": [
        "b2d002dba5a8a4c0c3ec96fd1ff3c9def6bd71a1"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "righi.andrea@gmail.com",
        "time": "Sat Jul 26 15:22:27 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:16:47 2008 -0700"
      },
      "message": "hugetlb: remove unused variable warning\n\nRemove the following warning when CONFIG_HUGETLB_PAGE is not set:\n\n\tipc/shm.c: In function `shm_get_stat\u0027:\n\tipc/shm.c:565: warning: unused variable `h\u0027\n\n[akpm@linux-foundation.org: use tabs, not spaces]\nSigned-off-by: Andrea Righi \u003crighi.andrea@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": "3f8206d496e9e9495afb1d4e70d29712b4d403c9",
      "tree": "5bedea1aff8b5e584fbf8497c80fcaccf9242d69",
      "parents": [
        "964bd183624c03680796b63b4ab97ee3905a806a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 03:46:43 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:42 2008 -0400"
      },
      "message": "[PATCH] get rid of indirect users of namei.h\n\nfs.h needs path.h, not namei.h; nfs_fs.h doesn\u0027t need it at all.\nSeveral places in the tree needed direct include.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "964bd183624c03680796b63b4ab97ee3905a806a",
      "tree": "801fa25ccd01a7c7bf8ee793ba910edc8ce3f55a",
      "parents": [
        "516e0cc5646f377ab80fcc2ee639892eccb99853"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 03:33:14 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:41 2008 -0400"
      },
      "message": "[PATCH] get rid of __user_path_lookup_open\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "516e0cc5646f377ab80fcc2ee639892eccb99853",
      "tree": "e06296dcedb42dbe397d237887873e70c5823d51",
      "parents": [
        "3c333937ee3be114b181c4861188cfe8f6a59697"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 00:39:17 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:40 2008 -0400"
      },
      "message": "[PATCH] f_count may wrap around\n\nmake it atomic_long_t; while we are at it, get rid of useless checks in affs,\nhfs and hpfs - -\u003eopen() always has it equal to 1, -\u003erelease() - to 0.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2d8f30380ab8c706f4e0a8f1aaa22b5886e9ac8a",
      "tree": "b798097fd831eab39f35c8c2e5a8ccfd7a850ef5",
      "parents": [
        "256984a83880ff7ac78055cb87baea48137f0b77"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 22 09:59:21 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:34 2008 -0400"
      },
      "message": "[PATCH] sanitize __user_walk_fd() et.al.\n\n* do not pass nameidata; struct path is all the callers want.\n* switch to new helpers:\n\tuser_path_at(dfd, pathname, flags, \u0026path)\n\tuser_path(pathname, \u0026path)\n\tuser_lpath(pathname, \u0026path)\n\tuser_path_dir(pathname, \u0026path)  (fail if not a directory)\n  The last 3 are trivial macro wrappers for the first one.\n* remove nameidata in callers.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f419a2e3b64def707e1384ee38abb77f99af5f6d",
      "tree": "adbe12c510f04cf25ca6f822ee8004c8679a3a63",
      "parents": [
        "30524472c2f728c20d6bf35191042a5d455c0a64"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 22 00:07:17 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:31 2008 -0400"
      },
      "message": "[PATCH] kill nameidata passing to permission(), rename to inode_permission()\n\nIncidentally, the name that gives hundreds of false positives on grep\nis not a good idea...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9767d74957450da6365c363d69e3d02d605d7375",
      "tree": "913afe491d13b42b0cfcb540569080bba4725dfd",
      "parents": [
        "88b387824fdaecb6ba0f471acf0aadf7d24739fd"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Jul 01 15:01:26 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:25 2008 -0400"
      },
      "message": "[patch 1/4] vfs: utimes: move owner check into inode_change_ok()\n\nAdd a new ia_valid flag: ATTR_TIMES_SET, to handle the\nUTIMES_OMIT/UTIMES_NOW and UTIMES_NOW/UTIMES_OMIT cases.  In these\ncases neither ATTR_MTIME_SET nor ATTR_ATIME_SET is in the flags, yet\nthe POSIX draft specifies that permission checking is performed the\nsame way as if one or both of the times was explicitly set to a\ntimestamp.\n\nSee the path \"vfs: utimensat(): fix error checking for\n{UTIME_NOW,UTIME_OMIT} case\" by Michael Kerrisk for the patch\nintroducing this behavior.\n\nThis is a cleanup, as well as allowing filesystems (NFS/fuse/...) to\nperform their own permission checking instead of the default.\n\nCC: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCC: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "88b387824fdaecb6ba0f471acf0aadf7d24739fd",
      "tree": "bd0e169bc0d2a802cd4ea58baf957bfa4602e956",
      "parents": [
        "672b16b2f66c149888bd876a4f92342112205fe1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jul 21 18:06:36 2008 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:24 2008 -0400"
      },
      "message": "[PATCH] vfs: use kstrdup() and check failing allocation\n\n- use kstrdup() instead of kmalloc() + memcpy()\n- return NULL if allocating -\u003emnt_devname failed\n- mnt_devname should be const\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b77b0646ef4efe31a7449bb3d9360fd00f95433d",
      "tree": "f8487fe832fbe23400c9f98e808555f0251fb158",
      "parents": [
        "a110343f0d6d41f68b7cf8c00b57a3172c67f816"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jul 17 09:37:02 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:22 2008 -0400"
      },
      "message": "[PATCH] pass MAY_OPEN to vfs_permission() explicitly\n\n... and get rid of the last \"let\u0027s deduce mask from nameidata-\u003eflags\"\nbit.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a110343f0d6d41f68b7cf8c00b57a3172c67f816",
      "tree": "04f57e3454e796765a7395d2ece4739cf536ae9f",
      "parents": [
        "7f2da1e7d0330395e5e9e350b879b98a1ea495df"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jul 17 09:19:08 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:21 2008 -0400"
      },
      "message": "[PATCH] fix MAY_CHDIR/MAY_ACCESS/LOOKUP_ACCESS mess\n\n* MAY_CHDIR is redundant - it\u0027s an equivalent of MAY_ACCESS\n* MAY_ACCESS on fuse should affect only the last step of pathname resolution\n* fchdir() and chroot() should pass MAY_ACCESS, for the same reason why\n  chdir() needs that.\n* now that we pass MAY_ACCESS explicitly in all cases, LOOKUP_ACCESS can be\n  removed; it has no business being in nameidata.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7f2da1e7d0330395e5e9e350b879b98a1ea495df",
      "tree": "adc01ced45bb1de10fe58511e7143bbbd138a192",
      "parents": [
        "8bb79224b87aab92071e94d46e70bd160d89bf34"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 10 20:44:54 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:20 2008 -0400"
      },
      "message": "[PATCH] kill altroot\n\nlong overdue...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8bb79224b87aab92071e94d46e70bd160d89bf34",
      "tree": "dab47cbb434876e5916f18b738ef8bd3fe1e1ce1",
      "parents": [
        "db2e747b14991a4c6a5c98b0e5f552a193237c03"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 16 09:51:03 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:19 2008 -0400"
      },
      "message": "[PATCH] permission checks for chdir need special treatment only on the last step\n\n... so we ought to pass MAY_CHDIR to vfs_permission() instead of having\nit triggered on every step of preceding pathname resolution.  LOOKUP_CHDIR\nis killed by that.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "db2e747b14991a4c6a5c98b0e5f552a193237c03",
      "tree": "8850e8ef9e1a7bb3d7bbc051f191cd8350093564",
      "parents": [
        "7e79eedb3b22200cc8b774baea3a7bf28d766101"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Jun 24 16:50:16 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:18 2008 -0400"
      },
      "message": "[patch 5/5] vfs: remove mode parameter from vfs_symlink()\n\nRemove the unused mode parameter from vfs_symlink and callers.\n\nThanks to Tetsuo Handa for noticing.\n\nCC: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "2f1936b87783a3a56c9441b27b9ba7a747f11e8e",
      "tree": "024a0f3da74ba6365f209d03685133760146149b",
      "parents": [
        "c82e42da8a6b2f3a85dc4d4278cb8238702f8f64"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Jun 24 16:50:14 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:16 2008 -0400"
      },
      "message": "[patch 3/5] vfs: change remove_suid() to file_remove_suid()\n\nAll calls to remove_suid() are made with a file pointer, because\n(similarly to file_update_time) it is called when the file is written.\n\nClean up callers by passing in a file instead of a dentry.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "e6305c43eda10ebfd2ad9e35d6e172ccc7bb3695",
      "tree": "8a95bd0e27fb3ce895cca9ef91af2e1605e4cdab",
      "parents": [
        "1bd5191d9f5d1928c4efdf604c4164b04bb88dbe"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 15 21:03:57 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:14 2008 -0400"
      },
      "message": "[PATCH] sanitize -\u003epermission() prototype\n\n* kill nameidata * argument; map the 3 bits in -\u003eflags anybody cares\n  about to new MAY_... ones and pass with the mask.\n* kill redundant gfs2_iop_permission()\n* sanitize ecryptfs_permission()\n* fix remaining places where -\u003epermission() instances might barf on new\n  MAY_... found in mask.\n\nThe obvious next target in that direction is permission(9)\n\nfolded fix for nfs_permission() breakage from Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9043476f726802f4b00c96d0c4f418dde48d1304",
      "tree": "9ead0294bc75e219c12b44fc7eb8996248400f2a",
      "parents": [
        "ae7edecc9b8810770a8e5cb9a466ea4bdcfa8401"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 15 08:54:06 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:12 2008 -0400"
      },
      "message": "[PATCH] sanitize proc_sysctl\n\n* keep references to ctl_table_head and ctl_table in /proc/sys inodes\n* grab the former during operations, use the latter for access to\n  entry if that succeeds\n* have -\u003ed_compare() check if table should be seen for one who does lookup;\n  that allows us to avoid flipping inodes - if we have the same name resolve\n  to different things, we\u0027ll just keep several dentries and -\u003ed_compare()\n  will reject the wrong ones.\n* have -\u003elookup() and -\u003ereaddir() scan the table of our inode first, then\n  walk all ctl_table_header and scan -\u003eattached_by for those that are\n  attached to our directory.\n* implement -\u003egetattr().\n* get rid of insane amounts of tree-walking\n* get rid of the need to know dentry in -\u003epermission() and of the contortions\n  induced by that.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ae7edecc9b8810770a8e5cb9a466ea4bdcfa8401",
      "tree": "8c0a244f4aea3eca5d8edf45665266b007eb046e",
      "parents": [
        "bd7b1533cd6a68c734062aa69394bec7e2b1718e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 15 06:33:31 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:11 2008 -0400"
      },
      "message": "[PATCH] sysctl: keep track of tree relationships\n\nIn a sense, that\u0027s the heart of the series.  It\u0027s based on the following\nproperty of the trees we are actually asked to add: they can be split into\nstem that is already covered by registered trees and crown that is entirely\nnew.  IOW, if a/b and a/c/d are introduced by our tree, then a/c is also\nintroduced by it.\n\nThat allows to associate tree and table entry with each node in the union;\nwhile directory nodes might be covered by many trees, only one will cover\nthe node by its crown.  And that will allow much saner logics for /proc/sys\nin the next patches.  This patch introduces the data structures needed to\nkeep track of that.\n\nWhen adding a sysctl table, we find a \"parent\" one.  Which is to say,\nfind the deepest node on its stem that already is present in one of the\ntables from our table set or its ancestor sets.  That table will be our\nparent and that node in it - attachment point.  Add our table to list\nanchored in parent, have it refer the parent and contents of attachment\npoint.  Also remember where its crown lives.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f7e6ced4061da509f737541ca4dbd44d83a6e82f",
      "tree": "065a6907a085854da1eb176da1314c472e69a364",
      "parents": [
        "734550921e9b7ab924a43aa3d0bd4239dac4fbf1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 15 01:44:23 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:09 2008 -0400"
      },
      "message": "[PATCH] allow delayed freeing of ctl_table_header\n\nRefcount the sucker; instead of freeing it by the end of unregistration\njust drop the refcount and free only when it hits zero.  Make sure that\nwe _always_ make -\u003eunregistering non-NULL in start_unregistering().\n\nThat allows anybody to get a reference to such puppy, preventing its\nfreeing and reuse.  It does *not* block unregistration.  Anybody who\nholds such a reference can\n\t* try to grab a \"use\" reference (ctl_head_grab()); that will\nsucceeds if and only if it hadn\u0027t entered unregistration yet.  If it\nsucceeds, we can use it in all normal ways until we release the \"use\"\nreference (with ctl_head_finish()).  Note that this relies on having\n-\u003eunregistering become non-NULL in all cases when one starts to unregister\nthe sucker.\n\t* keep pointers to ctl_table entries; they *can* be freed if\nthe entire thing is unregistered.  However, if ctl_head_grab() succeeds,\nwe know that unregistration had not happened (and will not happen until\nctl_head_finish()) and such pointers can be used safely.\n\nIOW, now we can have inodes under /proc/sys keep references to ctl_table\nentries, protecting them with references to ctl_table_header and\ngrabbing the latter for the duration of operations that require access\nto ctl_table.  That won\u0027t cause deadlocks, since unregistration will not\nbe stopped by mere keeping a reference to ctl_table_header.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "734550921e9b7ab924a43aa3d0bd4239dac4fbf1",
      "tree": "7be4b0808ba9860f1d953b45120262a277866021",
      "parents": [
        "7ac6cd653d7c31ad6b7bb5b88c549c4ebf628c34"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 14 21:22:20 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:08 2008 -0400"
      },
      "message": "[PATCH] beginning of sysctl cleanup - ctl_table_set\n\nNew object: set of sysctls [currently - root and per-net-ns].\nContains: pointer to parent set, list of tables and \"should I see this set?\"\nmethod (-\u003eis_seen(set)).\nCurrent lists of tables are subsumed by that; net-ns contains such a beast.\n-\u003elookup() for ctl_table_root returns pointer to ctl_table_set instead of\nthat to -\u003elist of that ctl_table_set.\n\n[folded compile fixes by rdd for configs without sysctl]\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d2d9648ec6858e19d16a0b16da62534e85888653",
      "tree": "ba3d66e3ed90ef56ec58e699beeb487db930375b",
      "parents": [
        "d70b67c8bc72ee23b55381bd6a884f4796692f77"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jul 01 14:16:09 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:06 2008 -0400"
      },
      "message": "[PATCH] reuse xxx_fifo_fops for xxx_pipe_fops\n\nMerge fifo and pipe file_operations.\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "93bc4e89c260d91576840c4881d1066d84ccd422",
      "tree": "456176a054fc9a3fed18ac6ce50c7a34a86c5808",
      "parents": [
        "3918fed5f31213067c1c345bd904e1ea369e6819"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sat Jul 26 17:49:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 26 17:49:33 2008 -0700"
      },
      "message": "netfilter: fix double-free and use-after free\n\nAs suggested by Patrick McHardy, introduce a __krealloc() that doesn\u0027t\nfree the original buffer to fix a double-free and use-after-free bug\nintroduced by me in netfilter that uses RCU.\n\nReported-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nTested-by: Dieter Ries \u003cclip2@gmx.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "af69fb3a8ffa37e986db00ed93099dc44babeef4",
      "tree": "63354d4ae8b0d6e08f3f550e55cb6c4ccc548bd3",
      "parents": [
        "1700fe1a10dc0eaac0ef60a8093eaeafa9bff9ae"
      ],
      "author": {
        "name": "Karsten Keil",
        "email": "kkeil@suse.de",
        "time": "Sun Jul 27 02:00:43 2008 +0200"
      },
      "committer": {
        "name": "Karsten Keil",
        "email": "kkeil@suse.de",
        "time": "Sun Jul 27 02:00:43 2008 +0200"
      },
      "message": "Add mISDN HFC multiport driver\n\nEnable support for cards with Cologne Chip AG\u0027s HFC multiport\nchip.\n\nSigned-off-by: Karsten Keil \u003ckkeil@suse.de\u003e\n"
    },
    {
      "commit": "960366cf8dbb3359afaca30cf7fdbf69a6d6dda7",
      "tree": "261bc6e6584caf44d8d1fa319e6228431ac3b91d",
      "parents": [
        "1b2b03f8e514e4f68e293846ba511a948b80243c"
      ],
      "author": {
        "name": "Karsten Keil",
        "email": "kkeil@suse.de",
        "time": "Sun Jul 27 01:56:38 2008 +0200"
      },
      "committer": {
        "name": "Karsten Keil",
        "email": "kkeil@suse.de",
        "time": "Sun Jul 27 01:56:38 2008 +0200"
      },
      "message": "Add mISDN DSP\n\nEnable support for digital audio processing capability.\nThis module may be used for special applications that require\ncross connecting of bchannels, conferencing, dtmf decoding\necho cancelation, tone generation, and Blowfish encryption and\ndecryption.\nIt may use hardware features if available.\n\nSigned-off-by: Karsten Keil \u003ckkeil@suse.de\u003e\n"
    },
    {
      "commit": "1b2b03f8e514e4f68e293846ba511a948b80243c",
      "tree": "5ffb07d532afca95170ea0615bb74af78b0d0483",
      "parents": [
        "04578dd330f1ec6bc9c4233833bee0d0ca73ff09"
      ],
      "author": {
        "name": "Karsten Keil",
        "email": "kkeil@suse.de",
        "time": "Sun Jul 27 01:54:58 2008 +0200"
      },
      "committer": {
        "name": "Karsten Keil",
        "email": "kkeil@suse.de",
        "time": "Sun Jul 27 01:54:58 2008 +0200"
      },
      "message": "Add mISDN core files\n\nAdd mISDN core files\n\nSigned-off-by: Karsten Keil \u003ckkeil@suse.de\u003e\n"
    },
    {
      "commit": "04578dd330f1ec6bc9c4233833bee0d0ca73ff09",
      "tree": "dc7557207bb86a37d166efa4ca6d29e66b944b45",
      "parents": [
        "e4ac9bc1f6686dcb8c34e2756aa93cc9546fa6ae"
      ],
      "author": {
        "name": "Karsten Keil",
        "email": "kkeil@suse.de",
        "time": "Sat Jul 26 18:52:34 2008 +0200"
      },
      "committer": {
        "name": "Karsten Keil",
        "email": "kkeil@suse.de",
        "time": "Sun Jul 27 01:47:00 2008 +0200"
      },
      "message": "Define AF_ISDN and PF_ISDN\n\nDefine the address and protocol family value for mISDN.\n\nSigned-off-by: Karsten Keil \u003ckkeil@suse.de\u003e\n"
    },
    {
      "commit": "f4b7f927b531ca350cfc4ca1bdc3377dac7f9a32",
      "tree": "9ad0b50fba46d24deb361a37a28141b12830b443",
      "parents": [
        "6edd8ee60ac9b974bd6ec3b1bcb2aab02762fa8c"
      ],
      "author": {
        "name": "Haavard Skinnemoen",
        "email": "haavard.skinnemoen@atmel.com",
        "time": "Thu Jul 24 14:18:58 2008 +0200"
      },
      "committer": {
        "name": "Pierre Ossman",
        "email": "drzeus@drzeus.cx",
        "time": "Sun Jul 27 01:26:17 2008 +0200"
      },
      "message": "mmc: Add per-card debugfs support\n\nFor each card successfully added to the bus, create a subdirectory under\nthe host\u0027s debugfs root with information about the card.\n\nAt the moment, only a single file is added to the card directory for\nall cards: \"state\". It reflects the \"state\" field in struct mmc_card,\nindicating whether the card is present, readonly, etc.\n\nFor MMC and SD cards (not SDIO), another file is added: \"status\".\nReading this file will ask the card about its current status and\nreturn it. This can be useful if the card just refuses to respond to\nany commands, which might indicate that the card state is not what the\nMMC core thinks it is (due to a missing stop command, for example.)\n\nSigned-off-by: Haavard Skinnemoen \u003chaavard.skinnemoen@atmel.com\u003e\nSigned-off-by: Pierre Ossman \u003cdrzeus@drzeus.cx\u003e\n"
    },
    {
      "commit": "6edd8ee60ac9b974bd6ec3b1bcb2aab02762fa8c",
      "tree": "0f24dc879d9645935974489d152dd83815fcff68",
      "parents": [
        "c5d5e9c40fc6cabedd5fdc7441e6e9d37f5c9bba"
      ],
      "author": {
        "name": "Haavard Skinnemoen",
        "email": "haavard.skinnemoen@atmel.com",
        "time": "Thu Jul 24 14:18:57 2008 +0200"
      },
      "committer": {
        "name": "Pierre Ossman",
        "email": "drzeus@drzeus.cx",
        "time": "Sun Jul 27 01:26:16 2008 +0200"
      },
      "message": "mmc: Export internal host state through debugfs\n\nWhen CONFIG_DEBUG_FS is set, create a few files under /sys/kernel/debug\ncontaining information about an mmc host\u0027s internal state. Currently,\njust a single file is created, \"ios\", which contains information about\nthe current operating parameters for the bus (clock speed, bus width,\netc.)\n\nHost drivers can add additional files and directories under the host\u0027s\nroot directory by passing the debugfs_root field in struct mmc_host as\nthe \u0027parent\u0027 parameter to debugfs_create_*.\n\nSigned-off-by: Haavard Skinnemoen \u003chaavard.skinnemoen@atmel.com\u003e\nSigned-off-by: Pierre Ossman \u003cdrzeus@drzeus.cx\u003e\n"
    },
    {
      "commit": "a9906a19193db69ad0158f289f839edf8aaf103f",
      "tree": "6168b333784d733213e4978b8f35cdde7ae66e02",
      "parents": [
        "a048d3aff8b828b6c0fa7ddd90a531248ab4e0f9"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Sat Jul 26 14:41:26 2008 -0700"
      },
      "committer": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Sat Jul 26 14:41:26 2008 -0700"
      },
      "message": "tracehook: comment fixes\n\nThis fixes some typos and errors in \u003clinux/tracehook.h\u003e comments.\nNo code changes.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\n"
    },
    {
      "commit": "fb3b80614438f8b73b3879a19350439d6aa402da",
      "tree": "8397dc4dd85b3ecc8d3cb3f56d143843a6346b8c",
      "parents": [
        "7f268a2ba7c884a239713696238dd4207a57dd9a",
        "3a61ec387c9092dfc91a5959145d36835a72fc4c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 13:25:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 13:25:05 2008 -0700"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, AMD IOMMU: include amd_iommu_last_bdf in device initialization\n  x86: fix IBM Summit based systems\u0027 phys_cpu_present_map on 32-bit kernels\n  x86, RDC321x: remove gpio.h complications\n  x86, RDC321x: add to mach-default\n  crashdump: fix undefined reference to `elfcorehdr_addr\u0027\n  flag parameters: fix compile error of sys_epoll_create1\n"
    },
    {
      "commit": "9580d85f9cdb076c4bfb467bc6c0d3c5e499957a",
      "tree": "ff746752ff4ce2bff2ae50cea345c1bbbe2b3ba7",
      "parents": [
        "7c363b8c6536f26934172d3c46f0bbec01a97c61"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 19:46:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:12 2008 -0700"
      },
      "message": "drivers/char/rtc.c: make 2 functions static\n\nThe following functions can now become static:\n - rtc_interrupt()\n - rtc_get_rtc_time()\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Bernhard Walle \u003cbwalle@suse.de\u003e\nAcked-by: Paul Gortmaker \u003cp_gortmaker@yahoo.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c363b8c6536f26934172d3c46f0bbec01a97c61",
      "tree": "46a9ce1b0ef9285ab2c7b04f0cf584294853a16f",
      "parents": [
        "15f59adae001766a2c7f7fe4f196387bb04bcff5"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 19:46:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:12 2008 -0700"
      },
      "message": "mm/swapfile.c: make code static\n\nThis patch makes the following needlessly global code static:\n - swap_lock\n - nr_swapfiles\n - struct swap_list\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@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": "15f59adae001766a2c7f7fe4f196387bb04bcff5",
      "tree": "941f7a7c38af5783d55560ce303f3432fcffc01b",
      "parents": [
        "9d8fddfb17aaee4ffc5e3d0560620d0fa8b50a42"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 19:46:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:12 2008 -0700"
      },
      "message": "make mm/memory.c:print_bad_pte() static\n\nThis patch makes the needlessly global print_bad_pte() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@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": "9d8fddfb17aaee4ffc5e3d0560620d0fa8b50a42",
      "tree": "f8a6b13a3048d1ae9c169b2d732fa05d8dcdf2ac",
      "parents": [
        "9e5c6da71e89fa25ced6e88182225a99941bec90"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 19:46:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:12 2008 -0700"
      },
      "message": "mm/allocpercpu.c: make 4 functions static\n\nThis patch makes the following needlessly global functions static:\n - percpu_depopulate()\n - __percpu_depopulate_mask()\n - percpu_populate()\n - __percpu_populate_mask()\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbc698636ed48b6fcd323964e0f847a6a796325d",
      "tree": "c90d31c179aad154089a88d4845f1721ded40860",
      "parents": [
        "85ba2d862e521375a8ee01526c5c46b1f24bb4af"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:10 2008 -0700"
      },
      "message": "task_current_syscall\n\nThis adds the new function task_current_syscall() on machines where the\nasm/syscall.h interface is supported (CONFIG_HAVE_ARCH_TRACEHOOK).  It\u0027s\nexported for modules to use in the future.  This function safely samples\nthe state of a blocked thread to collect what system call it is blocked\nin, and the six system call argument registers.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85ba2d862e521375a8ee01526c5c46b1f24bb4af",
      "tree": "f098555cb580b2864f145aa845b574f07d2cf694",
      "parents": [
        "1f5a4ad97a0e7b663d527ecc02aabe203d000d91"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: wait_task_inactive\n\nThis extends wait_task_inactive() with a new argument so it can be used in\na \"soft\" mode where it will check for the task changing state unexpectedly\nand back off.  There is no change to existing callers.  This lays the\ngroundwork to allow robust, noninvasive tracing that can try to sample a\nblocked thread but back off safely if it wakes up.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "828c365cc8b8d38c346fccb19fa80d28f2240831",
      "tree": "cedb0f1ce389f4b12d7b0975ce52c8af7939cfcd",
      "parents": [
        "64b1208d5b0ef8859fd52ea7ae286a3eb994669b"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: asm/syscall.h\n\nThis adds asm-generic/syscall.h, which documents what a real\nasm-ARCH/syscall.h file should define.  This is not used yet, but will\nprovide all the machine-dependent details of examining a user system call\nabout to begin, in progress, or just ended.\n\nEach arch should add an asm-ARCH/syscall.h that defines all the entry\npoints documented in asm-generic/syscall.h, as short inlines if possible.\nThis lets us write new tracing code that understands user system call\nregisters, without any new arch-specific work.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64b1208d5b0ef8859fd52ea7ae286a3eb994669b",
      "tree": "ebb92b717406dc104924c4ccdedf14357a62b84f",
      "parents": [
        "b787f7ba677840da16a2228c16571ce8a1fcb799"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: TIF_NOTIFY_RESUME\n\nThis adds tracehook.h inlines to enable a new arch feature in support of\nuser debugging/tracing.  This is not used yet, but it lays the groundwork\nfor a debugger to be able to wrangle a task that\u0027s possibly running,\nwithout interrupting its syscalls in progress.\n\nEach arch should define TIF_NOTIFY_RESUME, and in their entry.S code treat\nit much like TIF_SIGPENDING.  That is, it causes you to take the slow path\nwhen returning to user mode, where you get the full user-mode state\naccessible as for signal handling or ptrace.  The arch code should check\nTIF_NOTIFY_RESUME after handling TIF_SIGPENDING.  When it\u0027s set, clear it\nand then call tracehook_notify_resume().\n\nIn future, tracing code will call set_notify_resume() when it wants to get\na callback in tracehook_notify_resume().\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b787f7ba677840da16a2228c16571ce8a1fcb799",
      "tree": "b1838c4ae7f38c00efc2375871a255275500f245",
      "parents": [
        "2b2a1ff64afbadac842bbc58c5166962cf4f7664"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: force signal_pending()\n\nThis defines a new hook tracehook_force_sigpending() that lets tracing\ncode decide to force TIF_SIGPENDING on in recalc_sigpending().\n\nThis is not used yet, so it compiles away to nothing for now.  It lays the\ngroundwork for new tracing code that can interrupt a task synthetically\nwithout actually sending a signal.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b2a1ff64afbadac842bbc58c5166962cf4f7664",
      "tree": "660640eb95117ce6f7436331f23f73805abced10",
      "parents": [
        "fa00b80b3c41a845b3d56f866fb40a2e98754c51"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: death\n\nThis moves the ptrace logic in task death (exit_notify) into tracehook.h\ninlines.  Some code is rearranged slightly to make things nicer.  There is\nno change, only cleanup.\n\nThere is one hook called with the tasklist_lock write-locked, as ptrace\nneeds.  There is also a new hook called after exit_state changes and\nwithout locks.  This is a better place for tracing work to be in the\nfuture, since it doesn\u0027t delay the whole system with locking.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa00b80b3c41a845b3d56f866fb40a2e98754c51",
      "tree": "819d6966cad1fdeef3f32497c696afb203e3720b",
      "parents": [
        "7bcf6a2ca5f639b038c48711ebe6c4eca2036641"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: job control\n\nThis defines the tracehook_notify_jctl() hook to formalize the ptrace\neffects on the job control notifications.  There is no change, only\ncleanup.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7bcf6a2ca5f639b038c48711ebe6c4eca2036641",
      "tree": "4219a0725d581310f729d4616361febd700f0574",
      "parents": [
        "283d7559e7712f95a05331eb0a85394c6368101b"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: get_signal_to_deliver\n\nThis defines the tracehook_get_signal() hook to allow tracing code to slip\nin before normal signal dequeuing.  This lays the groundwork for new\ntracing features that can inject synthetic signals outside the normal\nqueue or control the disposition of delivered signals.  The calling\nconvention lets tracehook_get_signal() decide both exactly what will\nhappen and what signal number to report in the handler/exit.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "283d7559e7712f95a05331eb0a85394c6368101b",
      "tree": "9d8249b44cfe9a3216320940ec5754ecfd220bcd",
      "parents": [
        "445a91d2fe3667fb8fc251433645f686933cf56a"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: syscall\n\nThis adds standard tracehook.h inlines for arch code to call when\nTIF_SYSCALL_TRACE has been set.  This replaces having each arch implement\nthe ptrace guts for its syscall tracing support.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "445a91d2fe3667fb8fc251433645f686933cf56a",
      "tree": "496f0715ba3079f3bf98e9808480fe7f25872b16",
      "parents": [
        "35de254dc60f91004b3b5ebb1fc7b2c3093d6032"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: tracehook_consider_fatal_signal\n\nThis defines tracehook_consider_fatal_signal() has a fine-grained hook for\ndeciding to skip the special cases for a fatal signal, as ptrace does.\nThere is no change, only cleanup.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "35de254dc60f91004b3b5ebb1fc7b2c3093d6032",
      "tree": "101e174247bb3174c8abe0fb8d1405ed6a4db6d1",
      "parents": [
        "c45aea27617d6a1e0aacddc3b0233f704222fcbd"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: tracehook_consider_ignored_signal\n\nThis defines tracehook_consider_ignored_signal() has a fine-grained hook\nfor deciding to prevent the normal short-circuit of sending an ignored\nsignal, as ptrace does.  There is no change, only cleanup.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c45aea27617d6a1e0aacddc3b0233f704222fcbd",
      "tree": "9406cbb5f3ca0029b2f6ef44a951fb7d21fe93f9",
      "parents": [
        "fa8e26ccd485216fc45c8c2dd1ec3b7ef1a0a2f8"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: tracehook_signal_handler\n\nThis defines tracehook_signal_handler() as a hook for the arch signal\nhandling code to call.  It gives ptrace the opportunity to stop for a\npseudo-single-step trap immediately after signal handler setup is done.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa8e26ccd485216fc45c8c2dd1ec3b7ef1a0a2f8",
      "tree": "b6c3059593d7d185aaf7f5b69c363a48b18c5bb1",
      "parents": [
        "0d094efeb1e98010c6b99923f1eb7e17bf1e3a74"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: tracehook_expect_breakpoints\n\nThis adds tracehook_expect_breakpoints() as a formal hook for the nommu\ncode to use for its, \"Is text-poking likely?\" check at mmap time.  This\nnames the actual semantics the code means to test, and documents it.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0d094efeb1e98010c6b99923f1eb7e17bf1e3a74",
      "tree": "6ee271b6da5796e5321d2ab6f9d7d9ba03c300a2",
      "parents": [
        "dae33574dcf5211e1f43c7e45fa29f73ba3e00cb"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:08 2008 -0700"
      },
      "message": "tracehook: tracehook_tracer_task\n\nThis adds the tracehook_tracer_task() hook to consolidate all forms of\n\"Who is using ptrace on me?\" logic.  This is used for \"TracerPid:\" in\n/proc and for permission checks.  We also clean up the selinux code the\ncalled an identical accessor.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dae33574dcf5211e1f43c7e45fa29f73ba3e00cb",
      "tree": "090eb4af17451836fb39cebf57fbee64a6bd23b5",
      "parents": [
        "daded34be96b1975ff8539ff62ad8b158ce7d842"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:08 2008 -0700"
      },
      "message": "tracehook: release_task\n\nThis moves the ptrace-related logic from release_task into tracehook.h and\nptrace.h inlines.  It provides clean hooks both before and after locking\ntasklist_lock, for future tracing logic to do more cleanup without the\nlock.\n\nThis also changes release_task() itself in the rare \"zap_leader\" case to\nset the leader to EXIT_DEAD before iterating.  This maintains the\ninvariant that release_task() only ever handles a task in EXIT_DEAD.  This\nis a common-sense invariant that is already always true except in this one\narcane case of zombie leader whose parent ignores SIGCHLD.\n\nThis change is harmless and only costs one store in this one rare case.\nIt keeps the expected state more consisently sane, which is nicer when\ndebugging weirdness in release_task().  It also lets some future code in\nthe tracehook entry points rely on this invariant for bookkeeping.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "daded34be96b1975ff8539ff62ad8b158ce7d842",
      "tree": "8cab5e809e513efd1a403e587a53a1e75365d1fc",
      "parents": [
        "09a05394fe2448a4139b014936330af23fa7ec83"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:08 2008 -0700"
      },
      "message": "tracehook: vfork-done\n\nThis moves the PTRACE_EVENT_VFORK_DONE tracing into a tracehook.h inline,\ntracehook_report_vfork_done().  The change has no effect, just clean-up.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09a05394fe2448a4139b014936330af23fa7ec83",
      "tree": "a7b3f0ffe271d4d35c3b98a99183d8792ea4db53",
      "parents": [
        "30199f5a46aee204bf437a4f5b0740f3efe448b7"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:08 2008 -0700"
      },
      "message": "tracehook: clone\n\nThis moves all the ptrace initialization and tracing logic for task\ncreation into tracehook.h and ptrace.h inlines.  It reorganizes the code\nslightly, but should not change any behavior.\n\nThere are four tracehook entry points, at each important stage of task\ncreation.  This keeps the interface from the core fork.c code fairly\nclean, while supporting the complex setup required for ptrace or something\nlike it.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "30199f5a46aee204bf437a4f5b0740f3efe448b7",
      "tree": "9855ecf45727f6c41e9d75d4a5ac68c35546c14d",
      "parents": [
        "ff1188646c6870f336e910fb894eeed74f50471f"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:08 2008 -0700"
      },
      "message": "tracehook: exit\n\nThis moves the PTRACE_EVENT_EXIT tracing into a tracehook.h inline,\ntracehook_report_exec().  The change has no effect, just clean-up.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6341c393fcc37d58727865f1ee2f65e632e9d4f0",
      "tree": "6e88d928e17f663b225884e81877a7a069d7c514",
      "parents": [
        "88ac2921a71f788ed693bcd44731dd6bc1994640"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:08 2008 -0700"
      },
      "message": "tracehook: exec\n\nThis moves all the ptrace hooks related to exec into tracehook.h inlines.\n\nThis also lifts the calls for tracing out of the binfmt load_binary hooks\ninto search_binary_handler() after it calls into the binfmt module.  This\nchange has no effect, since all the binfmt modules\u0027 load_binary functions\ndid the call at the end on success, and now search_binary_handler() does\nit immediately after return if successful.  We consolidate the repeated\ncode, and binfmt modules no longer need to import ptrace_notify().\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88ac2921a71f788ed693bcd44731dd6bc1994640",
      "tree": "db7039299713fec545061f884878563f8ae0caa6",
      "parents": [
        "267e2a9c71b8e088ac307f9549f71468e86e26c1"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:08 2008 -0700"
      },
      "message": "tracehook: add linux/tracehook.h\n\nThis patch series introduces the \"tracehook\" interface layer of inlines in\n\u003clinux/tracehook.h\u003e.  There are more details in the log entry for patch\n01/23 and in the header file comments inside that patch.  Most of these\nchanges move code around with little or no change, and they should not\nbreak anything or change any behavior.\n\nThis sets a new standard for uniform arch support to enable clean\narch-independent implementations of new debugging and tracing stuff,\ndenoted by CONFIG_HAVE_ARCH_TRACEHOOK.  Patch 20/23 adds that symbol to\narch/Kconfig, with comments listing everything an arch has to do before\nsetting \"select HAVE_ARCH_TRACEHOOK\".  These are elaborted a bit at:\n\n\thttp://sourceware.org/systemtap/wiki/utrace/arch/HowTo\n\nThe new inlines that arch code must define or call have detailed kerneldoc\ncomments in the generic header files that say what is required.\n\nNo arch is obligated to do any work, and no arch\u0027s build should be broken\nby these changes.  There are several steps that each arch should take so\nit can set HAVE_ARCH_TRACEHOOK.  Most of these are simple.  Providing this\nsupport will let new things people add for doing debugging and tracing of\nuser-level threads \"just work\" for your arch in the future.  For an arch\nthat does not provide HAVE_ARCH_TRACEHOOK, some new options for such\nfeatures will not be available for config.\n\nI have done some arch work and will submit this to the arch maintainers\nafter the generic tracehook series settles in.  For now, that work is\navailable in my GIT repositories, and in patch and mbox-of-patches form at\nhttp://people.redhat.com/roland/utrace/2.6-current/\n\nThis paves the way for my \"utrace\" work, to be submitted later.  But it is\nnot innately tied to that.  I hope that the tracehook series can go in\nsoon regardless of what eventually does or doesn\u0027t go on top of it.  For\nanyone implementing any kind of new tracing/debugging plan, or just\nunderstanding all the context of the existing ptrace implementation,\nhaving tracehook.h makes things much easier to find and understand.\n\nThis patch:\n\nThis adds the new kernel-internal header file \u003clinux/tracehook.h\u003e.  This\nis not yet used at all.  The comments in the header introduce what the\nfollowing series of patches is about.\n\nThe aim is to formalize and consolidate all the places that the core\nkernel code and the arch code now ties into the ptrace implementation.\n\nThese patches mostly don\u0027t cause any functional change.  They just move\nthe details of ptrace logic out of core code into tracehook.h inlines,\nwhere they are mostly compiled away to the same as before.  All that\nchanges is that everything is thoroughly documented and any future\nreworking of ptrace, or addition of something new, would not have to touch\ncore code all over, just change the tracehook.h inlines.\n\nThe new linux/ptrace.h inlines are used by the following patches in the\nnew tracehook_*() inlines.  Using these helpers for the ptrace event stops\nmakes it simple to change or disable the old ptrace implementation of\nthese stops conditionally later.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51cc50685a4275c6a02653670af9f108a64e01cf",
      "tree": "819d47bd2b0c8a9d1835d863853804b0a0242b97",
      "parents": [
        "d91958815d214ea365b98cbff6215383897edcb6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jul 25 19:45:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "SL*B: drop kmem cache argument from constructor\n\nKmem cache passed to constructor is only needed for constructors that are\nthemselves multiplexeres.  Nobody uses this \"feature\", nor does anybody uses\npassed kmem cache in non-trivial way, so pass only pointer to object.\n\nNon-trivial places are:\n\tarch/powerpc/mm/init_64.c\n\tarch/powerpc/mm/hugetlbpage.c\n\nThis is flag day, yes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\n[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]\n[akpm@linux-foundation.org: fix mm/slab.c]\n[akpm@linux-foundation.org: fix ubifs]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19fd6231279be3c3bdd02ed99f9b0eb195978064",
      "tree": "ee09121054262d73c551b57114acd855b82a7a82",
      "parents": [
        "a60637c85893e7191faaafa6a72e197c24386727"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jul 25 19:45:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:06 2008 -0700"
      },
      "message": "mm: spinlock tree_lock\n\nmapping-\u003etree_lock has no read lockers.  convert the lock from an rwlock\nto a spinlock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nReviewed-by: 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": "e286781d5f2e9c846e012a39653a166e9d31777d",
      "tree": "14958fe6d8f3e0459c96c68b3034ea2433ab85ac",
      "parents": [
        "47feff2c8eefe85099f87c43d3096855f0085ca0"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jul 25 19:45:30 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:06 2008 -0700"
      },
      "message": "mm: speculative page references\n\nIf we can be sure that elevating the page_count on a pagecache page will\npin it, we can speculatively run this operation, and subsequently check to\nsee if we hit the right page rather than relying on holding a lock or\notherwise pinning a reference to the page.\n\nThis can be done if get_page/put_page behaves consistently throughout the\nwhole tree (ie.  if we \"get\" the page after it has been used for something\nelse, we must be able to free it with a put_page).\n\nActually, there is a period where the count behaves differently: when the\npage is free or if it is a constituent page of a compound page.  We need\nan atomic_inc_not_zero operation to ensure we don\u0027t try to grab the page\nin either case.\n\nThis patch introduces the core locking protocol to the pagecache (ie.\nadds page_cache_get_speculative, and tweaks some update-side code to make\nit work).\n\nThanks to Hugh for pointing out an improvement to the algorithm setting\npage_count to zero when we have control of all references, in order to\nhold off speculative getters.\n\n[kamezawa.hiroyu@jp.fujitsu.com: fix migration_entry_wait()]\n[hugh@veritas.com: fix add_to_page_cache]\n[akpm@linux-foundation.org: repair a comment]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nReviewed-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "47feff2c8eefe85099f87c43d3096855f0085ca0",
      "tree": "a3a6d005f202d1a37bb406c5623a9d09a447b0f0",
      "parents": [
        "30002ed2e41830ec03ec3e577ad83ac6b188f96e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jul 25 19:45:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:06 2008 -0700"
      },
      "message": "radix-tree: add gang_lookup_slot, gang_lookup_slot_tag\n\nIntroduce gang_lookup_slot() and gang_lookup_slot_tag() functions, which\nare used by lockless pagecache.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nReviewed-by: 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"
    }
  ],
  "next": "21cc199baa815d7b3f1ace4be20b9558cbddc00f"
}
