)]}'
{
  "commit": "c2f38f75fc89ebd6c0be5856509329390102d8ba",
  "tree": "e22ad1145006fda17a0a54f3b33dd6aacc368fc2",
  "parents": [
    "964cea817196ef5e0dcb5c4888b3cef12de76f8f"
  ],
  "author": {
    "name": "Rick Edgecombe",
    "email": "rick.p.edgecombe@intel.com",
    "time": "Wed Jun 19 15:36:05 2024 -0700"
  },
  "committer": {
    "name": "Paolo Bonzini",
    "email": "pbonzini@redhat.com",
    "time": "Thu Jun 20 18:43:31 2024 -0400"
  },
  "message": "KVM: x86/tdp_mmu: Take a GFN in kvm_tdp_mmu_fast_pf_get_last_sptep()\n\nPass fault-\u003egfn into kvm_tdp_mmu_fast_pf_get_last_sptep(), instead of\npassing fault-\u003eaddr and then converting it to a GFN.\n\nFuture changes will make fault-\u003eaddr and fault-\u003egfn differ when running\nTDX guests. The GFN will be conceptually the same as it is for normal VMs,\nbut fault-\u003eaddr may contain a TDX specific bit that differentiates between\n\"shared\" and \"private\" memory. This bit will be used to direct faults to\nbe handled on different roots, either the normal \"direct\" root or a new\ntype of root that handles private memory. The TDP iterators will process\nthe traditional GFN concept and apply the required TDX specifics depending\non the root type. For this reason, it needs to operate on regular GFN and\nnot the addr, which may contain these special TDX specific bits.\n\nToday kvm_tdp_mmu_fast_pf_get_last_sptep() takes fault-\u003eaddr and then\nimmediately converts it to a GFN with a bit shift. However, this would\nunfortunately retain the TDX specific bits in what is supposed to be a\ntraditional GFN. Excluding TDX\u0027s needs, it is also is unnecessary to pass\nfault-\u003eaddr and convert it to a GFN when the GFN is already on hand.\n\nSo instead just pass the GFN into kvm_tdp_mmu_fast_pf_get_last_sptep() and\nuse it directly.\n\nSigned-off-by: Rick Edgecombe \u003crick.p.edgecombe@intel.com\u003e\nMessage-ID: \u003c20240619223614.290657-9-rick.p.edgecombe@intel.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "470d14b2c3d9d365dee36a594c390c3142219e67",
      "old_mode": 33188,
      "old_path": "arch/x86/kvm/mmu/mmu.c",
      "new_id": "8b64f31e13be5ef27c5d010a7cd31ca068379e5f",
      "new_mode": 33188,
      "new_path": "arch/x86/kvm/mmu/mmu.c"
    },
    {
      "type": "modify",
      "old_id": "d57e0dae4065dfb8041bec6755c73196bd7c21d1",
      "old_mode": 33188,
      "old_path": "arch/x86/kvm/mmu/tdp_mmu.c",
      "new_id": "ff27e1eadd54ab62270ddd1504a22841cccb2f17",
      "new_mode": 33188,
      "new_path": "arch/x86/kvm/mmu/tdp_mmu.c"
    },
    {
      "type": "modify",
      "old_id": "58b55e61bd33e0879186fb86268911110420364b",
      "old_mode": 33188,
      "old_path": "arch/x86/kvm/mmu/tdp_mmu.h",
      "new_id": "1b74e058a81c9581202a7d32f79a46abfb04ea73",
      "new_mode": 33188,
      "new_path": "arch/x86/kvm/mmu/tdp_mmu.h"
    }
  ]
}
