)]}'
{
  "commit": "5b3e5e5bf230f56309706dfc05fc0cb173cc83aa",
  "tree": "da2ed7c2553526469c802c2a7903b1595b8be3ce",
  "parents": [
    "f7ed45be3ba524e06a6d933f0517dc7ad2d06703"
  ],
  "author": {
    "name": "Christoffer Dall",
    "email": "c.dall@virtualopensystems.com",
    "time": "Sun Jan 20 18:28:09 2013 -0500"
  },
  "committer": {
    "name": "Christoffer Dall",
    "email": "c.dall@virtualopensystems.com",
    "time": "Wed Jan 23 13:29:13 2013 -0500"
  },
  "message": "KVM: ARM: Emulation framework and CP15 emulation\n\nAdds a new important function in the main KVM/ARM code called\nhandle_exit() which is called from kvm_arch_vcpu_ioctl_run() on returns\nfrom guest execution. This function examines the Hyp-Syndrome-Register\n(HSR), which contains information telling KVM what caused the exit from\nthe guest.\n\nSome of the reasons for an exit are CP15 accesses, which are\nnot allowed from the guest and this commit handles these exits by\nemulating the intended operation in software and skipping the guest\ninstruction.\n\nMinor notes about the coproc register reset:\n1) We reserve a value of 0 as an invalid cp15 offset, to catch bugs in our\n   table, at cost of 4 bytes per vcpu.\n\n2) Added comments on the table indicating how we handle each register, for\n   simplicity of understanding.\n\nReviewed-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nReviewed-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Christoffer Dall \u003cc.dall@virtualopensystems.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c69936b1fc53d60cf6cc3b1ff81fe62f7ddef18d",
      "old_mode": 33188,
      "old_path": "arch/arm/include/asm/kvm_arm.h",
      "new_id": "9a34c20d41ec702f6fc203ab35a80479100ac6a0",
      "new_mode": 33188,
      "new_path": "arch/arm/include/asm/kvm_arm.h"
    },
    {
      "type": "modify",
      "old_id": "b6d023deb4268d20a2855de40da9d89213329bc5",
      "old_mode": 33188,
      "old_path": "arch/arm/include/asm/kvm_coproc.h",
      "new_id": "bd1ace03049573225ce026f67ab5be183b7d2d19",
      "new_mode": 33188,
      "new_path": "arch/arm/include/asm/kvm_coproc.h"
    },
    {
      "type": "modify",
      "old_id": "17dad674b90f0d1cd66a8cad2a49141f172f5a6c",
      "old_mode": 33188,
      "old_path": "arch/arm/include/asm/kvm_emulate.h",
      "new_id": "01a755b8063297df67135e2806e49b7d0b484d43",
      "new_mode": 33188,
      "new_path": "arch/arm/include/asm/kvm_emulate.h"
    },
    {
      "type": "modify",
      "old_id": "7a121089c733ec04fa51115ed1738b092969cfa9",
      "old_mode": 33188,
      "old_path": "arch/arm/include/asm/kvm_host.h",
      "new_id": "e1d4168d4f19c1b9961fbd546263adb5df14da40",
      "new_mode": 33188,
      "new_path": "arch/arm/include/asm/kvm_host.h"
    },
    {
      "type": "modify",
      "old_id": "dfc293f277b3087d3d54c135336e67a012a4c992",
      "old_mode": 33188,
      "old_path": "arch/arm/kvm/Makefile",
      "new_id": "88edce6c97d49271f9d1b98f5a94c2b3da6f8a56",
      "new_mode": 33188,
      "new_path": "arch/arm/kvm/Makefile"
    },
    {
      "type": "modify",
      "old_id": "9e9fa447788410a617fff9061a339d24cc184ddb",
      "old_mode": 33188,
      "old_path": "arch/arm/kvm/arm.c",
      "new_id": "be06c5de51e3e4791baacf86e2e4574393ff7400",
      "new_mode": 33188,
      "new_path": "arch/arm/kvm/arm.c"
    },
    {
      "type": "modify",
      "old_id": "0c433558591c4546176379bb419bd99daca3099e",
      "old_mode": 33188,
      "old_path": "arch/arm/kvm/coproc.c",
      "new_id": "722efe3b167516091458767b6c794dc5e3bc0c05",
      "new_mode": 33188,
      "new_path": "arch/arm/kvm/coproc.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "992adfafa2ff4eb31c8c0d6e9f22aa2bea681114",
      "new_mode": 33188,
      "new_path": "arch/arm/kvm/coproc.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "685063a6d0cf655296aaec9713d08f19b53fa260",
      "new_mode": 33188,
      "new_path": "arch/arm/kvm/coproc_a15.c"
    },
    {
      "type": "modify",
      "old_id": "3eadc25e95deb0161f01657568dfdbae393835c3",
      "old_mode": 33188,
      "old_path": "arch/arm/kvm/emulate.c",
      "new_id": "d61450ac6665ffa0ed5c94cd10ce9f0298434620",
      "new_mode": 33188,
      "new_path": "arch/arm/kvm/emulate.c"
    },
    {
      "type": "modify",
      "old_id": "105d1f79909a00d69ad1aebd8f1cbbd40cd50d2a",
      "old_mode": 33188,
      "old_path": "arch/arm/kvm/trace.h",
      "new_id": "022305b38c271db8072d902cc3543f52ff778eb7",
      "new_mode": 33188,
      "new_path": "arch/arm/kvm/trace.h"
    }
  ]
}
