)]}'
{
  "commit": "ee7cd8981e15bcb365fc762afe3fc47b8242f630",
  "tree": "dd680789368f78aae6fcfb521fe55d868eff3b5f",
  "parents": [
    "3b720b8c865098c49c1570b6b5c7832bcfa6e6c2"
  ],
  "author": {
    "name": "Rusty Russell",
    "email": "rusty@rustcorp.com.au",
    "time": "Thu Jan 12 15:44:43 2012 +1030"
  },
  "committer": {
    "name": "Rusty Russell",
    "email": "rusty@rustcorp.com.au",
    "time": "Thu Jan 12 15:44:43 2012 +1030"
  },
  "message": "virtio: expose added descriptors immediately.\n\nA virtio driver does virtqueue_add_buf() multiple times before finally\ncalling virtqueue_kick(); previously we only exposed the added buffers\nin the virtqueue_kick() call.  This means we don\u0027t need a memory\nbarrier in virtqueue_add_buf(), but it reduces concurrency as the\ndevice (ie. host) can\u0027t see the buffers until the kick.\n\nIn the unusual (but now possible) case where a driver does add_buf()\nand get_buf() without doing a kick, we do need to insert one before\nour counter wraps.  Otherwise we could wrap num_added, and later on\nnot realize that we have passed the marker where we should have\nkicked.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "99dc9480f3fe5cea635465198720d13b0798e7b6",
      "old_mode": 33188,
      "old_path": "drivers/virtio/virtio_ring.c",
      "new_id": "36bb6a613728397309e64ca2031cbf96bb95cced",
      "new_mode": 33188,
      "new_path": "drivers/virtio/virtio_ring.c"
    }
  ]
}
