)]}'
{
  "commit": "cab9ffd52e0d1e803592de138d71ea84ceac65f9",
  "tree": "34a8153175a6e74ed6192c7e9360915ec7c780c4",
  "parents": [
    "1ca6520409967c9f029e760fedeb1e3c38243d8a"
  ],
  "author": {
    "name": "Mark Brown",
    "email": "broonie@kernel.org",
    "time": "Thu Sep 12 12:39:35 2024 +0100"
  },
  "committer": {
    "name": "Fuad Tabba",
    "email": "tabba@google.com",
    "time": "Wed Oct 16 10:29:48 2024 +0100"
  },
  "message": "KVM: arm64: Constrain the host to the maximum shared SVE VL with pKVM\n\nWhen pKVM saves and restores the host floating point state on a SVE system\nit programs the vector length in ZCR_EL2.LEN to be whatever the maximum VL\nfor the PE is but uses a buffer allocated with kvm_host_sve_max_vl, the\nmaximum VL shared by all PEs in the system. This means that if we run on a\nsystem where the maximum VLs are not consistent we will overflow the buffer\non PEs which support larger VLs.\n\nSince the host will not currently attempt to make use of non-shared VLs fix\nthis by explicitly setting the EL2 VL to be the maximum shared VL when we\nsave and restore. This will enforce the limit on host VL usage. Should we\nwish to support asymmetric VLs this code will need to be updated along with\nthe required changes for the host, patches have previously been posted:\n\n  https://lore.kernel.org/r/20240730-kvm-arm64-fix-pkvm-sve-vl-v6-0-cae8a2e0bd66@kernel.org\n\nFixes: b5b9955617bc (\"KVM: arm64: Eagerly restore host fpsimd/sve state in pKVM\")\nSigned-off-by: Mark Brown \u003cbroonie@kernel.org\u003e\nTested-by: Fuad Tabba \u003ctabba@google.com\u003e\nReviewed-by: Fuad Tabba \u003ctabba@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2d29058385f145e427eead72da49792b532b508b",
      "old_mode": 33188,
      "old_path": "arch/arm64/kvm/hyp/include/hyp/switch.h",
      "new_id": "1e7b7945e2ee3a23dd10d5556e2527bfea6156e9",
      "new_mode": 33188,
      "new_path": "arch/arm64/kvm/hyp/include/hyp/switch.h"
    },
    {
      "type": "modify",
      "old_id": "81b401ef9a4eb3d3ac17cd337db27e50ab6cad96",
      "old_mode": 33188,
      "old_path": "arch/arm64/kvm/hyp/nvhe/hyp-main.c",
      "new_id": "0b0bd48c3764b6e71fc0d90d29a0d09e088c787f",
      "new_mode": 33188,
      "new_path": "arch/arm64/kvm/hyp/nvhe/hyp-main.c"
    }
  ]
}
