)]}'
{
  "commit": "6aa0b9dec5d6dde26ea17b0b5be8fccfe19df3c9",
  "tree": "622e57dd0373a86b98f4976096fa6f670540dab6",
  "parents": [
    "b37fa16e78d6f9790462b3181602a26b5af36260"
  ],
  "author": {
    "name": "Xiao Guangrong",
    "email": "xiaoguangrong@cn.fujitsu.com",
    "time": "Wed Jun 30 16:02:45 2010 +0800"
  },
  "committer": {
    "name": "Avi Kivity",
    "email": "avi@redhat.com",
    "time": "Fri Jul 23 09:07:04 2010 +0300"
  },
  "message": "KVM: MMU: fix conflict access permissions in direct sp\n\nIn no-direct mapping, we mark sp is \u0027direct\u0027 when we mapping the\nguest\u0027s larger page, but its access is encoded form upper page-struct\nentire not include the last mapping, it will cause access conflict.\n\nFor example, have this mapping:\n        [W]\n      / PDE1 -\u003e |---|\n  P[W]          |   | LPA\n      \\ PDE2 -\u003e |---|\n        [R]\n\nP have two children, PDE1 and PDE2, both PDE1 and PDE2 mapping the\nsame lage page(LPA). The P\u0027s access is WR, PDE1\u0027s access is WR,\nPDE2\u0027s access is RO(just consider read-write permissions here)\n\nWhen guest access PDE1, we will create a direct sp for LPA, the sp\u0027s\naccess is from P, is W, then we will mark the ptes is W in this sp.\n\nThen, guest access PDE2, we will find LPA\u0027s shadow page, is the same as\nPDE\u0027s, and mark the ptes is RO.\n\nSo, if guest access PDE1, the incorrect #PF is occured.\n\nFixed by encode the last mapping access into direct shadow page\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "89d66ca4d87cb2982ae48c5877580e733ab0cce8",
      "old_mode": 33188,
      "old_path": "arch/x86/kvm/paging_tmpl.h",
      "new_id": "2331bdc2b549569e56f7dcec275c72bf06275928",
      "new_mode": 33188,
      "new_path": "arch/x86/kvm/paging_tmpl.h"
    }
  ]
}
