)]}'
{
  "commit": "f25f64ed5bd3c2932493681bdfdb483ea707da0a",
  "tree": "17d5151d79cbb0b53ddde80157950a2788ac947f",
  "parents": [
    "bdda1561ffda764583a295229db66d94cf6038a3"
  ],
  "author": {
    "name": "Juergen Beisert",
    "email": "juergen@kreuzholzen.de",
    "time": "Sun Jul 22 11:12:38 2007 +0200"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Sun Jul 22 11:03:38 2007 -0700"
  },
  "message": "x86: Replace NSC/Cyrix specific chipset access macros by inlined functions.\n\nDue to index register access ordering problems, when using macros a line\nlike this fails (and does nothing):\n\n\tsetCx86(CX86_CCR2, getCx86(CX86_CCR2) | 0x88);\n\nWith inlined functions this line will work as expected.\n\nNote about a side effect: Seems on Geode GX1 based systems the\n\"suspend on halt power saving feature\" was never enabled due to this\nwrong macro expansion. With inlined functions it will be enabled, but\nthis will stop the TSC when the CPU runs into a HLT instruction.\nKernel output something like this:\n\tClocksource tsc unstable (delta \u003d -472746897 ns)\n\nThis is the 3rd version of this patch.\n\n - Adding missed arch/i386/kernel/cpu/mtrr/state.c\n\tThanks to Andres Salomon\n - Adding some big fat comments into the new header file\n \tSuggested by Andi Kleen\n\nAK: fixed x86-64 compilation\n\nSigned-off-by: Juergen Beisert \u003cjuergen@kreuzholzen.de\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "194144539a6f34ccddd67e4e7f3393b68e5fecba",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/cpu/cpufreq/gx-suspmod.c",
      "new_id": "461dabc4e4959d23a7b5411d109b1a239a8c3872",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/cpu/cpufreq/gx-suspmod.c"
    },
    {
      "type": "modify",
      "old_id": "e88d2fba156b89d49ea24b9abba1d3b0cd41e5b4",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/cpu/cyrix.c",
      "new_id": "122d2d75aa9f9bbce77211038240686ebf2dc7e8",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/cpu/cyrix.c"
    },
    {
      "type": "modify",
      "old_id": "1001f1e0fe6d7dee0ae39147e054881fe5373736",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/cpu/mtrr/cyrix.c",
      "new_id": "2287d4863a8a01f7b060c39ffcebfe05dc33a94e",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/cpu/mtrr/cyrix.c"
    },
    {
      "type": "modify",
      "old_id": "7b39a2f954d9026c422862d522b5114ead35c242",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/cpu/mtrr/state.c",
      "new_id": "c9014ca4a575d3bbd1766bf6a0873bd7e2953e1f",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/cpu/mtrr/state.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "97568ada1f974f69409f4f4ffab93173327d4779",
      "new_mode": 33188,
      "new_path": "include/asm-i386/processor-cyrix.h"
    },
    {
      "type": "modify",
      "old_id": "48a7f69bb767a650c72000f9bad8b25ea7612dfb",
      "old_mode": 33188,
      "old_path": "include/asm-i386/processor.h",
      "new_id": "3845fe72383e518d89075695c2eec4dd0a9f277c",
      "new_mode": 33188,
      "new_path": "include/asm-i386/processor.h"
    },
    {
      "type": "modify",
      "old_id": "a1645bbc03bd20cb066908073cd3d7954f8eb930",
      "old_mode": 33188,
      "old_path": "include/asm-x86_64/processor.h",
      "new_id": "19525175b91c2a7793bf463c4e78eba925030d3c",
      "new_mode": 33188,
      "new_path": "include/asm-x86_64/processor.h"
    }
  ]
}
