)]}'
{
  "log": [
    {
      "commit": "f82da723398ff18d49275a5f03de6cae5f592e8e",
      "tree": "acd95449d77d4b565baa71eb287d228a1e1fcbf4",
      "parents": [
        "99709372736a216f99eb32b76fba835a2bfc93a8"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Feb 12 16:47:01 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 12 16:47:01 2009 -0800"
      },
      "message": "Documentation/connector/cn_test.c: don\u0027t use gfp_any()\n\ncn_test_timer_func() is a timer handler and can never use GFP_KERNEL -\nthere\u0027s no point in using gfp_any() here.\n\nAlso, use setup_timer().\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c17dad6905fc82d8f523399e5c3f014e81d61df6",
      "tree": "9e28f9f77dd80b2b89d4760d56c2106a3255cdcb",
      "parents": [
        "75b7edfdc12c213402b17a62e5cfe7a802a4ab57"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 29 14:00:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:45 2008 -0700"
      },
      "message": ".gitignore updates\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3794f3e812ef707a4f7931742274d1d0ca6597b4",
      "tree": "9a5373fa2bbcfc1626bb666d2c895e2620f7a3b3",
      "parents": [
        "bc2aa80e18a1b43ea2b8066500006b729c4ba4a7"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Aug 12 15:09:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 12 16:07:30 2008 -0700"
      },
      "message": "docsrc: build Documentation/ sources\n\nCurrently source files in the Documentation/ sub-dir can easily bit-rot\nsince they are not generally buildable, either because they are hidden in\ntext files or because there are no Makefile rules for them.  This needs to\nbe fixed so that the source files remain usable and good examples of code\ninstead of bad examples.\n\nAdd the ability to build source files that are in the Documentation/ dir.\nAdd to Kconfig as \"BUILD_DOCSRC\" config symbol.\n\nUse \"CONFIG_BUILD_DOCSRC\u003d1 make ...\" to build objects from the\nDocumentation/ sources.  Or enable BUILD_DOCSRC in the *config system.\nHowever, this symbol depends on HEADERS_CHECK since the header files need\nto be installed (for userspace builds).\n\nBuilt (using cross-tools) for x86-64, i386, alpha, ia64, sparc32,\nsparc64, powerpc, sh, m68k, \u0026 mips.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nReviewed-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd00cc486ab1c17049a535413d1751ef3482141c",
      "tree": "d90ff69ea06792b9284f2f2665c96624f121b88a",
      "parents": [
        "3b5ad0797c0e4049001f961a8b58f1d0ce532072"
      ],
      "author": {
        "name": "Yoann Padioleau",
        "email": "padator@wanadoo.fr",
        "time": "Thu Jul 19 01:49:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:50 2007 -0700"
      },
      "message": "some kmalloc/memset -\u003ekzalloc (tree wide)\n\nTransform some calls to kmalloc/memset to a single kzalloc (or kcalloc).\n\nHere is a short excerpt of the semantic patch performing\nthis transformation:\n\n@@\ntype T2;\nexpression x;\nidentifier f,fld;\nexpression E;\nexpression E1,E2;\nexpression e1,e2,e3,y;\nstatement S;\n@@\n\n x \u003d\n- kmalloc\n+ kzalloc\n  (E1,E2)\n  ...  when !\u003d \\(x-\u003efld\u003dE;\\|y\u003df(...,x,...);\\|f(...,x,...);\\|x\u003dE;\\|while(...) S\\|for(e1;e2;e3) S\\)\n- memset((T2)x,0,E1);\n\n@@\nexpression E1,E2,E3;\n@@\n\n- kzalloc(E1 * E2,E3)\n+ kcalloc(E1,E2,E3)\n\n[akpm@linux-foundation.org: get kcalloc args the right way around]\nSigned-off-by: Yoann Padioleau \u003cpadator@wanadoo.fr\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nAcked-by: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Bryan Wu \u003cbryan.wu@analog.com\u003e\nAcked-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nAcked-by: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nAcked-by: Pierre Ossman \u003cdrzeus-list@drzeus.cx\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "897522ea1c20691b6a65f32f03ae4e77e508b31c",
      "tree": "fe71ca8eeedc1c5aebdb4ed02d1db8222738336f",
      "parents": [
        "94918ff68a7c78fdd3241d13e18444ef80b8ff4a"
      ],
      "author": {
        "name": "Evgeniy Polyakov",
        "email": "johnpol@2ka.mipt.ru",
        "time": "Fri Aug 25 00:52:06 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Aug 26 18:42:00 2006 -0700"
      },
      "message": "[CONNECTOR]: Add userspace example code into Documentation/connector/\n\nI was asked several times to include userspace example code into\nDocumentation, so if there is no policy against it, consider attached patch\nfor 2.6.18. This program works with included Documentation/connector/cn_test.c\nconnector module.\n\nSigned-off-by: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b191ba0d599928372be5a89f75486eb58efab48a",
      "tree": "a0ecc636d121126aba838d49700ad9cfbbf94733",
      "parents": [
        "0ac81ae34ec8898e7eb1388fe21e3cee7b626a88"
      ],
      "author": {
        "name": "Evgeniy Polyakov",
        "email": "johnpol@2ka.mipt.ru",
        "time": "Mon Mar 20 22:21:40 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:21:40 2006 -0800"
      },
      "message": "[CONNECTOR]: Use netlink_has_listeners() to avoind unnecessary allocations.\n\nReturn -ESRCH from cn_netlink_send() when there are not listeners,\njust as it could be done by netlink_broadcast().  Propagate\nnetlink_broadcast() error back to the caller.\n\nSigned-off-by: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "18a0c23617a2cb1c2e55e650046c2084d823fde0",
      "tree": "24e73433d0e8149c1ae8b658188f0cec0472c60c",
      "parents": [
        "072047e4de3800905e09d0f8ef0e1cc4e91a601e"
      ],
      "author": {
        "name": "Carlo Comin",
        "email": "vl4d@spine-group.org",
        "time": "Tue Nov 08 09:38:56 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 08 09:38:56 2005 -0800"
      },
      "message": "[CONNECTOR]: Fix documentation test module.\n\nPatch from Carlo Comin \u003cvl4d spine-group.org\u003e\n\nSigned-off-by: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eb0d6041143fae63410c5622fef96862e6b20933",
      "tree": "28a8f9ed7fc1e60850a06c2f06fe8bbaaa08d073",
      "parents": [
        "34cb711ba922f53cca45443b8c3c1078873cf599"
      ],
      "author": {
        "name": "Evgeniy Polyakov",
        "email": "johnpol@2ka.mipt.ru",
        "time": "Thu Oct 13 14:42:04 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 13 14:42:04 2005 -0700"
      },
      "message": "[CONNECTOR]: Update documentation to match reality.\n\nUpdated documentation to reflect 2.6.14 netlink changes\nabout socket options, multicasting and group number.\nPlease concider for 2.6.14.\n\nSigned-off-by: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7672d0b54411371e0b6a831c1cb2f0ce615de6dc",
      "tree": "27d88da3263041b91d18346b3bcd27807d332f1a",
      "parents": [
        "357d596bd552ad157a906289ab13ea6ba7e66e3d"
      ],
      "author": {
        "name": "Evgeniy Polyakov",
        "email": "johnpol@2ka.mipt.ru",
        "time": "Sun Sep 11 19:15:07 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 11 19:15:07 2005 -0700"
      },
      "message": "[NET]: Add netlink connector.\n\nKernel connector - new userspace \u003c-\u003e kernel space easy to use\ncommunication module which implements easy to use bidirectional\nmessage bus using netlink as it\u0027s backend.  Connector was created to\neliminate complex skb handling both in send and receive message bus\ndirection.\n\nConnector driver adds possibility to connect various agents using as\none of it\u0027s backends netlink based network.  One must register\ncallback and identifier. When driver receives special netlink message\nwith appropriate identifier, appropriate callback will be called.\n\nFrom the userspace point of view it\u0027s quite straightforward:\n\n\tsocket();\n\tbind();\n\tsend();\n\trecv();\n\nBut if kernelspace want to use full power of such connections, driver\nwriter must create special sockets, must know about struct sk_buff\nhandling...  Connector allows any kernelspace agents to use netlink\nbased networking for inter-process communication in a significantly\neasier way:\n\nint cn_add_callback(struct cb_id *id, char *name, void (*callback) (void *));\nvoid cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask);\n\nstruct cb_id\n{\n\t__u32\t\t\tidx;\n\t__u32\t\t\tval;\n};\n\nidx and val are unique identifiers which must be registered in\nconnector.h for in-kernel usage.  void (*callback) (void *) - is a\ncallback function which will be called when message with above idx.val\nwill be received by connector core.\n\nUsing connector completely hides low-level transport layer from it\u0027s\nusers.\n\nConnector uses new netlink ability to have many groups in one socket.\n\n[ Incorporating many cleanups and fixes by myself and\n  Andrew Morton -DaveM ]\n\nSigned-off-by: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
