)]}'
{
  "commit": "9e44af790f8bf8c3aa8a3101fd4f9bca2e932baa",
  "tree": "a83337632a96be5da2078bebbb24c0cbb6d82b6a",
  "parents": [
    "fe8133dc07e613587f8e667bce769edce8490f2a"
  ],
  "author": {
    "name": "Keith Packard",
    "email": "keithp@keithp.com",
    "time": "Thu Oct 16 21:18:27 2008 -0700"
  },
  "committer": {
    "name": "Dave Airlie",
    "email": "airlied@redhat.com",
    "time": "Thu Oct 23 13:45:56 2008 +1000"
  },
  "message": "drm/i915: hold dev-\u003estruct_mutex and DRM lock during vblank ring operations\n\nTo synchronize clip lists with the X server, the DRM lock must be held while\nlooking at drawable clip lists. To synchronize with other ring access, the\nring mutex must be held while inserting commands into the ring.  Failure to\ndo the first resulted in easy visual corruption when moving windows, and the\nsecond could have corrupted the ring with DRI2.\n\nGrabbing the DRM lock involves using the DRM tasklet mechanism, grabbing the\nring mutex means potentially sleeping. Deal with both of these by always\nrunning the tasklet from a work handler.\n\nAlso, protect from clip list changes since the vblank request was queued by\nmaking sure the window has at least one rectangle while looking inside,\npreventing oopses .\n\nSigned-off-by: Keith Packard \u003ckeithp@keithp.com\u003e\nSigned-off-by: Eric Anholt \u003ceric@anholt.net\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a4caf95485d7c6826482393ecf803d408b7047dd",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/drm_lock.c",
      "new_id": "888159e03d268c77b4102e3d6d1e430a2f682bf6",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/drm_lock.c"
    },
    {
      "type": "modify",
      "old_id": "eae4ed3956e0b456f3a58e0aa29c9dbb4ee3d6f1",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/i915/i915_drv.h",
      "new_id": "f20ffe17df71d36cae69df56536d329be4c7ea27",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/i915/i915_drv.h"
    },
    {
      "type": "modify",
      "old_id": "9ac73dd1b422db554758061d7d8786403bf64b9e",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/i915/i915_gem.c",
      "new_id": "92550883d191bc5780f0cfb0cf43e0ba13cbccba",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/i915/i915_gem.c"
    },
    {
      "type": "modify",
      "old_id": "ca55c40353a5cce744f440fcf1bdad3e3009190e",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/i915/i915_irq.c",
      "new_id": "86237569443152004c4e9aeb4d0ed50f5013f4d8",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/i915/i915_irq.c"
    }
  ]
}
