)]}'
{
  "log": [
    {
      "commit": "59e18a2e1c8f6642c307032939daaf474c16344e",
      "tree": "a0c58aa0e68703cf3844108f46636a6adf941ea6",
      "parents": [
        "3c9ee7ef87414cba80dbdf433d3547bb20055ef7"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Sun Mar 26 01:39:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:14 2006 -0800"
      },
      "message": "[PATCH] bitops: parisc: use generic bitops\n\n- remove __{,test_and_}{set,clear,change}_bit() and test_bit()\n- remove ffz()\n- remove generic_fls64()\n- remove generic_hweight{32,16,8}()\n- remove generic_hweight64()\n- remove sched_find_first_bit()\n- remove find_{next,first}{,_zero}_bit()\n- remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit()\n\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3156054b02e263387d6cd27fd1b05eba2bc25459",
      "tree": "902cb3735f6f124ed0614087211a9c8f675e0673",
      "parents": [
        "4668f0cd0abd41a908ec7aa292e91fd158e0c8f8"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Sun Mar 26 01:39:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:10 2006 -0800"
      },
      "message": "[PATCH] bitops: parisc: add ()-pair in __ffz() macro\n\nNoticed by Michael Tokarev\n\nadd missing ()-pair in __ffz() macro for parisc\n\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3821af2fe13700cab6fd67367128fa180e43f8b8",
      "tree": "a70f63c24bd7d2ac8b25e3e4ee0ef6a50847aa67",
      "parents": [
        "c865e5d99e25a171e8262fc0f7ba608568633c64"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Wed Dec 21 19:30:53 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:11:06 2006 -0800"
      },
      "message": "[FLS64]: generic version\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a366064c3ff46c985a3c7243468be197d29874dc",
      "tree": "379418f6bbbfcfb8ebd6a53786e8d5e0a19d0327",
      "parents": [
        "2464212f68136527f6364d63c23a529e1fd7d168"
      ],
      "author": {
        "name": "Grant Grundler",
        "email": "grundler@parisc-linux.org",
        "time": "Fri Oct 21 22:45:22 2005 -0400"
      },
      "committer": {
        "name": "Kyle McMartin",
        "email": "kyle@parisc-linux.org",
        "time": "Fri Oct 21 22:45:22 2005 -0400"
      },
      "message": "[PARISC] Update bitops from parisc tree\n\nOptimize ext2_find_next_zero_bit. Gives about 25% perf improvement with a\nrsync test with ext3.\n\nSigned-off-by: Randolph Chung \u003ctausq@parisc-linux.org\u003e\n\nfix ext3 performance - ext2_find_next_zero() was culprit.\nKudos to jejb for pointing out the the possibility that ext2_test_bit\nand ext2_find_next_zero() may in fact not be enumerating bits in\nthe bitmap because of endianess. Took sparc64 implementation and\nadapted it to our tree. I suspect the real problem is ffz() wants\nan unsigned long and was getting garbage in the top half of the\nunsigned int. Not confirmed but that\u0027s what I suspect.\n\nSigned-off-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\n\nFix find_next_bit for 32-bit\nMake masking consistent for bitops\n\nFrom: Joel Soete \u003csoete.joel@tiscali.be\u003e\nSigned-off-by: Randolph Chung \u003ctausq@parisc-linux.org\u003e\n\nAdd back incorrectly removed ext2_find_first_zero_bit definition\n\nSigned-off-by: James Bottomley \u003cjejb@parisc-linux.org\u003e\n\nFixup bitops.h to use volatile for *_bit() ops\n\nBased on this email thread:\n       http://marc.theaimsgroup.com/?t\u003d108826637900003\n\nIn a nutshell:\n        *_bit() want use of volatile.\n        __*_bit() are \"relaxed\" and don\u0027t use spinlock or volatile.\n\nother minor changes:\no replaces hweight64() macro with alias to generic_hweight64() (Joel Soete)\no cleanup ext2* macros so (a) it\u0027s obvious what the XOR magic is about\n  and (b) one version that works for both 32/64-bit.\no replace 2 uses of CONFIG_64BIT with __LP64__. bitops.h used both.\n  I think header files that might go to user space should use\n  something userspace will know about (__LP64__).\n\nSigned-off-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\n\nMove SHIFT_PER_LONG to standard location for BITS_PER_LONG (asm/types.h)\nand ditch the second definition of BITS_PER_LONG in bitops.h\n\nSigned-off-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\n\nSigned-off-by: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\n"
    },
    {
      "commit": "fb1c8f93d869b34cacb8b8932e2b83d96a19d720",
      "tree": "a006d078aa02e421a7dc4793c335308204859d36",
      "parents": [
        "4327edf6b8a7ac7dce144313947995538842d8fd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 10 00:25:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:21 2005 -0700"
      },
      "message": "[PATCH] spinlock consolidation\n\nThis patch (written by me and also containing many suggestions of Arjan van\nde Ven) does a major cleanup of the spinlock code.  It does the following\nthings:\n\n - consolidates and enhances the spinlock/rwlock debugging code\n\n - simplifies the asm/spinlock.h files\n\n - encapsulates the raw spinlock type and moves generic spinlock\n   features (such as -\u003ebreak_lock) into the generic code.\n\n - cleans up the spinlock code hierarchy to get rid of the spaghetti.\n\nMost notably there\u0027s now only a single variant of the debugging code,\nlocated in lib/spinlock_debug.c.  (previously we had one SMP debugging\nvariant per architecture, plus a separate generic one for UP builds)\n\nAlso, i\u0027ve enhanced the rwlock debugging facility, it will now track\nwrite-owners.  There is new spinlock-owner/CPU-tracking on SMP builds too.\nAll locks have lockup detection now, which will work for both soft and hard\nspin/rwlock lockups.\n\nThe arch-level include files now only contain the minimally necessary\nsubset of the spinlock code - all the rest that can be generalized now\nlives in the generic headers:\n\n include/asm-i386/spinlock_types.h       |   16\n include/asm-x86_64/spinlock_types.h     |   16\n\nI have also split up the various spinlock variants into separate files,\nmaking it easier to see which does what. The new layout is:\n\n   SMP                         |  UP\n   ----------------------------|-----------------------------------\n   asm/spinlock_types_smp.h    |  linux/spinlock_types_up.h\n   linux/spinlock_types.h      |  linux/spinlock_types.h\n   asm/spinlock_smp.h          |  linux/spinlock_up.h\n   linux/spinlock_api_smp.h    |  linux/spinlock_api_up.h\n   linux/spinlock.h            |  linux/spinlock.h\n\n/*\n * here\u0027s the role of the various spinlock/rwlock related include files:\n *\n * on SMP builds:\n *\n *  asm/spinlock_types.h: contains the raw_spinlock_t/raw_rwlock_t and the\n *                        initializers\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  asm/spinlock.h:       contains the __raw_spin_*()/etc. lowlevel\n *                        implementations, mostly inline assembly code\n *\n *   (also included on UP-debug builds:)\n *\n *  linux/spinlock_api_smp.h:\n *                        contains the prototypes for the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n *\n * on UP builds:\n *\n *  linux/spinlock_type_up.h:\n *                        contains the generic, simplified UP spinlock type.\n *                        (which is an empty structure on non-debug builds)\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  linux/spinlock_up.h:\n *                        contains the __raw_spin_*()/etc. version of UP\n *                        builds. (which are NOPs on non-debug, non-preempt\n *                        builds)\n *\n *   (included on UP-non-debug builds:)\n *\n *  linux/spinlock_api_up.h:\n *                        builds the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n */\n\nAll SMP and UP architectures are converted by this patch.\n\narm, i386, ia64, ppc, ppc64, s390/s390x, x64 was build-tested via\ncrosscompilers.  m32r, mips, sh, sparc, have not been tested yet, but should\nbe mostly fine.\n\nFrom: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\n\n  Booted and lightly tested on a500-44 (64-bit, SMP kernel, dual CPU).\n  Builds 32-bit SMP kernel (not booted or tested).  I did not try to build\n  non-SMP kernels.  That should be trivial to fix up later if necessary.\n\n  I converted bit ops atomic_hash lock to raw_spinlock_t.  Doing so avoids\n  some ugly nesting of linux/*.h and asm/*.h files.  Those particular locks\n  are well tested and contained entirely inside arch specific code.  I do NOT\n  expect any new issues to arise with them.\n\n If someone does ever need to use debug/metrics with them, then they will\n  need to unravel this hairball between spinlocks, atomic ops, and bit ops\n  that exist only because parisc has exactly one atomic instruction: LDCW\n  (load and clear word).\n\nFrom: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\n\n   ia64 fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\nSigned-off-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nSigned-off-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Mikael Pettersson \u003cmikpe@csd.uu.se\u003e\nSigned-off-by: Benoit Boissinot \u003cbenoit.boissinot@ens-lyon.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
