)]}'
{
  "commit": "89e45aac42d40426c97e6901811309bf49c4993f",
  "tree": "77d72204f3a92e9ecbc8b4e36d6e04fb6b17a98b",
  "parents": [
    "0d2b54904d8db26663117ab82697cae5cdf56f72"
  ],
  "author": {
    "name": "Frederic Weisbecker",
    "email": "fweisbec@gmail.com",
    "time": "Fri Sep 17 03:24:13 2010 +0200"
  },
  "committer": {
    "name": "Frederic Weisbecker",
    "email": "fweisbec@gmail.com",
    "time": "Fri Sep 17 03:24:13 2010 +0200"
  },
  "message": "x86: Fix instruction breakpoint encoding\n\nLengths and types of breakpoints are encoded in a half byte\ninto CPU registers. However when we extract these values\nand store them, we add a high half byte part to them: 0x40 to the\nlength and 0x80 to the type.\nWhen that gets reloaded to the CPU registers, the high part\nis masked.\n\nWhile making the instruction breakpoints available for perf,\nI zapped that high part on instruction breakpoint encoding\nand that broke the arch -\u003e generic translation used by ptrace\ninstruction breakpoints. Writing dr7 to set an inst breakpoint\nwas then failing.\n\nThere is no apparent reason for these high parts so we could get\nrid of them altogether. That\u0027s an invasive change though so let\u0027s\ndo that later and for now fix the problem by restoring that inst\nbreakpoint high part encoding in this sole patch.\n\nReported-by: Kelvie Wong \u003ckelvie@ieee.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "528a11e8d3e35f64fea90202d6f196d77d48e708",
      "old_mode": 33188,
      "old_path": "arch/x86/include/asm/hw_breakpoint.h",
      "new_id": "824ca07860d012cdcc9c46886500d056fdb2aeed",
      "new_mode": 33188,
      "new_path": "arch/x86/include/asm/hw_breakpoint.h"
    },
    {
      "type": "modify",
      "old_id": "a474ec37c32f84df372d39eac5730532d60d0228",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/hw_breakpoint.c",
      "new_id": "ff15c9dcc25de8be8144fd4d15f1dfd3069314e4",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/hw_breakpoint.c"
    }
  ]
}
