)]}'
{
  "commit": "78022a95d1b27e3225ab48d97d50cb90cb2fe47d",
  "tree": "ba1a4ca2bbc6d6ada1cae51239cec1cb952699df",
  "parents": [
    "861f20cafb82431379ddde0aed3488fdfabfef80"
  ],
  "author": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Fri Dec 22 12:06:24 2017 -0500"
  },
  "committer": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Fri Dec 22 12:06:24 2017 -0500"
  },
  "message": "vmm: Handle mov with zero-extend\n\nI noticed that if you dropped the apic\u003ddebug command line argument to the\nguest, then they would crash.\n\nThe root cause was our EPT handler, which emulates access to the low 4K of\nphysical memory, wasn\u0027t handling movzwl correctly.  We were not\nzero-extending.  That led to junk in registers that the compiler didn\u0027t\nexpect.  And that led Linux to get a false positive for get_bios_ebda(),\nwhich lead to dereferencing garbage.\n\nThe apic\u003ddebug turned on a printk, which was enough to change the registers\nso that the junk was not present.  Similarly, some basic tracing that moved\nregisters or changed \"don\u0027t care\" values before the call to get_bios_ebda()\nwas enough to make the code work.\n\nSigned-off-by: Barret Rhoden \u003cbrho@cs.berkeley.edu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bf3c9ab347c39be7b11be075c22d5cfd1fc58cc3",
      "old_mode": 33188,
      "old_path": "user/vmm/decode.c",
      "new_id": "f12765d425c47fd2cb3a799c5d58c9d0c1fa0cef",
      "new_mode": 33188,
      "new_path": "user/vmm/decode.c"
    }
  ]
}
