)]}'
{
  "commit": "859deea949c382d9ccb6397fe33df3703ecef45d",
  "tree": "b0fe2d7a814143f3ff61a73a0727522a1a3dd6e4",
  "parents": [
    "21c4ff80cba5e24932f3ef79c8482c0491630b2b"
  ],
  "author": {
    "name": "Benjamin Herrenschmidt",
    "email": "benh@kernel.crashing.org",
    "time": "Fri Oct 20 14:37:05 2006 +1000"
  },
  "committer": {
    "name": "Paul Mackerras",
    "email": "paulus@samba.org",
    "time": "Wed Oct 25 11:54:18 2006 +1000"
  },
  "message": "[POWERPC] Cell timebase bug workaround\n\nThe Cell CPU timebase has an erratum. When reading the entire 64 bits\nof the timebase with one mftb instruction, there is a handful of cycles\nwindow during which one might read a value with the low order 32 bits\nalready reset to 0x00000000 but the high order bits not yet incremeted\nby one. This fixes it by reading the timebase again until the low order\n32 bits is no longer 0. That might introduce occasional latencies if\nhitting mftb just at the wrong time, but no more than 70ns on a cell\nblade, and that was considered acceptable.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Olof Johansson \u003colof@lixom.net\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "56e76ff5498f49fd2a5b590a8c599c1e606f41cc",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kernel/vdso64/gettimeofday.S",
      "new_id": "40ffd9b6cef7bf55fd81a6c62067afec4175d7c5",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kernel/vdso64/gettimeofday.S"
    },
    {
      "type": "modify",
      "old_id": "02e52d68cbbecffd7abdeaaa0242bdeb3ae575dc",
      "old_mode": 33188,
      "old_path": "include/asm-powerpc/cputable.h",
      "new_id": "a9a40149a7c0daf66cca975035b4d5863bbc10bc",
      "new_mode": 33188,
      "new_path": "include/asm-powerpc/cputable.h"
    },
    {
      "type": "modify",
      "old_id": "a940cfe040da1a4d38b253b09c948bdbdac401a9",
      "old_mode": 33188,
      "old_path": "include/asm-powerpc/ppc_asm.h",
      "new_id": "fa083d8e46632807b5a206a5ab7fa528e7676fea",
      "new_mode": 33188,
      "new_path": "include/asm-powerpc/ppc_asm.h"
    },
    {
      "type": "modify",
      "old_id": "fde5c804eccb30384e88bdba176821d4e0750684",
      "old_mode": 33188,
      "old_path": "include/asm-powerpc/reg.h",
      "new_id": "6faae7b14d5540f0e5cdcd13b3a31c195d7d980b",
      "new_mode": 33188,
      "new_path": "include/asm-powerpc/reg.h"
    },
    {
      "type": "modify",
      "old_id": "b051d4c88c3b46a19b40ba11d2e951010be502d6",
      "old_mode": 33188,
      "old_path": "include/asm-powerpc/time.h",
      "new_id": "a78285010d62f852674327f09a73fda3b7a69a8b",
      "new_mode": 33188,
      "new_path": "include/asm-powerpc/time.h"
    },
    {
      "type": "modify",
      "old_id": "e3f08cf91486afdc7b5e1b8cd33da1de5b3144a3",
      "old_mode": 33188,
      "old_path": "include/asm-powerpc/timex.h",
      "new_id": "92dedde761d183a0109dfd7173c37ec1f3a1d43b",
      "new_mode": 33188,
      "new_path": "include/asm-powerpc/timex.h"
    }
  ]
}
