)]}'
{
  "commit": "f874bf905ff2f8dcc17acbfc61e49a92a6f4d04b",
  "tree": "58087fda992c5575ee59f92627293235077b760e",
  "parents": [
    "d6be29e3fb5659102ac0e48e295d177cb67e32c5"
  ],
  "author": {
    "name": "Peter Maydell",
    "email": "peter.maydell@linaro.org",
    "time": "Sun Nov 16 19:44:21 2014 +0000"
  },
  "committer": {
    "name": "Peter Maydell",
    "email": "peter.maydell@linaro.org",
    "time": "Tue Nov 18 10:19:12 2014 +0000"
  },
  "message": "exec: Handle multipage ranges in invalidate_and_set_dirty()\n\nThe code in invalidate_and_set_dirty() needs to handle addr/length\ncombinations which cross guest physical page boundaries. This can happen,\nfor example, when disk I/O reads large blocks into guest RAM which previously\nheld code that we have cached translations for. Unfortunately we were only\nchecking the clean/dirty status of the first page in the range, and then\nwere calling a tb_invalidate function which only handles ranges that don\u0027t\ncross page boundaries. Fix the function to deal with multipage ranges.\n\nThe symptoms of this bug were that guest code would misbehave (eg segfault),\nin particular after a guest reboot but potentially any time the guest\nreused a page of its physical RAM for new code.\n\nCc: qemu-stable@nongnu.org\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nMessage-id: 1416167061-13203-1-git-send-email-peter.maydell@linaro.org\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "759055d0e38a160e3eae3ff8a25564d5d380eeaf",
      "old_mode": 33188,
      "old_path": "exec.c",
      "new_id": "f0e2bd32b65ea9e581abbd78d346d943979c8267",
      "new_mode": 33188,
      "new_path": "exec.c"
    },
    {
      "type": "modify",
      "old_id": "cf1d4c7e1fe8a2779161129c649b57f8f727a047",
      "old_mode": 33188,
      "old_path": "include/exec/ram_addr.h",
      "new_id": "8fc75cdd2b71699dcd07096b0d860d9177177f04",
      "new_mode": 33188,
      "new_path": "include/exec/ram_addr.h"
    }
  ]
}
