)]}'
{
  "log": [
    {
      "commit": "01a16b21d6adf992aa863186c3c4e561a57c1714",
      "tree": "a3b1c81e5a5e6a0e9069e4d3a15576741ed34776",
      "parents": [
        "63f97425166a1a16279c1a5720e9dfcb2c12ad1b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Mar 03 13:32:07 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 13:32:07 2011 -0800"
      },
      "message": "netlink: kill eff_cap from struct netlink_skb_parms\n\nNetlink message processing in the kernel is synchronous these days,\ncapabilities can be checked directly in security_netlink_recv() from\nthe current process.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\n[chrisw: update to include pohmelfs and uvesafb]\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c53fa1ed92cd671a1dfb1e7569e9ab672612ddc6",
      "tree": "9bb539a7731af94cac0112b8f13771e4a33e0450",
      "parents": [
        "06dc94b1ed05f91e246315afeb1c652d6d0dc9ab"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Mar 03 10:55:40 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 10:55:40 2011 -0800"
      },
      "message": "netlink: kill loginuid/sessionid/sid members from struct netlink_skb_parms\n\nNetlink message processing in the kernel is synchronous these days, the\nsession information can be collected when needed.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4b8fe66300acb2fba8b16d62606e0d30204022fc",
      "tree": "47bd007ac8a3a3dfaa15edb64024b34e7dda8860",
      "parents": [
        "f4680d3db71f13d2764340a9880745bf54f2469d"
      ],
      "author": {
        "name": "Dmitry V. Levin",
        "email": "ldv@altlinux.org",
        "time": "Fri Dec 17 12:03:14 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 17 12:03:14 2010 -0800"
      },
      "message": "netlink: fix gcc -Wconversion compilation warning\n\n$ cat \u003c\u003c EOF | gcc -Wconversion -xc -S -o/dev/null -\nunsigned f(void) {return NLMSG_HDRLEN;}\nEOF\n\u003cstdin\u003e: In function \u0027f\u0027:\n\u003cstdin\u003e:3:26: warning: negative integer implicitly converted to unsigned type\n\nSigned-off-by: Dmitry V. Levin \u003cldv@altlinux.org\u003e\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "56b49f4b8f6728b91d10c556c116175051b77b60",
      "tree": "2a88008075a90686237b0e8ce1de72db1d5b0747",
      "parents": [
        "cbdd769ab9de26764bde0520a91536caa1587e13"
      ],
      "author": {
        "name": "Ollie Wild",
        "email": "aaw@google.com",
        "time": "Wed Sep 22 05:54:54 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 22 13:21:05 2010 -0700"
      },
      "message": "net: Move \"struct net\" declaration inside the __KERNEL__ macro guard\n\nThis patch reduces namespace pollution by moving the \"struct net\" declaration\nout of the userspace-facing portion of linux/netlink.h.  It has no impact on\nthe kernel.\n\n(This came up because we have several C++ applications which use \"net\" as a\nnamespace name.)\n\nSigned-off-by: Ollie Wild \u003caaw@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "910a7e905f36e51a17d6e8bb4ad6dcd5ac5f1d53",
      "tree": "63587b03de37a6b9a6b58c203719a24d57edf850",
      "parents": [
        "d6523ddf2376f39eaa89a4d68a33052d20c138b9"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue May 04 17:36:46 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:32 2010 -0700"
      },
      "message": "netlink: Implment netlink_broadcast_filtered\n\nWhen netlink sockets are used to convey data that is in a namespace\nwe need a way to select a subset of the listening sockets to deliver\nthe packet to.  For the network namespace we have been doing this\nby only transmitting packets in the correct network namespace.\n\nFor data belonging to other namespaces netlink_bradcast_filtered\nprovides a mechanism that allows us to examine the destination\nsocket and to decide if we should transmit the specified packet\nto it.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "1a50307ba1826e4da0024e64b245ce4eadf7688a",
      "tree": "48c0b788b925d6ae0877f5b95f5e0794ce0601a7",
      "parents": [
        "73852e8151b7d7a529fbe019ab6d2d0c02d8f3f2"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Mar 18 14:24:42 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 20 14:29:03 2010 -0700"
      },
      "message": "netlink: fix NETLINK_RECV_NO_ENOBUFS in netlink_set_err()\n\nCurrently, ENOBUFS errors are reported to the socket via\nnetlink_set_err() even if NETLINK_RECV_NO_ENOBUFS is set. However,\nthat should not happen. This fixes this problem and it changes the\nprototype of netlink_set_err() to return the number of sockets that\nhave set the NETLINK_RECV_NO_ENOBUFS socket option. This return\nvalue is used in the next patch in these bugfix series.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d94d9fee9fa4e66a0b91640a694b8b10177075b3",
      "tree": "330b2b19e63c92f1fef3d9dbe0733ddeb0109664",
      "parents": [
        "b8883a65be2d925ea82b14ca0068ce9a6c8bac1f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Nov 04 09:50:58 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 04 09:50:58 2009 -0800"
      },
      "message": "net: cleanup include/linux\n\nThis cleanup patch puts struct/union/enum opening braces,\nin first line to ease grep games.\n\nstruct something\n{\n\nbecomes :\n\nstruct something {\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b8273570f802a7658827dcb077b0b517ba75a289",
      "tree": "06fcee4433089cdb16504f40b1975ebbdf69e241",
      "parents": [
        "704cc92e9ffe29458ea8831ae097c631b1160c01"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Sep 24 15:44:05 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:44:05 2009 -0700"
      },
      "message": "genetlink: fix netns vs. netlink table locking (2)\n\nSimilar to commit d136f1bd366fdb7e747ca7e0218171e7a00a98a5,\nthere\u0027s a bug when unregistering a generic netlink family,\nwhich is caught by the might_sleep() added in that commit:\n\n    BUG: sleeping function called from invalid context at net/netlink/af_netlink.c:183\n    in_atomic(): 1, irqs_disabled(): 0, pid: 1510, name: rmmod\n    2 locks held by rmmod/1510:\n     #0:  (genl_mutex){+.+.+.}, at: [\u003cffffffff8138283b\u003e] genl_unregister_family+0x2b/0x130\n     #1:  (rcu_read_lock){.+.+..}, at: [\u003cffffffff8138270c\u003e] __genl_unregister_mc_group+0x1c/0x120\n    Pid: 1510, comm: rmmod Not tainted 2.6.31-wl #444\n    Call Trace:\n     [\u003cffffffff81044ff9\u003e] __might_sleep+0x119/0x150\n     [\u003cffffffff81380501\u003e] netlink_table_grab+0x21/0x100\n     [\u003cffffffff813813a3\u003e] netlink_clear_multicast_users+0x23/0x60\n     [\u003cffffffff81382761\u003e] __genl_unregister_mc_group+0x71/0x120\n     [\u003cffffffff81382866\u003e] genl_unregister_family+0x56/0x130\n     [\u003cffffffffa0007d85\u003e] nl80211_exit+0x15/0x20 [cfg80211]\n     [\u003cffffffffa000005a\u003e] cfg80211_exit+0x1a/0x40 [cfg80211]\n\nFix in the same way by grabbing the netlink table lock\nbefore doing rcu_read_lock().\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d136f1bd366fdb7e747ca7e0218171e7a00a98a5",
      "tree": "cee39b3249c36aba4b765cae6d9d3579c9f10a2d",
      "parents": [
        "8be8057e72d7d319f8e97b26e16de8021fe63988"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sat Sep 12 03:03:15 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 14 17:02:50 2009 -0700"
      },
      "message": "genetlink: fix netns vs. netlink table locking\n\nSince my commits introducing netns awareness into\ngenetlink we can get this problem:\n\nBUG: scheduling while atomic: modprobe/1178/0x00000002\n2 locks held by modprobe/1178:\n #0:  (genl_mutex){+.+.+.}, at: [\u003cffffffff8135ee1a\u003e] genl_register_mc_grou\n #1:  (rcu_read_lock){.+.+..}, at: [\u003cffffffff8135eeb5\u003e] genl_register_mc_g\nPid: 1178, comm: modprobe Not tainted 2.6.31-rc8-wl-34789-g95cb731-dirty #\nCall Trace:\n [\u003cffffffff8103e285\u003e] __schedule_bug+0x85/0x90\n [\u003cffffffff81403138\u003e] schedule+0x108/0x588\n [\u003cffffffff8135b131\u003e] netlink_table_grab+0xa1/0xf0\n [\u003cffffffff8135c3a7\u003e] netlink_change_ngroups+0x47/0x100\n [\u003cffffffff8135ef0f\u003e] genl_register_mc_group+0x12f/0x290\n\nbecause I overlooked that netlink_table_grab() will\nschedule, thinking it was just the rwlock. However,\nin the contention case, that isn\u0027t actually true.\n\nFix this by letting the code grab the netlink table\nlock first and then the RCU for netns protection.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3a6c2b419b7768703cfb2cabdb894517c5065e33",
      "tree": "d8d8dc9ad34ffdd2f0f56876e9d3b6f0e6d5eceb",
      "parents": [
        "74f7a6552c8d76ffc5e11eb8d9d6c07238b9ae77"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Aug 25 16:07:40 2009 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Aug 25 16:07:40 2009 +0200"
      },
      "message": "netlink: constify nlmsghdr arguments\n\nConsitfy nlmsghdr arguments to a couple of functions as preparation\nfor the next patch, which will constify the netlink message data in\nall nfnetlink users.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "38938bfe3489394e2eed5e40c9bb8f66a2ce1405",
      "tree": "cbe1cafdaa990d31f0297d306e3adc61bb1e95a2",
      "parents": [
        "7f649269c318c41030e492fc35f03d38c6e3b39b"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue Mar 24 16:37:55 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 24 16:37:55 2009 -0700"
      },
      "message": "netlink: add NETLINK_NO_ENOBUFS socket flag\n\nThis patch adds the NETLINK_NO_ENOBUFS socket flag. This flag can\nbe used by unicast and broadcast listeners to avoid receiving\nENOBUFS errors.\n\nGenerally speaking, ENOBUFS errors are useful to notify two things\nto the listener:\n\na) You may increase the receiver buffer size via setsockopt().\nb) You have lost messages, you may be out of sync.\n\nIn some cases, ignoring ENOBUFS errors can be useful. For example:\n\na) nfnetlink_queue: this subsystem does not have any sort of resync\nmethod and you can decide to ignore ENOBUFS once you have set a\ngiven buffer size.\n\nb) ctnetlink: you can use this together with the socket flag\nNETLINK_BROADCAST_SEND_ERROR to stop getting ENOBUFS errors as\nyou do not need to resync (packets whose event are not delivered\nare drop to provide reliable logging and state-synchronization).\n\nMoreover, the use of NETLINK_NO_ENOBUFS also reduces a \"go up, go down\"\neffect in terms of performance which is due to the netlink congestion\ncontrol when the listener cannot back off. The effect is the following:\n\n1) throughput rate goes up and netlink messages are inserted in the\nreceiver buffer.\n2) Then, netlink buffer fills and overruns (set on nlk-\u003estate bit 0).\n3) While the listener empties the receiver buffer, netlink keeps\ndropping messages. Thus, throughput goes dramatically down.\n4) Then, once the listener has emptied the buffer (nlk-\u003estate\nbit 0 is set off), goto step 1.\n\nThis effect is easy to trigger with netlink broadcast under heavy\nload, and it is more noticeable when using a big receiver buffer.\nYou can find some results in [1] that show this problem.\n\n[1] http://1984.lsi.us.es/linux/netlink/\n\nThis patch also includes the use of sk_drop to account the number of\nnetlink messages drop due to overrun. This value is shown in\n/proc/net/netlink.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "be0c22a46cfb79ab2342bb28fde99afa94ef868e",
      "tree": "da112ef3066d75a7e5adcfe3355ad2b60ef1929b",
      "parents": [
        "2d96cf8cdfd625da51e5d237d564cd75d3147547"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Wed Feb 18 01:40:43 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 20 01:01:08 2009 -0800"
      },
      "message": "netlink: add NETLINK_BROADCAST_ERROR socket option\n\nThis patch adds NETLINK_BROADCAST_ERROR which is a netlink\nsocket option that the listener can set to make netlink_broadcast()\nreturn errors in the delivery to the caller. This option is useful\nif the caller of netlink_broadcast() do something with the result\nof the message delivery, like in ctnetlink where it drops a network\npacket if the event delivery failed, this is used to enable reliable\nlogging and state-synchronization. If this socket option is not set,\nnetlink_broadcast() only reports ESRCH errors and silently ignore\nENOBUFS errors, which is what most netlink_broadcast() callers\nshould do.\n\nThis socket option is based on a suggestion from Patrick McHardy.\nPatrick McHardy can exchange this patch for a beer from me ;).\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c19b0adb8dd33dbd10ff48e41971231c486855c",
      "tree": "8cbc7b353824647f3662aeb23c3849324bffac28",
      "parents": [
        "c0103606b7e3db191dcbaf988f28fa26aa711230"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Nov 20 04:08:29 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 04:08:29 2008 -0800"
      },
      "message": "netlink: avoid memset of 0 bytes sparse warning\n\nA netlink attribute padding of zero triggers this sparse warning:\n\ninclude/linux/netlink.h:245:8: warning: memset with byte count of 0\n\nAvoid the memset when the size parameter is constant and requires no padding.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9457afee85e0dfc2b5075a391d6f34463b4c2b90",
      "tree": "39cf1262030ef195876c916a6f64201d66c48312",
      "parents": [
        "40aecb1b13f50d96616abb612c17e59457f54263"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Jun 05 11:23:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 05 11:23:39 2008 -0700"
      },
      "message": "netlink: Remove nonblock parameter from netlink_attachskb\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2532386f480eefbdd67b48be55fb4fb3e5a6081c",
      "tree": "dd6a5a3c4116a67380a1336319c16632f04f80f9",
      "parents": [
        "436c405c7d19455a71f42c9bec5fd5e028f1eb4e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Apr 18 10:09:25 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 28 06:18:03 2008 -0400"
      },
      "message": "Audit: collect sessionid in netlink messages\n\nPreviously I added sessionid output to all audit messages where it was\navailable but we still didn\u0027t know the sessionid of the sender of\nnetlink messages.  This patch adds that information to netlink messages\nso we can audit who sent netlink messages.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "71d67e666e73e3b7e9ef124745ee2e454ac04be8",
      "tree": "e163b578c98f3c3ac69cb88ca6bf936d6ab4d698",
      "parents": [
        "9fe7c712fc955565c32e2f899d4ffeceaf028398"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Jan 31 16:45:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:23 2008 -0800"
      },
      "message": "[IPV4] fib_trie: rescan if key is lost during dump\n\nNormally during a dump the key of the last dumped entry is used for\ncontinuation, but since lock is dropped it might be lost. In that case\nfallback to the old counter based N^2 behaviour.  This means the dump\nwill end up skipping some routes which matches what FIB_HASH does.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b7c6ba6eb1234e35a74fb8ba8123232a7b1ba9e4",
      "tree": "672c08c95229a6ac242ab12a5195dceddb0f3127",
      "parents": [
        "4f84d82f7a623f8641af2574425c329431ff158f"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Mon Jan 28 14:41:19 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:07 2008 -0800"
      },
      "message": "[NETNS]: Consolidate kernel netlink socket destruction.\n\nCreate a specific helper for netlink kernel socket disposal. This just\nlet the code look better and provides a ground for proper disposal\ninside a namespace.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nTested-by: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f4d900a2cae94256f56be7769734100c7054bf00",
      "tree": "3991508447452b737d11769c5e1a8799812243bb",
      "parents": [
        "a59322be07c964e916d15be3df473fb7ba20c41e"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Dec 05 03:31:53 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:34 2008 -0800"
      },
      "message": "[NETLINK]: Mark attribute construction exception unlikely\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c3d8d1e30cace31fed6186a4b8c6b1401836d89c",
      "tree": "7122fccf27aa337438123071f3cb07999429de9e",
      "parents": [
        "230140cffa7feae90ad50bf259db1fa07674f3a7"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Nov 07 02:42:09 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Nov 07 04:15:12 2007 -0800"
      },
      "message": "[NETLINK]: Fix unicast timeouts\n\nCommit ed6dcf4a in the history.git tree broke netlink_unicast timeouts\nby moving the schedule_timeout() call to a new function that doesn\u0027t\npropagate the remaining timeout back to the caller. This means on each\nretry we start with the full timeout again.\n\nipc/mqueue.c seems to actually want to wait indefinitely so this\nbehaviour is retained.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cd40b7d3983c708aabe3d3008ec64ffce56d33b0",
      "tree": "0d6fe9cfd2f03fdeee126e317d4bfb145afc458d",
      "parents": [
        "aed815601f3f95281ab3a01f7e2cbe1bd54285a0"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Wed Oct 10 21:15:29 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 10 21:15:29 2007 -0700"
      },
      "message": "[NET]: make netlink user -\u003e kernel interface synchronious\n\nThis patch make processing netlink user -\u003e kernel messages synchronious.\nThis change was inspired by the talk with Alexey Kuznetsov about current\nnetlink messages processing. He says that he was badly wrong when introduced \nasynchronious user -\u003e kernel communication.\n\nThe call netlink_unicast is the only path to send message to the kernel\nnetlink socket. But, unfortunately, it is also used to send data to the\nuser.\n\nBefore this change the user message has been attached to the socket queue\nand sk-\u003esk_data_ready was called. The process has been blocked until all\npending messages were processed. The bad thing is that this processing\nmay occur in the arbitrary process context.\n\nThis patch changes nlk-\u003edata_ready callback to get 1 skb and force packet\nprocessing right in the netlink_unicast.\n\nKernel -\u003e user path in netlink_unicast remains untouched.\n\nEINTR processing for in netlink_run_queue was changed. It forces rtnl_lock\ndrop, but the process remains in the cycle until the message will be fully\nprocessed. So, there is no need to use this kludges now.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nAcked-by: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7ee015e0fa3c856416e9477aac4b850ec6f09017",
      "tree": "b91741163f47515d00faba9d36d37fcf03ded29f",
      "parents": [
        "3b71535f357a2e5d013a44a06b0c26a6a8d8fb5b"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Wed Oct 10 21:14:03 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 10 21:14:03 2007 -0700"
      },
      "message": "[NET]: cleanup 3rd argument in netlink_sendskb\n\nnetlink_sendskb does not use third argument. Clean it and save a couple of\nbytes.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nAcked-by: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8f4c1f9b049df3be11090f1c2c4738700302acae",
      "tree": "51271d32096e4419173072d120176b4428e52a11",
      "parents": [
        "9d5010db7ecfd6ec00119d3b185c4c0cd3265167"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Wed Sep 12 14:44:36 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:16 2007 -0700"
      },
      "message": "[NETLINK]: Introduce nested and byteorder flag to netlink attribute\n\nThis change allows the generic attribute interface to be used within\nthe netfilter subsystem where this flag was initially introduced.\n\nThe byte-order flag is yet unused, it\u0027s intended use is to\nallow automatic byte order convertions for all atomic types.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b4b510290b056b86611757ce1175a230f1080f53",
      "tree": "7bd1d45855ac7457be6d50338c60751f19e436d9",
      "parents": [
        "e9dc86534051b78e41e5b746cccc291b57a3a311"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Sep 12 13:05:38 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:09 2007 -0700"
      },
      "message": "[NET]: Support multiple network namespaces with netlink\n\nEach netlink socket will live in exactly one network namespace,\nthis includes the controlling kernel sockets.\n\nThis patch updates all of the existing netlink protocols\nto only support the initial network namespace.  Request\nby clients in other namespaces will get -ECONREFUSED.\nAs they would if the kernel did not have the support for\nthat netlink protocol compiled in.\n\nAs each netlink protocol is updated to be multiple network\nnamespace safe it can register multiple kernel sockets\nto acquire a presence in the rest of the network namespaces.\n\nThe implementation in af_netlink is a simple filter implementation\nat hash table insertion and hash table look up time.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "84659eb529b33572bb3f8c94e0978bd5d084bc7e",
      "tree": "3eddcba4b7e4779a51480c3cc24384ff2046b287",
      "parents": [
        "b4ff4f0419ae5db83553fab79d03a89c10d540a8"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Jul 18 15:47:05 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 18 15:47:05 2007 -0700"
      },
      "message": "[NETLIKN]: Allow removing multicast groups.\n\nAllow kicking listeners out of a multicast group when necessary\n(for example if that group is going to be removed.)\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b4ff4f0419ae5db83553fab79d03a89c10d540a8",
      "tree": "17695af46692c31ec1f33ffb68bc686064227913",
      "parents": [
        "c81de6addb913423acef6e692fd70688180ab5dd"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Jul 18 15:46:06 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 18 15:46:06 2007 -0700"
      },
      "message": "[NETLINK]: allocate group bitmaps dynamically\n\nAllow changing the number of groups for a netlink family\nafter it has been created, use RCU to protect the listeners\nbitmap keeping netlink_has_listeners() lock-free.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf130cb102487723bdfc53e4abde1227a7563797",
      "tree": "8a62c0bf9d31c6b33184cd71a278aa2a5b2598d8",
      "parents": [
        "af7cd373b01ccb8191dc16c77fff4cf2b11def50"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat May 05 11:42:03 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 05 11:42:03 2007 -0700"
      },
      "message": "[NETLINK]: Remove references to process ID\n\nPeople treating the *_pid fields in netlink as a process ID has caused\nendless confusion over the years.  The fact that our own netlink.h\ndoes this only adds to the confusion.\n\nSo here is a patch to change the comments to refer to it as the port\nID which hopefully will make it clear what the purpose of the fields\nreally is.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "af65bdfce98d7965fbe93a48b8128444a2eea024",
      "tree": "e6ac5ff82a0d5067213135cdf049b912b02e824d",
      "parents": [
        "b076deb8498e26c9aa2f44046fe5e9936ae2fb5a"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Apr 20 14:14:21 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:29:03 2007 -0700"
      },
      "message": "[NETLINK]: Switch cb_lock spinlock to mutex and allow to override it\n\nSwitch cb_lock to mutex and allow netlink kernel users to override it\nwith a subsystem specific mutex for consistent locking in dump callbacks.\nAll netlink_dump_start users have been audited not to rely on any\nside-effects of the previously used spinlock.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a36ca733375860b389c15ffdf6a5f92df64a33b6",
      "tree": "36801ab146f9aac5a87eb45bf3c324b3a7c8bac0",
      "parents": [
        "897933bcdf31c372e029dd4e2ecd573ebe6cfd9c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 19 22:28:08 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:36 2007 -0700"
      },
      "message": "[NETLINK]: Remove NLMSG_{NEW_ANSWER,CANCEL,END}\n\nNot used anywhere and defined inside __KERNEL__, Thomas acked this on irc.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "b529ccf2799c14346d1518e9bdf1f88f03643e99",
      "tree": "f899a5a5d66d2ca21724c1871ee3afeda6c4a670",
      "parents": [
        "965ffea43d4ebe8cd7b9fee78d651268dd7d23c5"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 19:08:35 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:34 2007 -0700"
      },
      "message": "[NETLINK]: Introduce nlmsg_hdr() helper\n\nFor the common \"(struct nlmsghdr *)skb-\u003edata\" sequence, so that we reduce the\nnumber of direct accesses to skb-\u003edata and for consistency with all the other\ncast skb member helpers.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27a884dc3cb63b93c2b3b643f5b31eed5f8a4d26",
      "tree": "5a267e40f9b94014be38dad5de0a52b6628834e0",
      "parents": [
        "be8bd86321fa7f06359d866ef61fb4d2f3e9dce9"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Apr 19 20:29:13 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:28 2007 -0700"
      },
      "message": "[SK_BUFF]: Convert skb-\u003etail to sk_buff_data_t\n\nSo that it is also an offset from skb-\u003ehead, reduces its size from 8 to 4 bytes\non 64bit architectures, allowing us to combine the 4 bytes hole left by the\nlayer headers conversion, reducing struct sk_buff size to 256 bytes, i.e. 4\n64byte cachelines, and since the sk_buff slab cache is SLAB_HWCACHE_ALIGN...\n:-)\n\nMany calculations that previously required that skb-\u003e{transport,network,\nmac}_header be first converted to a pointer now can be done directly, being\nmeaningful as offsets or pointers.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc910a27839584209726537698b596576940add4",
      "tree": "e03b021dcb5046ffb1e8154f0f4d4bc72c4c1c1d",
      "parents": [
        "ca043569390c528de4cd5ec9e07502f2bf4ecd1f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 25 20:27:59 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:45 2007 -0700"
      },
      "message": "[NETLINK]: Limit NLMSG_GOODSIZE to 8K.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "88b4a07e6610f4c93b08b0bb103318218db1e9f6",
      "tree": "32e2f2650bd4841ba6b2fafc724c2806219351b4",
      "parents": [
        "b5d5dfbd59577aed72263f22e28d3eaf98e1c6e5"
      ],
      "author": {
        "name": "Michael Halcrow",
        "email": "mhalcrow@us.ibm.com",
        "time": "Mon Feb 12 00:53:43 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:36 2007 -0800"
      },
      "message": "[PATCH] eCryptfs: Public key transport mechanism\n\nThis is the transport code for public key functionality in eCryptfs.  It\nmanages encryption/decryption request queues with a transport mechanism.\nCurrently, netlink is the only implemented transport.\n\nEach inode has a unique File Encryption Key (FEK).  Under passphrase, a File\nEncryption Key Encryption Key (FEKEK) is generated from a salt/passphrase\ncombo on mount.  This FEKEK encrypts each FEK and writes it into the header of\neach file using the packet format specified in RFC 2440.  This is all\nsymmetric key encryption, so it can all be done via the kernel crypto API.\n\nThese new patches introduce public key encryption of the FEK.  There is no\nasymmetric key encryption support in the kernel crypto API, so eCryptfs pushes\nthe FEK encryption and decryption out to a userspace daemon.  After\nconsidering our requirements and determining the complexity of using various\ntransport mechanisms, we settled on netlink for this communication.\n\neCryptfs stores authentication tokens into the kernel keyring.  These tokens\ncorrelate with individual keys.  For passphrase mode of operation, the\nauthentication token contains the symmetric FEKEK.  For public key, the\nauthentication token contains a PKI type and an opaque data blob managed by\nindividual PKI modules in userspace.\n\nEach user who opens a file under an eCryptfs partition mounted in public key\nmode must be running a daemon.  That daemon has the user\u0027s credentials and has\naccess to all of the keys to which the user should have access.  The daemon,\nwhen started, initializes the pluggable PKI modules available on the system\nand registers itself with the eCryptfs kernel module.  Userspace utilities\nregister public key authentication tokens into the user session keyring.\nThese authentication tokens correlate key signatures with PKI modules and PKI\nblobs.  The PKI blobs contain PKI-specific information necessary for the PKI\nmodule to carry out asymmetric key encryption and decryption.\n\nWhen the eCryptfs module parses the header of an existing file and finds a Tag\n1 (Public Key) packet (see RFC 2440), it reads in the public key identifier\n(signature).  The asymmetrically encrypted FEK is in the Tag 1 packet;\neCryptfs puts together a decrypt request packet containing the signature and\nthe encrypted FEK, then it passes it to the daemon registered for the\ncurrent-\u003eeuid via a netlink unicast to the PID of the daemon, which was\nregistered at the time the daemon was started by the user.\n\nThe daemon actually just makes calls to libecryptfs, which implements request\npacket parsing and manages PKI modules.  libecryptfs grabs the public key\nauthentication token for the given signature from the user session keyring.\nThis auth tok tells libecryptfs which PKI module should receive the request.\nlibecryptfs then makes a decrypt() call to the PKI module, and it passes along\nthe PKI block from the auth tok.  The PKI uses the blob to figure out how it\nshould decrypt the data passed to it; it performs the decryption and passes\nthe decrypted data back to libecryptfs.  libecryptfs then puts together a\nreply packet with the decrypted FEK and passes that back to the eCryptfs\nmodule.\n\nThe eCryptfs module manages these request callouts to userspace code via\nmessage context structs.  The module maintains an array of message context\nstructs and places the elements of the array on two lists: a free and an\nallocated list.  When eCryptfs wants to make a request, it moves a msg ctx\nfrom the free list to the allocated list, sets its state to pending, and fires\noff the message to the user\u0027s registered daemon.\n\nWhen eCryptfs receives a netlink message (via the callback), it correlates the\nmsg ctx struct in the alloc list with the data in the message itself.  The\nmsg-\u003eindex contains the offset of the array of msg ctx structs.  It verifies\nthat the registered daemon PID is the same as the PID of the process that sent\nthe message.  It also validates a sequence number between the received packet\nand the msg ctx.  Then, it copies the contents of the message (the reply\npacket) into the msg ctx struct, sets the state in the msg ctx to done, and\nwakes up the process that was sleeping while waiting for the reply.\n\nThe sleeping process was whatever was performing the sys_open().  This process\noriginally called ecryptfs_send_message(); it is now in\necryptfs_wait_for_response().  When it wakes up and sees that the msg ctx\nstate was set to done, it returns a pointer to the message contents (the reply\npacket) and returns.  If all went well, this packet contains the decrypted\nFEK, which is then copied into the crypt_stat struct, and life continues as\nnormal.\n\nThe case for creation of a new file is very similar, only instead of a decrypt\nrequest, eCryptfs sends out an encrypt request.\n\n\u003e - We have a great clod of key mangement code in-kernel.  Why is that\n\u003e   not suitable (or growable) for public key management?\n\neCryptfs uses Howells\u0027 keyring to store persistent key data and PKI state\ninformation.  It defers public key cryptographic transformations to userspace\ncode.  The userspace data manipulation request really is orthogonal to key\nmanagement in and of itself.  What eCryptfs basically needs is a secure way to\ncommunicate with a particular daemon for a particular task doing a syscall,\nbased on the UID.  Nothing running under another UID should be able to access\nthat channel of communication.\n\n\u003e - Is it appropriate that new infrastructure for public key\n\u003e management be private to a particular fs?\n\nThe messaging.c file contains a lot of code that, perhaps, could be extracted\ninto a separate kernel service.  In essence, this would be a sort of\nrequest/reply mechanism that would involve a userspace daemon.  I am not aware\nof anything that does quite what eCryptfs does, so I was not aware of any\nexisting tools to do just what we wanted.\n\n\u003e   What happens if one of these daemons exits without sending a quit\n\u003e   message?\n\nThere is a stale uid\u003c-\u003epid association in the hash table for that user.  When\nthe user registers a new daemon, eCryptfs cleans up the old association and\ngenerates a new one.  See ecryptfs_process_helo().\n\n\u003e - _why_ does it use netlink?\n\nNetlink provides the transport mechanism that would minimize the complexity of\nthe implementation, given that we can have multiple daemons (one per user).  I\nexplored the possibility of using relayfs, but that would involve having to\nintroduce control channels and a protocol for creating and tearing down\nchannels for the daemons.  We do not have to worry about any of that with\nnetlink.\n\nSigned-off-by: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e9b82693542003b028c8494e9e3c49615b91ce7",
      "tree": "955620d0b859b3e5817faafcbe7de6b355bb7d05",
      "parents": [
        "d61c167dd0797a16584f7a922dd5d50efad1d28a"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Mon Nov 27 09:25:58 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:30:43 2006 -0800"
      },
      "message": "[NETLINK]: Remove unused dst_pid field in netlink_skb_parms\n\nThe destination PID is passed directly to netlink_unicast()\nrespectively netlink_multicast().\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "339bf98ffc6a8d8eb16fc532ac57ffbced2f8a68",
      "tree": "499ad948863d2753ca10283dcf006ad28954538e",
      "parents": [
        "a94f723d595ee085f81b1788d18e031af7eeba91"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Fri Nov 10 14:10:15 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:11 2006 -0800"
      },
      "message": "[NETLINK]: Do precise netlink message allocations where possible\n\nAccount for the netlink message header size directly in nlmsg_new()\ninstead of relying on the caller calculate it correctly.\n\nReplaces error handling of message construction functions when\nconstructing notifications with bug traps since a failure implies\na bug in calculating the size of the skb.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nAcked-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "84314fd4740ad73550c76dee4a9578979d84af48",
      "tree": "f8902dbe4134f9bab4f6886bb6c0b2a30797ceaa",
      "parents": [
        "deb81d80ba27da8dfabc29ccb5977db8f4942a0a"
      ],
      "author": {
        "name": "James Smart",
        "email": "James.Smart@Emulex.Com",
        "time": "Fri Aug 18 17:30:09 2006 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.il.steeleye.com",
        "time": "Sat Sep 02 15:33:49 2006 -0500"
      },
      "message": "[SCSI] SCSI and FC Transport: add netlink support for posting of transport events\n\nThis patch formally adds support for the posting of FC events via netlink.\nIt is a followup to the original RFC at:\n  http://marc.theaimsgroup.com/?l\u003dlinux-scsi\u0026m\u003d114530667923464\u0026w\u003d2\nand the initial posting at:\n  http://marc.theaimsgroup.com/?l\u003dlinux-scsi\u0026m\u003d115507374832500\u0026w\u003d2\n\nThe patch has been updated to optimize the send path, per the discussions\nin the initial posting.\n\nPer discussions at the Storage Summit and at OLS, we are to use netlink for\nasync events from transports. Also per discussions, to avoid a netlink\nprotocol per transport, I\u0027ve create a single NETLINK_SCSITRANSPORT protocol,\nwhich can then be used by all transports.\n\nThis patch:\n- Creates new files scsi_netlink.c and scsi_netlink.h, which contains the\n  single and shared definitions for the SCSI Transport. It is tied into the\n  base SCSI subsystem intialization.\n  Contains a single interface routine, scsi_send_transport_event(), for a\n  transport to send an event (via multicast to a protocol specific group).\n- Creates a new scsi_netlink_fc.h file, which contains the FC netlink event\n  messages\n- Adds 3 new routines to the fc transport:\n   fc_get_event_number() -  to get a FC event #\n   fc_host_post_event()  -  to send a simple FC event (32 bits of data)\n   fc_host_post_vendor_event() - to send a Vendor unique event, with\n                                 arbitrary amounts of data.\n\n   Note: the separation of event number allows for a LLD to send a standard\n     event, followed by vendor-specific data for the event.\n\nNote: This patch assumes 2 prior fc transport patches have been installed:\n   http://marc.theaimsgroup.com/?l\u003dlinux-scsi\u0026m\u003d115555807316329\u0026w\u003d2\n   http://marc.theaimsgroup.com/?l\u003dlinux-scsi\u0026m\u003d115581614930261\u0026w\u003d2\n\n   Sorry - next time I\u0027ll do something like making these individual\n   patches of the same posting when I know they\u0027ll be posted closely\n   together.\n\nSigned-off-by: James Smart \u003cJames.Smart@emulex.com\u003e\n\nTidy up configuration not to make SCSI always select NET\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n"
    },
    {
      "commit": "bb5427b5466782ba0bbf56a4ed752e08b65a5d08",
      "tree": "e59a0c4c6fa7ede28cfc245d320dda467831ddf7",
      "parents": [
        "b6043fcab4b2b06b9fcde4c783ab253cdc2c1129"
      ],
      "author": {
        "name": "Evgeniy Polyakov",
        "email": "johnpol@2ka.mipt.ru",
        "time": "Thu Mar 23 19:11:58 2006 +0300"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jun 22 11:22:50 2006 -0700"
      },
      "message": "[PATCH] w1: netlink: Mark netlink group 1 as unused.\n\nnetlink_w1 was moved to connector.\n\nSigned-off-by: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "e7c3497013a7e5496ce3d5fd3c73b5cf5af7a56e",
      "tree": "2a57da5e958011b300256988e414387b1455660c",
      "parents": [
        "9c7aa6aa74fa8a5cda36e54cbbe4fffe0214497d"
      ],
      "author": {
        "name": "Steve Grubb",
        "email": "sgrubb@redhat.com",
        "time": "Mon Apr 03 09:08:13 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 01 06:09:58 2006 -0400"
      },
      "message": "[PATCH] Reworked patch for labels on user space messages\n\nThe below patch should be applied after the inode and ipc sid patches.\nThis patch is a reworking of Tim\u0027s patch that has been updated to match\nthe inode and ipc patches since its similar.\n\n[updated:\n\u003e  Stephen Smalley also wanted to change a variable from isec to tsec in the\n\u003e  user sid patch.                                                              ]\n\nSigned-off-by: Steve Grubb \u003csgrubb@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4277a083ecd2c8771058641132bcecea04ca6608",
      "tree": "c35d659c63fa4d64e2569e5eebd76e1b3fba9a15",
      "parents": [
        "a24276924875802853b5bdc12c56d29f1c1bbc79"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Mar 20 18:52:01 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 18:52:01 2006 -0800"
      },
      "message": "[NETLINK]: Add netlink_has_listeners for avoiding unneccessary event message generation\n\nKeep a bitmask of multicast groups with subscribed listeners to let\nnetlink users check for listeners before generating multicast\nmessages.\n\nQueries don\u0027t perform any locking, which may result in false\npositives, it is guaranteed however that any new subscriptions are\nvisible before bind() or setsockopt() return.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nACKed-by: Jamal Hadi Salim\u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a70ea994a0d83fd0151a070be72b87d014ef0a7e",
      "tree": "40e3bf28a3fa36f20b4625c241ca14abb0c1a00d",
      "parents": [
        "ad91e6fa0d331e419e4692d146cdc04e594a5bea"
      ],
      "author": {
        "name": "Alexey Kuznetsov",
        "email": "kuznet@ms2.inr.ac.ru",
        "time": "Thu Feb 09 16:40:11 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Feb 09 16:43:38 2006 -0800"
      },
      "message": "[NETLINK]: Fix a severe bug\n\nnetlink overrun was broken while improvement of netlink.\nDestination socket is used in the place where it was meant to be source socket,\nso that now overrun is never sent to user netlink sockets, when it should be,\nand it even can be set on kernel socket, which results in complete deadlock\nof rtnetlink.\n\nSuggested fix is to restore status quo passing source socket as additional\nargument to netlink_attachskb().\n\nA little explanation: overrun is set on a socket, when it failed\nto receive some message and sender of this messages does not or even\nhave no way to handle this error. This happens in two cases:\n1. when kernel sends something. Kernel never retransmits and cannot\n   wait for buffer space.\n2. when user sends a broadcast and the message was not delivered\n   to some recipients.\n\nSigned-off-by: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bfa83a9e03cf8d501c6272999843470afecb32ed",
      "tree": "1584441824b67bee52906a1345d8277e6965fe1b",
      "parents": [
        "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Nov 10 02:25:51 2005 +0100"
      },
      "committer": {
        "name": "Thomas Graf",
        "email": "tgr@axs.localdomain",
        "time": "Thu Nov 10 02:26:40 2005 +0100"
      },
      "message": "[NETLINK]: Type-safe netlink messages/attributes interface\n\nIntroduces a new type-safe interface for netlink message and\nattributes handling. The interface is fully binary compatible\nwith the old interface towards userspace. Besides type safety,\nthis interface features attribute validation capabilities,\nsimplified message contstruction, and documentation.\n\nThe resulting netlink code should be smaller, less error prone\nand easier to understand.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "20ae975dfd54de581287b2ca8a1ad97099ab0396",
      "tree": "0fd1f38658eab884ffbe8638effc822b8cfaf0c5",
      "parents": [
        "3c05d92ed49f644d1f5a960fa48637d63b946016"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Sep 14 20:52:37 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Sep 14 20:52:37 2005 -0700"
      },
      "message": "[NETLINK]: Reserve a slot for NETLINK_GENERIC.\n\nAs requested by Jamal.\n\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"
    },
    {
      "commit": "6ed8a48582c08432e84e5610564c1d25fe00dd7f",
      "tree": "3508cea2d856ec8405059815bd9eba4a67c8a5cd",
      "parents": [
        "20380731bc2897f2952ae055420972ded4cd786e"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Aug 16 19:02:15 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:01:35 2005 -0700"
      },
      "message": "[NETLINK]: Fix sparse warnings\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "066286071d3542243baa68166acb779187c848b3",
      "tree": "ef6604f16ceb13842a30311654e6a64aac716c48",
      "parents": [
        "9a4595bc7e67962f13232ee55a64e063062c3a99"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Aug 15 12:33:26 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:01:11 2005 -0700"
      },
      "message": "[NETLINK]: Add \"groups\" argument to netlink_kernel_create\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9a4595bc7e67962f13232ee55a64e063062c3a99",
      "tree": "9691d77701cad7e0d4fb62390acf525f3adb9d60",
      "parents": [
        "f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Aug 15 12:32:15 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:01:07 2005 -0700"
      },
      "message": "[NETLINK]: Add set/getsockopt options to support more than 32 groups\n\nNETLINK_ADD_MEMBERSHIP/NETLINK_DROP_MEMBERSHIP are used to join/leave\ngroups, NETLINK_PKTINFO is used to enable nl_pktinfo control messages\nfor received packets to get the extended destination group number.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d629b836d151d43332492651dd841d32e57ebe3b",
      "tree": "0276547438963b51b8d92df201e91d867c7fa9c0",
      "parents": [
        "77247bbb3094246be9d057e7be442cc708f123a8"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sun Aug 14 19:27:50 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:00:49 2005 -0700"
      },
      "message": "[NETLINK]: Use group numbers instead of bitmasks internally\n\nUsing the group number allows increasing the number of groups without\nbeeing limited by the size of the bitmask. It introduces one limitation\nfor netlink users: messages can\u0027t be broadcasted to multiple groups anymore,\nhowever this feature was never used inside the kernel.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "db080529798b497eb5a37b92a25e966be5a7dd5d",
      "tree": "8986bf4196a343bdf181bc9f667bdd131c05186d",
      "parents": [
        "43e943c32b9213b5d25407b281c94aaa474fd9a6"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sun Aug 14 19:26:34 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:00:39 2005 -0700"
      },
      "message": "[NETLINK]: Remove unused groups member from struct netlink_skb_parms\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "73c1f4a033675f168df7e98bbeeafca3c644b8a6",
      "tree": "041e0c203be710b39c8b3a1c18d23e7a50e321a6",
      "parents": [
        "4f5736c4c7cf6f9bd8db82b712cfdd51c87e06b9"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Aug 12 12:51:49 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:57:44 2005 -0700"
      },
      "message": "[TCPDIAG]: Just rename everything to inet_diag\n\nNext changeset will rename tcp_diag.[ch] to inet_diag.[ch].\n\nI\u0027m taking this longer route so as to easy review, making clear the changes\nmade all along the way.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4fdb3bb723db469717c6d38fda667d8b0fa86ebd",
      "tree": "43d82e717922e6319cf8a8f9dc5ee902c651b491",
      "parents": [
        "020b4c12dbe3868d792a01d7c1470cd837abe10f"
      ],
      "author": {
        "name": "Harald Welte",
        "email": "laforge@netfilter.org",
        "time": "Tue Aug 09 19:40:55 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:35:08 2005 -0700"
      },
      "message": "[NETLINK]: Add properly module refcounting for kernel netlink sockets.\n\n- Remove bogus code for compiling netlink as module\n- Add module refcounting support for modules implementing a netlink\n  protocol\n- Add support for autoloading modules that implement a netlink protocol\n  as soon as someone opens a socket for that protocol\n\nSigned-off-by: Harald Welte \u003claforge@netfilter.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4d479e40e1748a877a24015fc6727b27b77110cd",
      "tree": "6b6983091e6c7ef6f648282c57ed7a725a2db72d",
      "parents": [
        "7d3f4c97723c4ec4e5d85e6e70084b02e6be8788"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 08 13:48:02 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 08 13:48:02 2005 -0700"
      },
      "message": "[NETLINK]: Allocate and kill some netlink numbers.\n\nNETLINK_ARPD is unused, allocate it to the Open-iSCSI folks.\n\nNETLINK_ROUTE6 and NETLINK_TAPBASE are no longer used, delete\nthem.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "48647feed9f7a2d839c6ada12147b341833646e8",
      "tree": "a98aa36be19ce7706cef71418f143d30af28b899",
      "parents": [
        "227510c7f175c44b12cdff6eab316e53dbf71f92"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 24 19:30:28 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 24 19:30:28 2005 -0700"
      },
      "message": "[W1]: Do not use NFLOG netlink number.\n\nUse the reserved by never used NETLINK_SKIP value instead.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "63522f7fdb624adef20cb9d90c7effcd5b6301b2",
      "tree": "12a63b8ce77baffc08f577be913bea02132f9812",
      "parents": [
        "200d481f28be4522464bb849dd0eb5f8cb6be781"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 11 14:29:11 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 11 14:29:11 2005 -0700"
      },
      "message": "[NETLINK]: Reserve NETLINK_NETFILTER.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b3563c4fbff906991a1b4ef4609f99cca2a0de6a",
      "tree": "e5c0e4cb4a0a48ebeeb8b1515128c115c5aa528c",
      "parents": [
        "4095ebf1e641b0f37ee1cd04c903bb85cf4ed25b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jun 28 12:54:43 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 28 12:54:43 2005 -0700"
      },
      "message": "[NETLINK]: Clear padding in netlink messages\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "18b504e25fd617bee8830d2cdcaff7fb7b5931bb",
      "tree": "6e7daab06749832d0e40ffae6572abc297d02d11",
      "parents": [
        "1d345dac1f30af1cd9f3a1faa12f9f18f17f236e"
      ],
      "author": {
        "name": "Alexey Kuznetsov",
        "email": "kuznet@ms2.inr.ac.ru",
        "time": "Tue Jun 21 12:38:48 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 21 12:38:48 2005 -0700"
      },
      "message": "[NETLINK]: netlink_callback structure needs 5 args not 4\n\nnet/ipv4/tcp_diag.c uses up to -\u003eargs[4]\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "246955fe4c38bd706ae30e37c64892c94213775d",
      "tree": "23583698ce7c58e1643414245690afca33618540",
      "parents": [
        "f6e276ee67c0ac9efafd24bc6f7a84aa359656df"
      ],
      "author": {
        "name": "Robert Olsson",
        "email": "Robert.Olsson@data.slu.se",
        "time": "Mon Jun 20 13:36:39 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 20 13:36:39 2005 -0700"
      },
      "message": "[NETLINK]: fib_lookup() via netlink\n\nBelow is a more generic patch to do fib_lookup via netlink. For others \nwe should say that we discussed this as a way to verify route selection.\nIt\u0027s also possible there are others uses for this.\n\nIn short the fist half of struct fib_result_nl is filled in by caller \nand netlink call fills in the other half and returns it.\n\nIn case anyone is interested there is a corresponding user app to compare \nthe full routing table this was used to test implementation of the LC-trie. \n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1797754ea7ee5e0d859b0a32506ff999f8d5fb71",
      "tree": "a35d05f9106d903412a6fff714be38427fc4d0fa",
      "parents": [
        "af0d114176720c2100dfa624ab433796d333d730"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Sat Jun 18 22:53:48 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 18 22:53:48 2005 -0700"
      },
      "message": "[NETLINK]: Introduce NLMSG_NEW macro to better handle netlink flags\n\nIntroduces a new macro NLMSG_NEW which extends NLMSG_PUT but takes\na flags argument. NLMSG_PUT stays there for compatibility but now\ncalls NLMSG_NEW with flags \u003d\u003d 0. NLMSG_PUT_ANSWER is renamed to\nNLMSG_NEW_ANSWER which now also takes a flags argument.\n\nAlso converts the users of NLMSG_PUT_ANSWER to use NLMSG_NEW_ANSWER\nand fixes the two direct users of __nlmsg_put to either provide\nthe flags or use NLMSG_NEW(_ANSWER).\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f88a10d65620d97b6d0a7e352a3493c1b7e7409b",
      "tree": "8d38311e479d5deb11cfab2c052c83c8b1321132",
      "parents": [
        "e52c1f17e4ea8e61bd26eb25f1a184202693c2b9"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Sat Jun 18 22:50:12 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 18 22:50:12 2005 -0700"
      },
      "message": "[NETLINK]: New message building macros\n\n NLMSG_PUT_ANSWER(skb, nlcb, type, length)\n   Start a new netlink message as answer to a request,\n   returns the message header.\n\n NLMSG_END(skb, nlh)\n   End a netlink message, fixes total message length,\n   returns skb-\u003elen.\n\n NLMSG_CANCEL(skb, nlh)\n   Cancel the building process and trim whole message\n   from skb again, returns -1.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c94c257c88c517f251da273a15c654224c7b6e21",
      "tree": "992dd50f6bb13a70b04450cdfe0dbfb3c7b17ef5",
      "parents": [
        "85c8721ff3bc96b702427a440616079e8daf8a2f"
      ],
      "author": {
        "name": "Serge Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Fri Apr 29 16:27:17 2005 +0100"
      },
      "committer": {
        "name": "",
        "email": "dwmw2@shinybook.infradead.org",
        "time": "Fri Apr 29 16:27:17 2005 +0100"
      },
      "message": "Add audit uid to netlink credentials\n\nMost audit control messages are sent over netlink.In order to properly\nlog the identity of the sender of audit control messages, we would like\nto add the loginuid to the netlink_creds structure, as per the attached\npatch.\n\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
