)]}'
{
  "log": [
    {
      "commit": "97577896f6b9c056fa0a5e9f6a608110cb3dcd33",
      "tree": "a77e4063575d59e946211a31019719230fb68da4",
      "parents": [
        "6e6104fe085026e6ef82cc5cc303d6c8ceb7e411"
      ],
      "author": {
        "name": "Luca Barbieri",
        "email": "luca@luca-barbieri.com",
        "time": "Mon Mar 01 19:55:47 2010 +0100"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Mon Mar 01 11:38:46 2010 -0800"
      },
      "message": "lib: Fix atomic64_add_unless return value convention\n\natomic64_add_unless must return 1 if it perfomed the add and 0 otherwise.\nThe generic implementation did the opposite thing.\n\nReported-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nConfirmed-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Luca Barbieri \u003cluca@luca-barbieri.com\u003e\nLKML-Reference: \u003c1267469749-11878-4-git-send-email-luca@luca-barbieri.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "3fc7b4b220c7e830a5b3ce0ea5f85a635e0c50f0",
      "tree": "f30750093bda1a0bd233b025f30891bf4010926d",
      "parents": [
        "e4c6f8bed01f9f9a5c607bd689bf67e7b8a36bd8"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Wed Jul 29 15:04:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 19:10:35 2009 -0700"
      },
      "message": "lib: export generic atomic64_t functions\n\nThe generic atomic64_t implementation in lib/ did not export the functions\nit defined, which means that modules that use atomic64_t would not link on\nplatforms (such as 32-bit powerpc).  For example, trying to build a kernel\nwith CONFIG_NET_RDS on such a platform would fail with:\n\n    ERROR: \"atomic64_read\" [net/rds/rds.ko] undefined!\n    ERROR: \"atomic64_set\" [net/rds/rds.ko] undefined!\n\nFix this by exporting the atomic64_t functions to modules.  (I export the\nentire API even if it\u0027s not all currently used by in-tree modules to avoid\nhaving to continue fixing this in dribs and drabs)\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09d4e0edd4614e787393acc582ac701c6ec3565b",
      "tree": "77f3b85e0f59a168ac78639e510ebcbd3791b3d2",
      "parents": [
        "4c75f84f2c781beb230031234ed961d28771a764"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Fri Jun 12 21:10:05 2009 +0000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Jun 15 13:27:38 2009 +1000"
      },
      "message": "lib: Provide generic atomic64_t implementation\n\nMany processor architectures have no 64-bit atomic instructions, but\nwe need atomic64_t in order to support the perf_counter subsystem.\n\nThis adds an implementation of 64-bit atomic operations using hashed\nspinlocks to provide atomicity.  For each atomic operation, the address\nof the atomic64_t variable is hashed to an index into an array of 16\nspinlocks.  That spinlock is taken (with interrupts disabled) around the\noperation, which can then be coded non-atomically within the lock.\n\nOn UP, all the spinlock manipulation goes away and we simply disable\ninterrupts around each operation.  In fact gcc eliminates the whole\natomic64_lock variable as well.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    }
  ]
}
