)]}'
{
  "commit": "6e5aa7efb27aec7e55b6463fa2c8db594c4226fa",
  "tree": "060a955e711ac224136157a5410e88dcdab965af",
  "parents": [
    "b3369c1fb410fddeb38a404316c861395f6d6ae8"
  ],
  "author": {
    "name": "Rusty Russell",
    "email": "rusty@rustcorp.com.au",
    "time": "Mon Feb 04 23:50:03 2008 -0500"
  },
  "committer": {
    "name": "Rusty Russell",
    "email": "rusty@rustcorp.com.au",
    "time": "Mon Feb 04 23:50:03 2008 +1100"
  },
  "message": "virtio: reset function\n\nA reset function solves three problems:\n\n1) It allows us to renegotiate features, eg. if we want to upgrade a\n   guest driver without rebooting the guest.\n\n2) It gives us a clean way of shutting down virtqueues: after a reset,\n   we know that the buffers won\u0027t be used by the host, and\n\n3) It helps the guest recover from messed-up drivers.\n\nSo we remove the -\u003eshutdown hook, and the only way we now remove\nfeature bits is via reset.\n\nWe leave it to the driver to do the reset before it deletes queues:\nthe balloon driver, for example, needs to chat to the host in its\nremove function.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8ff2d8bc690a7feac35effca2593c354891ecb78",
      "old_mode": 33188,
      "old_path": "Documentation/lguest/lguest.c",
      "new_id": "0f23d67f958ff5b6ee96a0248fdd2c9b9ab65586",
      "new_mode": 33188,
      "new_path": "Documentation/lguest/lguest.c"
    },
    {
      "type": "modify",
      "old_id": "54a8017ad487e99e7025314721a6cbaf007f85f0",
      "old_mode": 33188,
      "old_path": "drivers/block/virtio_blk.c",
      "new_id": "6143337527e729e9441ff84aa4c1e94a3090b407",
      "new_mode": 33188,
      "new_path": "drivers/block/virtio_blk.c"
    },
    {
      "type": "modify",
      "old_id": "ced5b44cebce80ea3e0aad899cbabe075c374ebc",
      "old_mode": 33188,
      "old_path": "drivers/lguest/lguest_device.c",
      "new_id": "84f85e23cca7a65a86b3ffa3647953373c5339b3",
      "new_mode": 33188,
      "new_path": "drivers/lguest/lguest_device.c"
    },
    {
      "type": "modify",
      "old_id": "ec43284ffd13ad8945c83ccdbf60d26789b780f4",
      "old_mode": 33188,
      "old_path": "drivers/net/virtio_net.c",
      "new_id": "6e0a9fefe6cb7fb126b6d37256be7906bf470e75",
      "new_mode": 33188,
      "new_path": "drivers/net/virtio_net.c"
    },
    {
      "type": "modify",
      "old_id": "303cb6f90108894372eeba77053fc4a55942e47e",
      "old_mode": 33188,
      "old_path": "drivers/virtio/virtio.c",
      "new_id": "7dddb1860936a1c35066cd08596d67f3d46501f8",
      "new_mode": 33188,
      "new_path": "drivers/virtio/virtio.c"
    },
    {
      "type": "modify",
      "old_id": "dbe1d35db32af0db84ddf6b0fffa8795c768b428",
      "old_mode": 33188,
      "old_path": "drivers/virtio/virtio_ring.c",
      "new_id": "9849babd6b37bdd6df3631d01a2a00caaa05fe74",
      "new_mode": 33188,
      "new_path": "drivers/virtio/virtio_ring.c"
    },
    {
      "type": "modify",
      "old_id": "78408d5237c166950d9298eb83029fca9363342f",
      "old_mode": 33188,
      "old_path": "include/linux/virtio.h",
      "new_id": "260d1fcf29a4222c011ab39176b1e2e4d46a98a3",
      "new_mode": 33188,
      "new_path": "include/linux/virtio.h"
    },
    {
      "type": "modify",
      "old_id": "81f828ac8f4774cdac5784da2a775809519cbd5d",
      "old_mode": 33188,
      "old_path": "include/linux/virtio_config.h",
      "new_id": "d581b2914b342cbbe83744bc15762fb8718a81a3",
      "new_mode": 33188,
      "new_path": "include/linux/virtio_config.h"
    }
  ]
}
