)]}'
{
  "commit": "38705bb57bf1cd9e3f837cf11bcdee3876786c07",
  "tree": "bf504042a8c1fae2bccae82bf0e8bdbe2dfb06a4",
  "parents": [
    "9a2a66238e3bf2b681d6321c4667a2d589c8ebed"
  ],
  "author": {
    "name": "Fam Zheng",
    "email": "famz@redhat.com",
    "time": "Wed Jul 15 11:02:27 2015 +0800"
  },
  "committer": {
    "name": "Michael S. Tsirkin",
    "email": "mst@redhat.com",
    "time": "Mon Jul 20 14:19:41 2015 +0300"
  },
  "message": "virtio-net: Flush incoming queues when DRIVER_OK is being set\n\nThis patch fixes network hang after \"stop\" then \"cont\", while network\npackets keep arriving.\n\nTested both manually (tap, host pinging guest) and with Jason\u0027s qtest\nseries (plus his \"[PATCH 2.4] socket: pass correct size in\nnet_socket_send()\" fix).\n\nAs virtio_net_set_status is called when guest driver is setting status\nbyte and when vm state is changing, it is a good opportunity to flush\nqueued packets.\n\nThis is necessary because during vm stop the backend (e.g. tap) would\nstop rx processing after .can_receive returns false, until the queue is\nexplicitly flushed or purged.\n\nThe other interesting condition in .can_receive, virtio_queue_ready(),\nis handled by virtio_net_handle_rx() when guest kicks; the 3rd condition\nis invalid queue index which doesn\u0027t need flushing.\n\nSigned-off-by: Fam Zheng \u003cfamz@redhat.com\u003e\nReviewed-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9f7e91ddce290721cb7c554aa5dd3280dc52901b",
      "old_mode": 33188,
      "old_path": "hw/net/virtio-net.c",
      "new_id": "e1d9cbf7222f6a282dff59bfdef489b9d55b59ba",
      "new_mode": 33188,
      "new_path": "hw/net/virtio-net.c"
    }
  ]
}
