)]}'
{
  "commit": "0225fd5e0a6a32af7af0aefac45c8ebf19dc5183",
  "tree": "8b5e04a3ff18733f18b68a7157e1884ab9eec0b9",
  "parents": [
    "958e8e14fd24c0aa1fe6a6beb2b985cb638577d6"
  ],
  "author": {
    "name": "Marc Zyngier",
    "email": "maz@kernel.org",
    "time": "Wed Apr 29 11:21:55 2020 +0100"
  },
  "committer": {
    "name": "Marc Zyngier",
    "email": "maz@kernel.org",
    "time": "Fri May 01 09:51:08 2020 +0100"
  },
  "message": "KVM: arm64: Fix 32bit PC wrap-around\n\nIn the unlikely event that a 32bit vcpu traps into the hypervisor\non an instruction that is located right at the end of the 32bit\nrange, the emulation of that instruction is going to increment\nPC past the 32bit range. This isn\u0027t great, as userspace can then\nobserve this value and get a bit confused.\n\nConversly, userspace can do things like (in the context of a 64bit\nguest that is capable of 32bit EL0) setting PSTATE to AArch64-EL0,\nset PC to a 64bit value, change PSTATE to AArch32-USR, and observe\nthat PC hasn\u0027t been truncated. More confusion.\n\nFix both by:\n- truncating PC increments for 32bit guests\n- sanitizing all 32bit regs every time a core reg is changed by\n  userspace, and that PSTATE indicates a 32bit mode.\n\nCc: stable@vger.kernel.org\nAcked-by: Will Deacon \u003cwill@kernel.org\u003e\nSigned-off-by: Marc Zyngier \u003cmaz@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "23ebe51410f06a3435915bddaa98b688209d0819",
      "old_mode": 33188,
      "old_path": "arch/arm64/kvm/guest.c",
      "new_id": "50a279d3ddd783ad751fefa4790b26aeb4adcfdb",
      "new_mode": 33188,
      "new_path": "arch/arm64/kvm/guest.c"
    },
    {
      "type": "modify",
      "old_id": "d31f267961e75a956174964e445338a74abc757b",
      "old_mode": 33188,
      "old_path": "virt/kvm/arm/hyp/aarch32.c",
      "new_id": "25c0e47d57cbe314ff9b993c4456c0d8fd65a0d1",
      "new_mode": 33188,
      "new_path": "virt/kvm/arm/hyp/aarch32.c"
    }
  ]
}
