)]}'
{
  "commit": "3bbf572345c65813f86a8fc434ea1b23beb08e16",
  "tree": "4f8406def84b0edf4787aef5ffedaf4529c228e9",
  "parents": [
    "11e66a15a084cb0820dba13f4ea3b15b0512fd39"
  ],
  "author": {
    "name": "Paolo Bonzini",
    "email": "pbonzini@redhat.com",
    "time": "Wed Jun 03 14:21:20 2015 +0200"
  },
  "committer": {
    "name": "Paolo Bonzini",
    "email": "pbonzini@redhat.com",
    "time": "Fri Jun 05 19:45:13 2015 +0200"
  },
  "message": "atomics: add explicit compiler fence in __atomic memory barriers\n\n__atomic_thread_fence does not include a compiler barrier; in the\nC++11 memory model, fences take effect in combination with other\natomic operations.  GCC implements this by making __atomic_load and\n__atomic_store access memory as if the pointer was volatile, and\nleaves no trace whatsoever of acquire and release fences in the\ncompiler\u0027s intermediate representation.\n\nIn QEMU, we want memory barriers to act on all memory, but at the same\ntime we would like to use __atomic_thread_fence for portability reasons.\nAdd compiler barriers manually around the __atomic_thread_fence.\n\nMessage-Id: \u003c1433334080-14912-1-git-send-email-pbonzini@redhat.com\u003e\nReviewed-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "98e05ca875e654f6e10d4e52a1f586ab711eb2ca",
      "old_mode": 33188,
      "old_path": "include/qemu/atomic.h",
      "new_id": "bd2c075343b564e4c2525c4a11d488ed19463d23",
      "new_mode": 33188,
      "new_path": "include/qemu/atomic.h"
    }
  ]
}
