)]}'
{
  "commit": "3d03e2ea74103a50c23d6ab1906cf73399c0dafb",
  "tree": "788261677d4fe58101a6d88ae02a3bc870b86141",
  "parents": [
    "0252208eb52f6fe8731a47804eddc7ba93f60a87"
  ],
  "author": {
    "name": "Arnaldo Carvalho de Melo",
    "email": "acme@redhat.com",
    "time": "Mon Jan 10 21:37:57 2011 -0200"
  },
  "committer": {
    "name": "Arnaldo Carvalho de Melo",
    "email": "acme@redhat.com",
    "time": "Mon Jan 10 22:23:08 2011 -0200"
  },
  "message": "perf session: Fix infinite loop in __perf_session__process_events\n\nIn this if statement:\n\n        if (head + event-\u003eheader.size \u003e\u003d mmap_size) {\n                if (mmaps[map_idx]) {\n                        munmap(mmaps[map_idx], mmap_size);\n                        mmaps[map_idx] \u003d NULL;\n                }\n\n                page_offset \u003d page_size * (head / page_size);\n                file_offset +\u003d page_offset;\n                head -\u003d page_offset;\n                goto remap;\n        }\n\nWith, for instance, these values:\n\nhead\u003d2992\nevent-\u003eheader.size\u003d48\nmmap_size\u003d3040\n\nWe end up endlessly looping back to remap. Off by one.\n\nProblem introduced in 55b4462.\n\nReported-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReported-by: David Ahern \u003cdaahern@cisco.com\u003e\nBisected-by: David Ahern \u003cdaahern@cisco.com\u003e\nTested-by: David Ahern \u003cdaahern@cisco.com\u003e\nCc: David Ahern \u003cdaahern@cisco.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6fb4694d05fa1e2c89e5ac91207c025214031f38",
      "old_mode": 33188,
      "old_path": "tools/perf/util/session.c",
      "new_id": "313dac2d94ce9f7c9e74ef0e8995383866427dbf",
      "new_mode": 33188,
      "new_path": "tools/perf/util/session.c"
    }
  ]
}
