)]}'
{
  "commit": "974802eaa1afdc87e00821df7020a2b3c6fee623",
  "tree": "b5c38bece7f4948fe9d5cf9be02a0042e0fa39f6",
  "parents": [
    "bbd36e5e6aa6f1757c84cdb406b6eb81686d14af"
  ],
  "author": {
    "name": "Peter Zijlstra",
    "email": "a.p.zijlstra@chello.nl",
    "time": "Fri Jun 12 12:46:55 2009 +0200"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Fri Jun 12 14:28:52 2009 +0200"
  },
  "message": "perf_counter: Add forward/backward attribute ABI compatibility\n\nProvide for means of extending the perf_counter_attr in a \u0027natural\u0027 way.\n\nWe allow growing the structure by appending fields at the end by specifying\nthe full structure size inside it.\n\nWhen a new kernel sees a smaller (old) structure, it will 0 pad the tail.\nWhen an old kernel sees a larger (new) structure, it will verify the tail\nconsists of 0s, otherwise fail.\n\nIf we fail due to a size-mismatch, we return -E2BIG and write the kernel\u0027s\nnative attribe size back into the provided structure.\n\nFurthermore, add some attribute verification, so that we\u0027ll fail counter\ncreation when unknown bits are present (PERF_SAMPLE, PERF_FORMAT, or in\nthe __reserved fields).\n\n(This ABI detail is introduced while keeping the existing syscall ABI.)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7c4f32f6ae1aed3b19a64c4393ba8a11a66d3d7e",
      "old_mode": 33188,
      "old_path": "include/linux/perf_counter.h",
      "new_id": "1b3118a1023abfb3f8c7c3f8b0204e1f87d5d212",
      "new_mode": 33188,
      "new_path": "include/linux/perf_counter.h"
    },
    {
      "type": "modify",
      "old_id": "c6c84ad8bd7119dea51f73ab13ee34987c5d152d",
      "old_mode": 33188,
      "old_path": "include/linux/syscalls.h",
      "new_id": "418d90f5effe72ff9921a6ea066bb526a7337127",
      "new_mode": 33188,
      "new_path": "include/linux/syscalls.h"
    },
    {
      "type": "modify",
      "old_id": "663bbe0150573238fe4ffd3a1699edbebf34f188",
      "old_mode": 33188,
      "old_path": "kernel/perf_counter.c",
      "new_id": "29b685f551aac6aa2f5bee8e1356755ae5627001",
      "new_mode": 33188,
      "new_path": "kernel/perf_counter.c"
    },
    {
      "type": "modify",
      "old_id": "af0a5046d743a22b718b0360b392cc4107fdc6ef",
      "old_mode": 33188,
      "old_path": "tools/perf/perf.h",
      "new_id": "87a1aca4a4246e0dad3ea82276ccd5487cddacf0",
      "new_mode": 33188,
      "new_path": "tools/perf/perf.h"
    }
  ]
}
