)]}'
{
  "commit": "719d9f5fcbbf8a18dd4855c12ef54f256b101a5f",
  "tree": "bb1d6a0b5ca370625825feeb765870495b875be2",
  "parents": [
    "8fbb36d607fcc6154ae0ee64500981efc971a523"
  ],
  "author": {
    "name": "David Howells",
    "email": "dhowells@redhat.com",
    "time": "Tue May 17 23:08:57 2016 +0100"
  },
  "committer": {
    "name": "David Howells",
    "email": "dhowells@redhat.com",
    "time": "Wed May 18 13:30:50 2016 +0100"
  },
  "message": "x86: Improve spinlocks using ISO C++11 intrinsic atomics\n\nMake some improvements to the x86 spinlock implementation using the ISO\nC++11 intrinsic atomic wrappers.  Note that since the spinlocks use\ncmpxchg(), xadd() and __add(), it already makes some use of this.\n\n (1) Use acquire variants in spin_lock() and spin_trylock() paths.  On x86\n     this shouldn\u0027t actually make a difference.\n\n (2) Use try_cmpxchg*() rather than cmpxchg*().  This should produce\n     slightly more efficient code as a comparison can be discarded in\n     favour of using the value in the Z flag.\n\nNote as mentioned before, the LOCK prefix is currently mandatory, but a gcc\nticket is open to try and get these listed for suppression.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "eaba0807603009e6ed1612a7049bb35bafeaf31e",
      "old_mode": 33188,
      "old_path": "arch/x86/include/asm/qspinlock.h",
      "new_id": "b56b8c2a9ed21eda65795c93c4defb818c19353f",
      "new_mode": 33188,
      "new_path": "arch/x86/include/asm/qspinlock.h"
    },
    {
      "type": "modify",
      "old_id": "be0a05913b9105b62122afbbbef99c6146b2dbf6",
      "old_mode": 33188,
      "old_path": "arch/x86/include/asm/spinlock.h",
      "new_id": "1cbddef2b3f30a00966b192a627947ce6fe2b386",
      "new_mode": 33188,
      "new_path": "arch/x86/include/asm/spinlock.h"
    }
  ]
}
