)]}'
{
  "commit": "9d664c0aec3bfdb77fcf7de61cfe1febbecdd389",
  "tree": "58c96472de25e0ebcbf2f47b7a53d262edcb3e94",
  "parents": [
    "35a2897c2a306cca344ca5c0b43416707018f434"
  ],
  "author": {
    "name": "Peter Zijlstra",
    "email": "peterz@infradead.org",
    "time": "Fri Jun 09 13:05:06 2017 +0200"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@kernel.org",
    "time": "Thu Aug 10 12:28:54 2017 +0200"
  },
  "message": "locking/atomic: Fix atomic_set_release() for \u0027funny\u0027 architectures\n\nThose architectures that have a special atomic_set implementation also\nneed a special atomic_set_release(), because for the very same reason\nWRITE_ONCE() is broken for them, smp_store_release() is too.\n\nThe vast majority is architectures that have spinlock hash based atomic\nimplementation except hexagon which seems to have a hardware \u0027feature\u0027.\n\nThe spinlock based atomics should be SC, that is, none of them appear to\nplace extra barriers in atomic_cmpxchg() or any of the other SC atomic\nprimitives and therefore seem to rely on their spinlock implementation\nbeing SC (I did not fully validate all that).\n\nTherefore, the normal atomic_set() is SC and can be used at\natomic_set_release().\n\nSigned-off-by: Peter Zijlstra (Intel) \u003cpeterz@infradead.org\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@mellanox.com\u003e [for tile]\nCc: Boqun Feng \u003cboqun.feng@gmail.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Paul McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: davem@davemloft.net\nCc: james.hogan@imgtec.com\nCc: jejb@parisc-linux.org\nCc: rkuo@codeaurora.org\nCc: vgupta@synopsys.com\nLink: http://lkml.kernel.org/r/20170609110506.yod47flaav3wgoj5@hirez.programming.kicks-ass.net\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "54b54da6384c197a93848e05ef292c224f5c0f91",
      "old_mode": 33188,
      "old_path": "arch/arc/include/asm/atomic.h",
      "new_id": "11859287c52af55df317e7a6d3ab9403706bd172",
      "new_mode": 33188,
      "new_path": "arch/arc/include/asm/atomic.h"
    },
    {
      "type": "modify",
      "old_id": "a62ba368b27d1ddf6f750efd1dcaa2b51419d1d8",
      "old_mode": 33188,
      "old_path": "arch/hexagon/include/asm/atomic.h",
      "new_id": "fb3dfb2a667ee11626cf9c999e5b303fcc9b9c83",
      "new_mode": 33188,
      "new_path": "arch/hexagon/include/asm/atomic.h"
    },
    {
      "type": "modify",
      "old_id": "6c1380a8a0d4a437dfb2a4146deada934bcdb354",
      "old_mode": 33188,
      "old_path": "arch/metag/include/asm/atomic_lock1.h",
      "new_id": "eee779f26cc4c633b9e5c47e2b156e6f4f2481ce",
      "new_mode": 33188,
      "new_path": "arch/metag/include/asm/atomic_lock1.h"
    },
    {
      "type": "modify",
      "old_id": "5394b9c5f914fdc4339224a3950e9d1c4ccd6bbb",
      "old_mode": 33188,
      "old_path": "arch/parisc/include/asm/atomic.h",
      "new_id": "17b98a87e5e26774298f955a3da234dd2742e2a4",
      "new_mode": 33188,
      "new_path": "arch/parisc/include/asm/atomic.h"
    },
    {
      "type": "modify",
      "old_id": "ee3f11c43cdaa2ef6ab6fe444130e8dd2a8a5541",
      "old_mode": 33188,
      "old_path": "arch/sparc/include/asm/atomic_32.h",
      "new_id": "7643e979e3338c8f23affa81269379f3d77fba52",
      "new_mode": 33188,
      "new_path": "arch/sparc/include/asm/atomic_32.h"
    },
    {
      "type": "modify",
      "old_id": "a93774255136d4c250065407d2c295ac7f2088e7",
      "old_mode": 33188,
      "old_path": "arch/tile/include/asm/atomic_32.h",
      "new_id": "53a423e7cb92e445d54b5f10f546b410683cf367",
      "new_mode": 33188,
      "new_path": "arch/tile/include/asm/atomic_32.h"
    },
    {
      "type": "modify",
      "old_id": "dad68bf46c77012e144857898093b99dabea1cd7",
      "old_mode": 33188,
      "old_path": "include/asm-generic/atomic64.h",
      "new_id": "8d28eb010d0d11a2f35f769f7ef51cd753a42a94",
      "new_mode": 33188,
      "new_path": "include/asm-generic/atomic64.h"
    }
  ]
}
