)]}'
{
  "commit": "01a3ee2b203e511e20f98b85a9172fd32c53e87c",
  "tree": "0dd90d81dc86f231828af23bdb97522405b06cab",
  "parents": [
    "39484e53bb00f55b6303a908070db133608ef2a5"
  ],
  "author": {
    "name": "Reinette Chatre",
    "email": "reinette.chatre@linux.intel.com",
    "time": "Wed Oct 11 01:21:55 2006 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Wed Oct 11 11:14:22 2006 -0700"
  },
  "message": "[PATCH] bitmap: parse input from kernel and user buffers\n\nlib/bitmap.c:bitmap_parse() is a library function that received as input a\nuser buffer.  This seemed to have originated from the way the write_proc\nfunction of the /proc filesystem operates.\n\nThis has been reworked to not use kmalloc and eliminates a lot of\nget_user() overhead by performing one access_ok before using __get_user().\n\nWe need to test if we are in kernel or user space (is_user) and access the\nbuffer differently.  We cannot use __get_user() to access kernel addresses\nin all cases, for example in architectures with separate address space for\nkernel and user.\n\nThis function will be useful for other uses as well; for example, taking\ninput for /sysfs instead of /proc, so it was changed to accept kernel\nbuffers.  We have this use for the Linux UWB project, as part as the\nupcoming bandwidth allocator code.\n\nOnly a few routines used this function and they were changed too.\n\nSigned-off-by: Reinette Chatre \u003creinette.chatre@linux.intel.com\u003e\nSigned-off-by: Inaky Perez-Gonzalez \u003cinaky@linux.intel.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Joe Korty \u003cjoe.korty@ccur.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dcc5de7cc487673f786f25c2598091549121d351",
      "old_mode": 33188,
      "old_path": "include/linux/bitmap.h",
      "new_id": "64b4641904fee0415c169d3f20e3bd4cdba71f5c",
      "new_mode": 33188,
      "new_path": "include/linux/bitmap.h"
    },
    {
      "type": "modify",
      "old_id": "b268a3c0c37628d23231754f1ad9047ac47a74b8",
      "old_mode": 33188,
      "old_path": "include/linux/cpumask.h",
      "new_id": "d0e8c8b0e34dee03a78823c81d2c7536ce88e2cc",
      "new_mode": 33188,
      "new_path": "include/linux/cpumask.h"
    },
    {
      "type": "modify",
      "old_id": "5dce5c21822ca12bc6b3c6423352b50fcbe75b44",
      "old_mode": 33188,
      "old_path": "include/linux/nodemask.h",
      "new_id": "b1063e9cdb1b77c35f3b8d2ec72656138ff93b5a",
      "new_mode": 33188,
      "new_path": "include/linux/nodemask.h"
    },
    {
      "type": "modify",
      "old_id": "607c7809ad0125e7aad8d28a308319601a7223ea",
      "old_mode": 33188,
      "old_path": "kernel/irq/proc.c",
      "new_id": "9a352667007ce52fe610c7c72cc190772cb126dd",
      "new_mode": 33188,
      "new_path": "kernel/irq/proc.c"
    },
    {
      "type": "modify",
      "old_id": "857300a2afec92d97a724255402780745f042916",
      "old_mode": 33188,
      "old_path": "kernel/profile.c",
      "new_id": "f940b462eec9a34eb7c3cad4ee958a2ec0f1f5bc",
      "new_mode": 33188,
      "new_path": "kernel/profile.c"
    },
    {
      "type": "modify",
      "old_id": "d71e38c54ea50444c5d76c91471c3827c4beaf64",
      "old_mode": 33188,
      "old_path": "lib/bitmap.c",
      "new_id": "037fa9aa2ed77f554296c7f1f4b64f769fdd2a73",
      "new_mode": 33188,
      "new_path": "lib/bitmap.c"
    }
  ]
}
