)]}'
{
  "commit": "03e4e0a9e02cf703da331ff6cfd57d0be9bf5692",
  "tree": "dc27892dd1af53bf9d6f5f1925762e7b8286f992",
  "parents": [
    "70c5f93669249886b151812076509f30569aff80"
  ],
  "author": {
    "name": "Chris Wilson",
    "email": "chris@chris-wilson.co.uk",
    "time": "Tue Nov 14 16:27:19 2017 +0000"
  },
  "committer": {
    "name": "Sumit Semwal",
    "email": "sumit.semwal@linaro.org",
    "time": "Tue Nov 21 22:37:05 2017 +0530"
  },
  "message": "dma-buf/fence: Fix lock inversion within dma-fence-array\n\nAges ago Rob Clark noted,\n\n\"Currently with fence-array, we have a potential deadlock situation.  If\nwe fence_add_callback() on an array-fence, the array-fence\u0027s lock is\nacquired first, and in it\u0027s -\u003eenable_signaling() callback, it will install\ncbs on it\u0027s array-member fences, so the array-member\u0027s lock is acquired\nsecond.\n\nBut in the signal path, the array-member\u0027s lock is acquired first, and\nthe array-fence\u0027s lock acquired second.\"\n\nRob proposed either extensive changes to dma-fence to unnest the\nfence-array signaling, or to defer the signaling onto a workqueue. This\nis a more refined version of the later, that should keep the latency\nof the fence signaling to a minimum by using an irq-work, which is\nexecuted asap.\n\nReported-by: Rob Clark \u003crobdclark@gmail.com\u003e\nSuggested-by: Rob Clark \u003crobdclark@gmail.com\u003e\nReferences: 1476635975-21981-1-git-send-email-robdclark@gmail.com\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nCc: Rob Clark \u003crobdclark@gmail.com\u003e\nCc: Gustavo Padovan \u003cgustavo.padovan@collabora.co.uk\u003e\nCc: Sumit Semwal \u003csumit.semwal@linaro.org\u003e\nCc: Christian König \u003cchristian.koenig@amd.com\u003e\nReviewed-by: Christian König \u003cchristian.koenig@amd.com\u003e\nSigned-off-by: Sumit Semwal \u003csumit.semwal@linaro.org\u003e\nLink: https://patchwork.freedesktop.org/patch/msgid/20171114162719.30958-1-chris@chris-wilson.co.uk\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1a5f6a157a57d7bf13b85ff63d5ed33e2198aeba",
      "old_mode": 33188,
      "old_path": "drivers/base/Kconfig",
      "new_id": "62b0de06836e1e2eba9b098fc5a40a9de5d5b432",
      "new_mode": 33188,
      "new_path": "drivers/base/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "0350829ba62e76d8a2194d9d71e87fc04ac9d156",
      "old_mode": 33188,
      "old_path": "drivers/dma-buf/dma-fence-array.c",
      "new_id": "dd1edfb27b61a3a24f64f1372f904467390e8fe4",
      "new_mode": 33188,
      "new_path": "drivers/dma-buf/dma-fence-array.c"
    },
    {
      "type": "modify",
      "old_id": "332a5420243c44f1b9e8c4d5bbf20d64637b1950",
      "old_mode": 33188,
      "old_path": "include/linux/dma-fence-array.h",
      "new_id": "bc8940ca280dc74c36c706dc6d7c831a39381cc4",
      "new_mode": 33188,
      "new_path": "include/linux/dma-fence-array.h"
    }
  ]
}
