)]}'
{
  "commit": "22f975f4ffa707ea24507f6899bb9f5a1ff034bc",
  "tree": "b82d3d97110b8f5c9d80dfca36d38be98498fd5a",
  "parents": [
    "5b35193f5868da5e63f5b4cfe8fbcf9f10fe65cd"
  ],
  "author": {
    "name": "Nikola Valerjev",
    "email": "nikola@ghs.com",
    "time": "Sat Dec 10 11:59:15 2005 +0000"
  },
  "committer": {
    "name": "Russell King",
    "email": "rmk+kernel@arm.linux.org.uk",
    "time": "Sat Dec 10 11:59:15 2005 +0000"
  },
  "message": "[ARM] 3200/1: Singlestep over ARM BX and BLX instructions using ptrace fix\n\nPatch from Nikola Valerjev\n\nSingle stepping an application using ptrace() fails over ARM instructions BX and BLX.\n\nSteps to reproduce:\n\nCompile and link the following files\n\nmain.c\n-----\nvoid foo();\nint main() {\n    foo();\n    return 0;\n}\n\nfoo.s\n-----\n\t.text\n\t.globl foo\nfoo:\n\tBX LR\n\nUsing ptrace() functionality, run to main(), and start singlestepping.\nSinglestep over \\\"BX LR\\\" instruction won\\\u0027t transfer the control back\nto main, but run the code to completion.\n\nThis problems seems to be in the function get_branch_address() in\narch/arm/kernel/ptrace.c. The function doesn\\\u0027t seem to recognize BX\nand BLX instructions as branches. BX and BLX instructions can be used\nto convert from ARM to Thumb mode if the target address has the low\nbit set. However, they are also perfectly legal in the ARM only mode.\nAlthough other things in the kernel seem to indicate that only ARM\nmode is accepted (and not Thumb), many compilers will generate BX\nand BLX instructions even when generating ARM only code.\n\nSigned-off-by: Nikola Valerjev \u003cnikola@ghs.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9a340e790da52a9b801857c2da22226f89c91d66",
      "old_mode": 33188,
      "old_path": "arch/arm/kernel/ptrace.c",
      "new_id": "2b84f78d7b0f78585698e54bf137f3cde7634205",
      "new_mode": 33188,
      "new_path": "arch/arm/kernel/ptrace.c"
    }
  ]
}
