)]}'
{
  "commit": "8bb93c6f99a42c2e0943bc904b283cd622d302c5",
  "tree": "d362ea24ea051fe4264f72180fcd18ebc8c2d567",
  "parents": [
    "272d7dee5951f926fad1911f2f072e5915cdcba0"
  ],
  "author": {
    "name": "Alex Bennée",
    "email": "alex.bennee@linaro.org",
    "time": "Wed Mar 15 14:48:25 2017 +0000"
  },
  "committer": {
    "name": "Gerd Hoffmann",
    "email": "kraxel@redhat.com",
    "time": "Fri Mar 17 10:17:21 2017 +0100"
  },
  "message": "ui/console: ensure graphic updates don\u0027t race with TCG vCPUs\n\nCommit 8d04fb55..\n\n  tcg: drop global lock during TCG code execution\n\n..broke the assumption that updates to the GUI couldn\u0027t happen at the\nsame time as TCG vCPUs where running. As a result the TCG vCPU could\nstill be updating a directly mapped frame-buffer while the display\nside was updating. This would cause artefacts to appear when the\nupdate code assumed that memory block hadn\u0027t changed.\n\nThe simplest solution is to ensure the two things can\u0027t happen at the\nsame time like the old BQL locking scheme. Here we use the solution\nintroduced for MTTCG and schedule the update as async_safe_work when\nwe know no vCPUs can be running.\n\nReported-by: Mark Cave-Ayland \u003cmark.cave-ayland@ilande.co.uk\u003e\nSigned-off-by: Alex Bennée \u003calex.bennee@linaro.org\u003e\nMessage-id: 20170315144825.3108-1-alex.bennee@linaro.org\nCc: BALATON Zoltan \u003cbalaton@eik.bme.hu\u003e\nCc: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\nCc: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nSigned-off-by: Alex Bennée \u003calex.bennee@linaro.org\u003e\n\n[ kraxel: updated comment clarifying the display adapters are buggy\n          and this is a temporary workaround ]\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4c70d8bfda90884b2ea4dfa70e5915795672e9de",
      "old_mode": 33188,
      "old_path": "ui/console.c",
      "new_id": "937c95084072dccb6f8b99782ad4a4ab3458d033",
      "new_mode": 33188,
      "new_path": "ui/console.c"
    }
  ]
}
