)]}'
{
  "commit": "3e157e2b0101b36f001a4ffb02816376008cdb82",
  "tree": "205c8f774f9d043d3beabad581fdfa90ce67b0f5",
  "parents": [
    "a9d6eb1781e108fc4bf4494d7d11662ecaeaed3c"
  ],
  "author": {
    "name": "Fuad Tabba",
    "email": "fuad.tabba@linux.dev",
    "time": "Fri Jul 03 02:37:05 2026 +0100"
  },
  "committer": {
    "name": "Fuad Tabba",
    "email": "fuad.tabba@linux.dev",
    "time": "Tue Aug 11 15:38:16 2026 +0100"
  },
  "message": "KVM: arm64: Type-check hypercall arguments at the caller\n\nkvm_call_hyp_nvhe() reduces its target to an SMCCC function number, so\nthe compiler never sees a callable: arguments that are wrong in number,\ntype or order are silently marshalled into registers. The kvm_call_hyp()\nwrappers only catch this on the VHE branch, and the pKVM-only hypercalls\nhave no such branch.\n\nDeclare each hypercall\u0027s signature once in kvm_hcall.h and generate a\ntyped stub from it, in the mold of the syscall wrappers. Make\nkvm_call_hyp_nvhe() resolve to the stub so every caller is checked\nagainst the declared signature; a stale or mistyped call now fails to\ncompile. The stubs inline to the same SMCCC call the untyped macro used\nto make: the compiled callers are unchanged, apart from hypercall\nreturns now being tested at their declared width.\n\nThe stage-2 protection arguments are declared u64 rather than\nenum kvm_pgtable_prot, as kvm_pgtable.h includes linux/kvm_host.h and\nthe enum cannot be completed here.\n\nAssisted-by: Antigravity:gemini-3.1-pro\nReviewed-by: Marc Zyngier \u003cmaz@kernel.org\u003e\nSigned-off-by: Fuad Tabba \u003cfuad.tabba@linux.dev\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d925b2c28a3d825e87e1a99e3e11d2a08c44bb3d",
      "old_mode": 33188,
      "old_path": "arch/arm64/include/asm/kvm_hcall.h",
      "new_id": "c2efcb89e6e70b72e7e38b812ff1e319d8145576",
      "new_mode": 33188,
      "new_path": "arch/arm64/include/asm/kvm_hcall.h"
    },
    {
      "type": "modify",
      "old_id": "2411b4c32932cc8499e3fc89c682502473373b52",
      "old_mode": 33188,
      "old_path": "arch/arm64/kvm/hyp_trace.c",
      "new_id": "7fe0e8feb7d7c9f42faee92653eb2ed21ba87d16",
      "new_mode": 33188,
      "new_path": "arch/arm64/kvm/hyp_trace.c"
    }
  ]
}
