)]}'
{
  "log": [
    {
      "commit": "31fe62b9586643953f0c0c37a6357dafc69034e2",
      "tree": "69f9990423969df4ecbaea9d1e8de748284bea5e",
      "parents": [
        "d0a24a3516fb36023bef28d2355fa34e7f32029f"
      ],
      "author": {
        "name": "Tim Bird",
        "email": "tim.bird@am.sony.com",
        "time": "Wed May 23 13:33:35 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 24 00:28:21 2012 -0400"
      },
      "message": "mm: add a low limit to alloc_large_system_hash\n\nUDP stack needs a minimum hash size value for proper operation and also\nuses alloc_large_system_hash() for proper NUMA distribution of its hash\ntables and automatic sizing depending on available system memory.\n\nOn some low memory situations, udp_table_init() must ignore the\nalloc_large_system_hash() result and reallocs a bigger memory area.\n\nAs we cannot easily free old hash table, we leak it and kmemleak can\nissue a warning.\n\nThis patch adds a low limit parameter to alloc_large_system_hash() to\nsolve this problem.\n\nWe then specify UDP_HTABLE_SIZE_MIN for UDP/UDPLite hash table\nallocation.\n\nReported-by: Mark Asselstine \u003cmark.asselstine@windriver.com\u003e\nReported-by: Tim Bird \u003ctim.bird@am.sony.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "413c27d8697751f72d2d6cf289140a8e060a8032",
      "tree": "ed13d36cfc8651b542eca7c1f92e4f9a09fe6e7d",
      "parents": [
        "b37f4d7b011955c84cdbb8c370927d93701fb174"
      ],
      "author": {
        "name": "Eldad Zack",
        "email": "eldad@fogrefinery.com",
        "time": "Sat May 19 14:13:18 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 20 04:06:17 2012 -0400"
      },
      "message": "net/ipv4: replace simple_strtoul with kstrtoul\n\nReplace simple_strtoul with kstrtoul in three similar occurrences, all setup\nhandlers:\n* route.c: set_rhash_entries\n* tcp.c: set_thash_entries\n* udp.c: set_uhash_entries\n\nAlso check if the conversion failed.\n\nSigned-off-by: Eldad Zack \u003celdad@fogrefinery.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f545a38f74584cc7424cb74f792a00c6d2589485",
      "tree": "b272cbfed3267a7750f55f23989e1b070ae6ac3e",
      "parents": [
        "b98985073bc5403ef1320866e4ef8bbc5d587ceb"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun Apr 22 23:34:26 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 23 22:28:28 2012 -0400"
      },
      "message": "net: add a limit parameter to sk_add_backlog()\n\nsk_add_backlog() \u0026 sk_rcvqueues_full() hard coded sk_rcvbuf as the\nmemory limit. We need to make this limit a parameter for TCP use.\n\nNo functional change expected in this patch, all callers still using the\nold sk_rcvbuf limit.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Maciej Żenczykowski \u003cmaze@google.com\u003e\nCc: Yuchung Cheng \u003cycheng@google.com\u003e\nCc: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nCc: Rick Jones \u003crick.jones2@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "95c961747284a6b83a5e2d81240e214b0fa3464d",
      "tree": "c7be86a00db3605a48a03109fafcbe31039ca2e0",
      "parents": [
        "5e73ea1a31c3612aa6dfe44f864ca5b7b6a4cff9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Apr 15 05:58:06 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 15 12:44:40 2012 -0400"
      },
      "message": "net: cleanup unsigned to unsigned int\n\nUse of \"unsigned int\" is preferred to bare \"unsigned\" in net tree.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5e73ea1a31c3612aa6dfe44f864ca5b7b6a4cff9",
      "tree": "ab5eebe93e10e7e69042b15603a5b3844c049f6b",
      "parents": [
        "586d17c5a01bf1ae4e215adc6c48457eee5482bc"
      ],
      "author": {
        "name": "Daniel Baluta",
        "email": "dbaluta@ixiacom.com",
        "time": "Sun Apr 15 01:34:41 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 15 12:37:19 2012 -0400"
      },
      "message": "ipv4: fix checkpatch errors\n\nFix checkpatch errors of the following type:\n\t* ERROR: \"foo * bar\" should be \"foo *bar\"\n\t* ERROR: \"(foo*)\" should be \"(foo *)\"\n\nSigned-off-by: Daniel Baluta \u003cdbaluta@ixiacom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "447167bf565a474ff0cfb0f41d54936937479e97",
      "tree": "38b03cb4e23bec19939545575e36f7395c5b156e",
      "parents": [
        "77577bf93275b485cecb4f358a085949c32e9dcd"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Apr 11 23:05:28 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 13 13:39:37 2012 -0400"
      },
      "message": "udp: intoduce udp_encap_needed static_key\n\nMost machines dont use UDP encapsulation (L2TP)\n\nAdds a static_key so that udp_queue_rcv_skb() doesnt have to perform a\ntest if L2TP never setup the encap_rcv on a socket.\n\nIdea of this patch came after Simon Horman proposal to add a hook on TCP\nas well.\n\nIf static_key is not yet enabled, the fast path does a single JMP .\n\nWhen static_key is enabled, JMP destination is patched to reach the real\nencap_type/encap_rcv logic, possibly adding cache misses.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nCc: dev@openvswitch.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "afd465030acb4098abcb6b965a5aebc7ea2209e0",
      "tree": "59c93e8eda99cd59339dfbb77f1d2c4f79c634ee",
      "parents": [
        "058bd4d2a4ff0aaa4a5381c67e776729d840c785"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Mar 12 07:03:32 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 12 17:05:21 2012 -0700"
      },
      "message": "net: ipv4: Standardize prefixes for message logging\n\nAdd #define pr_fmt(fmt) as appropriate.\n\nAdd \"IPv4: \", \"TCP: \", and \"IPsec: \" to appropriate files.\nStandardize on \"UDPLite: \" for appropriate uses.\nSome prefixes were previously \"UDPLITE: \" and \"UDP-Lite: \".\n\nAdd KBUILD_MODNAME \": \" to icmp and gre.\nRemove embedded prefixes as appropriate.\n\nAdd missing \"\\n\" to pr_info in gre.c.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3f518bf745cbd6007d8069100fb9cb09e960c872",
      "tree": "debbe9e9340d46080f1b82e4149a2427545c4aef",
      "parents": [
        "4934b0329f7150dcb5f90506860e2db32274c755"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Feb 21 07:30:58 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 21 14:58:57 2012 -0500"
      },
      "message": "datagram: Add offset argument to __skb_recv_datagram\n\nThis one is only considered for MSG_PEEK flag and the value pointed by\nit specifies where to start peeking bytes from. If the offset happens to\npoint into the middle of the returned skb, the offset within this skb is\nput back to this very argument.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "76e21053b5bf33a07c76f99d27a74238310e3c71",
      "tree": "70ac2a67be8f19da96896950447567e156975149",
      "parents": [
        "43480aecb1f538d4f6dd8b2c5d2b71fb98659072"
      ],
      "author": {
        "name": "Erich E. Hoover",
        "email": "ehoover@mines.edu",
        "time": "Wed Feb 08 09:11:07 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 08 15:52:45 2012 -0500"
      },
      "message": "ipv4: Implement IP_UNICAST_IF socket option.\n\nThe IP_UNICAST_IF feature is needed by the Wine project.  This patch\nimplements the feature by setting the outgoing interface in a similar\nfashion to that of IP_MULTICAST_IF.  A separate option is needed to\nhandle this feature since the existing options do not provide all of\nthe characteristics required by IP_UNICAST_IF, a summary is provided\nbelow.\n\nSO_BINDTODEVICE:\n* SO_BINDTODEVICE requires administrative privileges, IP_UNICAST_IF\ndoes not.  From reading some old mailing list articles my\nunderstanding is that SO_BINDTODEVICE requires administrative\nprivileges because it can override the administrator\u0027s routing\nsettings.\n* The SO_BINDTODEVICE option restricts both outbound and inbound\ntraffic, IP_UNICAST_IF only impacts outbound traffic.\n\nIP_PKTINFO:\n* Since IP_PKTINFO and IP_UNICAST_IF are independent options,\nimplementing IP_UNICAST_IF with IP_PKTINFO will likely break some\napplications.\n* Implementing IP_UNICAST_IF on top of IP_PKTINFO significantly\ncomplicates the Wine codebase and reduces the socket performance\n(doing this requires a lot of extra communication between the\n\"server\" and \"user\" layers).\n\nbind():\n* bind() does not work on broadcast packets, IP_UNICAST_IF is\nspecifically intended to work with broadcast packets.\n* Like SO_BINDTODEVICE, bind() restricts both outbound and inbound\ntraffic.\n\nSigned-off-by: Erich E. Hoover \u003cehoover@mines.edu\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fce823381e3c082ba1b2e15d5151d1aa8afdc9e9",
      "tree": "fe265662f80f822246f7705d3b2ac1e44fa84579",
      "parents": [
        "1942c518ca017f376b267a7c5e78c15d37202442"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Fri Dec 09 06:23:34 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 09 14:14:08 2011 -0500"
      },
      "message": "udp: Export code sk lookup routines\n\nThe UDP diag get_exact handler will require them to find a\nsocket by provided net, [sd]addr-s, [sd]ports and device.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b3613118eb30a589d971e4eccbbb2a1314f5dfd4",
      "tree": "868c1ee59e1b5c19a4f2e43716400d0001a994e5",
      "parents": [
        "7505afe28c16a8d386624930a018d0052c75d687",
        "5983fe2b29df5885880d7fa3b91aca306c7564ef"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 02 13:49:21 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 02 13:49:21 2011 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "59c2cdae2791c0b2ee13d148edc6b771e7e7953f",
      "tree": "1e1a9d09a881a0283d991e91f39a36d6de045d54",
      "parents": [
        "b03b6dd58cef7d15b7c46a6729b83dd535ef08ab"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 01 14:12:55 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 01 14:12:55 2011 -0500"
      },
      "message": "Revert \"udp: remove redundant variable\"\n\nThis reverts commit 81d54ec8479a2c695760da81f05b5a9fb2dbe40a.\n\nIf we take the \"try_again\" goto, due to a checksum error,\nthe \u0027len\u0027 has already been truncated.  So we won\u0027t compute\nthe same values as the original code did.\n\nReported-by: paul bilke \u003cfsmail@conspiracy.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c8f44affb7244f2ac3e703cab13d55ede27621bb",
      "tree": "62e7aea2916a8d7cab825fe500670c5113854c0f",
      "parents": [
        "a59e2ecb859f2ab03bb2e230709f8039472ad2c3"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Nov 15 15:29:55 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 16 17:43:10 2011 -0500"
      },
      "message": "net: introduce and use netdev_features_t for device features sets\n\nv2:\tadd couple missing conversions in drivers\n\tsplit unexporting netdev_fix_features()\n\timplemented %pNF\n\tconvert sock::sk_route_(no?)caps\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d826eb14ecef3574b6b3be55e5f4329f4a76fbf3",
      "tree": "e072ee768f065be430543709d48f08a36f4eed2d",
      "parents": [
        "acb32ba3dee66d58704caeeb8c6ff95f60efdc66"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Nov 09 07:24:35 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 09 16:36:27 2011 -0500"
      },
      "message": "ipv4: PKTINFO doesnt need dst reference\n\nLe lundi 07 novembre 2011 à 15:33 +0100, Eric Dumazet a écrit :\n\n\u003e At least, in recent kernels we dont change dst-\u003erefcnt in forwarding\n\u003e patch (usinf NOREF skb-\u003edst)\n\u003e\n\u003e One particular point is the atomic_inc(dst-\u003erefcnt) we have to perform\n\u003e when queuing an UDP packet if socket asked PKTINFO stuff (for example a\n\u003e typical DNS server has to setup this option)\n\u003e\n\u003e I have one patch somewhere that stores the information in skb-\u003ecb[] and\n\u003e avoid the atomic_{inc|dec}(dst-\u003erefcnt).\n\u003e\n\nOK I found it, I did some extra tests and believe its ready.\n\n[PATCH net-next] ipv4: IP_PKTINFO doesnt need dst reference\n\nWhen a socket uses IP_PKTINFO notifications, we currently force a dst\nreference for each received skb. Reader has to access dst to get needed\ninformation (rt_iif \u0026 rt_spec_dst) and must release dst reference.\n\nWe also forced a dst reference if skb was put in socket backlog, even\nwithout IP_PKTINFO handling. This happens under stress/load.\n\nWe can instead store the needed information in skb-\u003ecb[], so that only\nsoftirq handler really access dst, improving cache hit ratios.\n\nThis removes two atomic operations per packet, and false sharing as\nwell.\n\nOn a benchmark using a mono threaded receiver (doing only recvmsg()\ncalls), I can reach 720.000 pps instead of 570.000 pps.\n\nIP_PKTINFO is typically used by DNS servers, and any multihomed aware\nUDP application.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0ad92ad03aa444b312bd318b0341011a8be09d13",
      "tree": "a6acc6651c301af1a5c7edd4258a441da091bfd3",
      "parents": [
        "501e89d3aef10f9a5b79137fbb0bcd5bf9cac2ac"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 01 12:56:59 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 02 00:51:27 2011 -0400"
      },
      "message": "udp: fix a race in encap_rcv handling\n\nudp_queue_rcv_skb() has a possible race in encap_rcv handling, since\nthis pointer can be changed anytime.\n\nWe should use ACCESS_ONCE() to close the race.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "73cb88ecb950ee67906d02354f781ea293bcf895",
      "tree": "fbb4a777410d5a5653537bcd3ee7e954bc9ba5a0",
      "parents": [
        "98f41f694f46085fda475cdee8cc0b6d2c5e6f1f"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Oct 30 06:46:30 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 01 17:56:14 2011 -0400"
      },
      "message": "net: make the tcp and udp file_operations for the /proc stuff const\n\nthe tcp and udp code creates a set of struct file_operations at runtime\nwhile it can also be done at compile time, with the added benefit of then\nhaving these file operations be const.\n\nthe trickiest part was to get the \"THIS_MODULE\" reference right; the naive\nmethod of declaring a struct in the place of registration would not work\nfor this reason.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bdeab991918663aed38757904219e8398214334c",
      "tree": "bc6c02da7ed88e3e568677b4a35fb4e55de363de",
      "parents": [
        "792df22cd0499b4e662d4618b0008fdcfef8b04e"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Sun Aug 14 19:45:55 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 17 20:06:03 2011 -0700"
      },
      "message": "rps: Add flag to skb to indicate rxhash is based on L4 tuple\n\nThe l4_rxhash flag was added to the skb structure to indicate\nthat the rxhash value was computed over the 4 tuple for the\npacket which includes the port information in the encapsulated\ntransport packet.  This is used by the stack to preserve the\nrxhash value in __skb_rx_tunnel.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "33d480ce6d43326e2541fd79b3548858a174ec3c",
      "tree": "c938ee8c07a2e0f33178069b55439a54188f38fa",
      "parents": [
        "cd28ca0a3dd17c68d24b839602a0e6268ad28b5d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Aug 11 19:30:52 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 12 02:55:28 2011 -0700"
      },
      "message": "net: cleanup some rcu_dereference_raw\n\nRCU api had been completed and rcu_access_pointer() or\nrcu_dereference_protected() are better than generic\nrcu_dereference_raw()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6a7ebdf2fd15417e87b4fd02ff411aeaca34da5f",
      "tree": "86b15d8cd3e25c97b348b5a61bdb16c02726a480",
      "parents": [
        "f6b72b6217f8c24f2a54988e58af858b4e66024d",
        "51414d41084496aaefd06d7f19eb8206e8bfac2d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 14 07:56:40 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 14 07:56:40 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/bluetooth/l2cap_core.c\n"
    },
    {
      "commit": "f03d78db65085609938fdb686238867e65003181",
      "tree": "03b8e492d91ad6819a44e0d454af2292e884964c",
      "parents": [
        "eebb02b1f03b3722d678bfcb560f3b26661ab0d2"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jul 07 00:27:05 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 07 00:27:05 2011 -0700"
      },
      "message": "net: refine {udp|tcp|sctp}_mem limits\n\nCurrent tcp/udp/sctp global memory limits are not taking into account\nhugepages allocations, and allow 50% of ram to be used by buffers of a\nsingle protocol [ not counting space used by sockets / inodes ...]\n\nLets use nr_free_buffer_pages() and allow a default of 1/8 of kernel ram\nper protocol, and a minimum of 128 pages.\nHeavy duty machines sysadmins probably need to tweak limits anyway.\n\n\nReferences: https://bugzilla.stlinux.com/show_bug.cgi?id\u003d38032\nReported-by: starlight \u003cstarlight@binnacle.cx\u003e\nSuggested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e12fe68ce34d60c04bb1ddb1d3cc5c3022388fe4",
      "tree": "83c0e192ccaa4752c80b6131a7d0aa8272b5d0d0",
      "parents": [
        "7329f0d58de01878d9ce4f0be7a76e136f223eef",
        "712ae51afd55b20c04c5383d02ba5d10233313b1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 23:23:37 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 23:23:37 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "9cfaa8def1c795a512bc04f2aec333b03724ca2e",
      "tree": "2c4bff0afe8424472b780a65a8d356db2d62caf4",
      "parents": [
        "32c90254ed4a0c698caa0794ebb4de63fcc69631"
      ],
      "author": {
        "name": "Xufeng Zhang",
        "email": "xufeng.zhang@windriver.com",
        "time": "Tue Jun 21 10:43:40 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 21 22:34:27 2011 -0700"
      },
      "message": "udp/recvmsg: Clear MSG_TRUNC flag when starting over for a new packet\n\nConsider this scenario: When the size of the first received udp packet\nis bigger than the receive buffer, MSG_TRUNC bit is set in msg-\u003emsg_flags.\nHowever, if checksum error happens and this is a blocking socket, it will\ngoto try_again loop to receive the next packet.  But if the size of the\nnext udp packet is smaller than receive buffer, MSG_TRUNC flag should not\nbe set, but because MSG_TRUNC bit is not cleared in msg-\u003emsg_flags before\nreceive the next packet, MSG_TRUNC is still set, which is wrong.\n\nFix this problem by clearing MSG_TRUNC flag when starting over for a\nnew packet.\n\nSigned-off-by: Xufeng Zhang \u003cxufeng.zhang@windriver.com\u003e\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "296f7ea75b45913d5e2067baef0812087e0b6eb9",
      "tree": "94a5774a525ebb388306a4ae2aef90a0706031f4",
      "parents": [
        "dec17b74516bb780de75b41e7cfa0072df16bb82"
      ],
      "author": {
        "name": "Satoru Moriya",
        "email": "satoru.moriya@hds.com",
        "time": "Fri Jun 17 11:58:39 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 21 16:06:10 2011 -0700"
      },
      "message": "udp: add tracepoints for queueing skb to rcvbuf\n\nThis patch adds a tracepoint to __udp_queue_rcv_skb to get the\nreturn value of ip_queue_rcv_skb. It indicates why kernel drops\na packet at this point.\n\nip_queue_rcv_skb returns following values in the packet drop case:\n\nrcvbuf is full                 : -ENOMEM\nsk_filter returns error        : -EINVAL, -EACCESS, -ENOMEM, etc.\n__sk_mem_schedule returns error: -ENOBUF\n\nSigned-off-by: Satoru Moriya \u003csatoru.moriya@hds.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "71338aa7d050c86d8765cd36e46be514fb0ebbce",
      "tree": "96bacb805b939c490145b31b4e2fb9e5cea79c5d",
      "parents": [
        "229de618ba6ff36e382b908b7637fe56c25ae9f1"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "drosenberg@vsecurity.com",
        "time": "Mon May 23 12:17:35 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 24 01:13:12 2011 -0400"
      },
      "message": "net: convert %p usage to %pK\n\nThe %pK format specifier is designed to hide exposed kernel pointers,\nspecifically via /proc interfaces.  Exposing these pointers provides an\neasy target for kernel write vulnerabilities, since they reveal the\nlocations of writable structures containing easily triggerable function\npointers.  The behavior of %pK depends on the kptr_restrict sysctl.\n\nIf kptr_restrict is set to 0, no deviation from the standard %p behavior\noccurs.  If kptr_restrict is set to 1, the default, if the current user\n(intended to be a reader via seq_printf(), etc.) does not have CAP_SYSLOG\n(currently in the LSM tree), kernel pointers using %pK are printed as 0\u0027s.\n If kptr_restrict is set to 2, kernel pointers using %pK are printed as\n0\u0027s regardless of privileges.  Replacing with 0\u0027s was chosen over the\ndefault \"(null)\", which cannot be parsed by userland %p, which expects\n\"(nil)\".\n\nThe supporting code for kptr_restrict and %pK are currently in the -mm\ntree.  This patch converts users of %p in net/ to %pK.  Cases of printing\npointers to the syslog are not covered, since this would eliminate useful\ninformation for postmortem debugging and the reading of the syslog is\nalready optionally protected by the dmesg_restrict sysctl.\n\nSigned-off-by: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Thomas Graf \u003ctgraf@infradead.org\u003e\nCc: Eugene Teo \u003ceugeneteo@kernel.org\u003e\nCc: Kees Cook \u003ckees.cook@canonical.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Eric Paris \u003ceparis@parisplace.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "79ab053145ae10edf8f0809d1c788b853c7f6ef1",
      "tree": "3817af51a5679168542395dbc69d3fa4cddf175a",
      "parents": [
        "9f6abb5f175bdb9ecfd390000a631bf0abf2fedb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 09 13:31:04 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 10 13:32:47 2011 -0700"
      },
      "message": "ipv4: udp: Eliminate remaining uses of rt-\u003ert_src\n\nWe already track and pass around the correct flow key,\nso simply use it in udp_send_skb().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f5fca6086511294653a9e821f8e22f041415ba7b",
      "tree": "1ab025012bf44402e7f816428461d8def54016c1",
      "parents": [
        "77968b78242ee25e2a4d759f0fca8dd52df6d479"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 08 17:24:10 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 08 21:24:07 2011 -0700"
      },
      "message": "ipv4: Pass flow key down into ip_append_*().\n\nThis way rt-\u003ert_dst accesses are unnecessary.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "77968b78242ee25e2a4d759f0fca8dd52df6d479",
      "tree": "6de21f3a2efe49cb30ea8109fdfc79d30d6b27a3",
      "parents": [
        "e474995f290ff7bc236b549aa9a89ae445ee5b1b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 08 17:12:19 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 08 21:24:06 2011 -0700"
      },
      "message": "ipv4: Pass flow keys down into datagram packet building engine.\n\nThis way ip_output.c no longer needs rt-\u003ert_{src,dst}.\n\nWe already have these keys sitting, ready and waiting, on the stack or\nin a socket structure.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e474995f290ff7bc236b549aa9a89ae445ee5b1b",
      "tree": "50c16643d9b828d95f795863653a12739e111224",
      "parents": [
        "eed2a12f1ed9aabf0676f4d0db34aad51976c5c6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 08 16:38:45 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 08 21:12:48 2011 -0700"
      },
      "message": "udp: Use flow key information instead of rt-\u003ert_{src,dst}\n\nWe have two cases.\n\nEither the socket is in TCP_ESTABLISHED state and connect() filled\nin the inet socket cork flow, or we looked up the route here and\nused an on-stack flow.\n\nTrack which one it was, and use it to obtain src/dst addrs.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6d8bd051c391c1c0458a30b2a7abcd939329259",
      "tree": "1dc4daecdeb0b42c2c6b59d7d6b41e091c11db5f",
      "parents": [
        "0a14842f5a3c0e88a1e59fac5c3025db39721f74"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Apr 21 09:45:37 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 28 13:16:35 2011 -0700"
      },
      "message": "inet: add RCU protection to inet-\u003eopt\n\nWe lack proper synchronization to manipulate inet-\u003eopt ip_options\n\nProblem is ip_make_skb() calls ip_setup_cork() and\nip_setup_cork() possibly makes a copy of ipc-\u003eopt (struct ip_options),\nwithout any protection against another thread manipulating inet-\u003eopt.\n\nAnother thread can change inet-\u003eopt pointer and free old one under us.\n\nUse RCU to protect inet-\u003eopt (changed to inet-\u003einet_opt).\n\nInstead of handling atomic refcounts, just copy ip_options when\nnecessary, to avoid cache line dirtying.\n\nWe cant insert an rcu_head in struct ip_options since its included in\nskb-\u003ecb[], so this patch is large because I had to introduce a new\nip_options_rcu structure.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b71d1d426d263b0b6cb5760322efebbfc89d4463",
      "tree": "226ca7390bd6187ec9139d2ccedd26fd94d8e57a",
      "parents": [
        "5f8629c526b4f7e529a6d27bbd802c0dc7fcc357"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Apr 22 04:53:02 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 22 11:04:14 2011 -0700"
      },
      "message": "inet: constify ip headers and in6_addr\n\nAdd const qualifiers to structs iphdr, ipv6hdr and in6_addr pointers\nwhere possible, to make code intention more obvious.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1c01a80cfec6f806246f31ff2680cd3639b30e67",
      "tree": "0b554aad2ec1da71ecf6339d4ba51617bfe1dc3c",
      "parents": [
        "c44d79950b2daa1025e62eede73e4e4a274d1ef3",
        "4a9f65f6304a00f6473e83b19c1e83caa1e42530"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 11 13:44:25 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 11 13:44:25 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/smsc911x.c\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "c0951cbcfd7142003bc683046ef78a53c66d3265",
      "tree": "703627b0f62db39c16721bfd3e3071e56a91aa62",
      "parents": [
        "1bba6ffeeb44480ddbdda912cc85ad2cfd4725ae"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 31 04:54:27 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 31 04:54:27 2011 -0700"
      },
      "message": "ipv4: Use flowi4_init_output() in udp_sendmsg()\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9cce96df5b76691712dba22e83ff5efe900361e1",
      "tree": "eecf99e64c6866af944e1e1644d87737392b2da2",
      "parents": [
        "f42454d632753d71ea1a2df09be7bbda32b6372d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 03:00:33 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:54 2011 -0800"
      },
      "message": "net: Put fl4_* macros to struct flowi4 and use them again.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b6f21b268026165a239edb5f4d7120eacf7bc593",
      "tree": "ee03e4fd4a48483bd4d0c21687509d93a3e91729",
      "parents": [
        "3073e5ab927487328d48cd74faac0f95a8336867"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 02:09:18 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:50 2011 -0800"
      },
      "message": "ipv4: Use flowi4 in UDP\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d6ec938019c6b16cb9ec96598ebe8f20de435fe",
      "tree": "9b850eb7fd48a6e5ffc15f47afd2e3edc93f5290",
      "parents": [
        "68a5e3dd0a0056d8b349f9eea3756adda53ec17a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 01:12:47 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:48 2011 -0800"
      },
      "message": "ipv4: Use flowi4 in public route lookup interfaces.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6281dcc94a96bd73017b2baa8fa83925405109ef",
      "tree": "8deee4d66d256d10ea25f66520eb96b1fade1545",
      "parents": [
        "08704bcbf022786532b5f188935ab6619906049f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 00:43:55 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:46 2011 -0800"
      },
      "message": "net: Make flowi ports AF dependent.\n\nCreate two sets of port member accessors, one set prefixed by fl4_*\nand the other prefixed by fl6_*\n\nThis will let us to create AF optimal flow instances.\n\nIt will work because every context in which we access the ports,\nwe have to be fully aware of which AF the flowi is anyways.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1d28f42c1bd4bb2363d88df74d0128b4da135b4a",
      "tree": "cb2e652fe79a2bc307e871bc2d3fa51cc8051e45",
      "parents": [
        "ca116922afa8cc5ad46b00c0a637b1cde5ca478a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 00:29:39 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:44 2011 -0800"
      },
      "message": "net: Put flowi_* prefix on AF independent members of struct flowi\n\nI intend to turn struct flowi into a union of AF specific flowi\nstructs.  There will be a common structure that each variant includes\nfirst, much like struct sock_common.\n\nThis is the first step to move in that direction.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "06dc94b1ed05f91e246315afeb1c652d6d0dc9ab",
      "tree": "7219badb5e324077ad9d6f22981dc155a9fe8610",
      "parents": [
        "1558310d4942427f4fd19e8ae26ca0878ab10879"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 10:38:01 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 10:38:01 2011 -0800"
      },
      "message": "ipv4: Fix crash in dst_release when udp_sendmsg route lookup fails.\n\nAs reported by Eric:\n\n[11483.697233] IP: [\u003cc12b0638\u003e] dst_release+0x18/0x60\n ...\n[11483.697741] Call Trace:\n[11483.697764]  [\u003cc12fc9d2\u003e] udp_sendmsg+0x282/0x6e0\n[11483.697790]  [\u003cc12a1c01\u003e] ? memcpy_toiovec+0x51/0x70\n[11483.697818]  [\u003cc12dbd90\u003e] ? ip_generic_getfrag+0x0/0xb0\n\nThe pointer passed to dst_release() is -EINVAL, that\u0027s because\nwe leave an error pointer in the local variable \"rt\" by accident.\n\nNULL it out to fix the bug.\n\nReported-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b23dd4fe42b455af5c6e20966b7d6959fa8352ea",
      "tree": "bf97323eae9a8d084170e573ff2c0c40bc72c3cd",
      "parents": [
        "452edd598f60522c11f7f88fdbab27eb36509d1a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:31:35 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:31:35 2011 -0800"
      },
      "message": "ipv4: Make output route lookup return rtable directly.\n\nInstead of on the stack.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "273447b352e69c327efdecfd6e1d6fe3edbdcd14",
      "tree": "dae1e0778ca973c25b74fd3dc9728616d6e65b73",
      "parents": [
        "5df65e5567a497a28067019b8ff08f98fb026629"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:27:04 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:27:04 2011 -0800"
      },
      "message": "ipv4: Kill can_sleep arg to ip_route_output_flow()\n\nThis boolean state is now available in the flow flags.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5df65e5567a497a28067019b8ff08f98fb026629",
      "tree": "776a8a2cfa2cf5962ea0d53dea8c6c8360a0c58d",
      "parents": [
        "420d44daa7aa1cc847e9e527f0a27a9ce61768ca"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:22:19 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:22:19 2011 -0800"
      },
      "message": "net: Add FLOWI_FLAG_CAN_SLEEP.\n\nAnd set is in contexts where the route resolution can sleep.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "420d44daa7aa1cc847e9e527f0a27a9ce61768ca",
      "tree": "a5aab8c6b925ba3da1079b7262f7d6c504406eb8",
      "parents": [
        "abdf7e7239da270e68262728f125ea94b9b7d42d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:19:23 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:19:23 2011 -0800"
      },
      "message": "ipv4: Make final arg to ip_route_output_flow to be boolean \"can_sleep\"\n\nSince that is what the current vague \"flags\" argument means.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "903ab86d195cca295379699299c5fc10beba31c7",
      "tree": "2b73fe727bf843bf0a0629dce044da61dc9cb166",
      "parents": [
        "f6b9664f8b711cf4fd53e70aa0d21f72d5bf806c"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Mar 01 02:36:48 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 12:35:42 2011 -0800"
      },
      "message": "udp: Add lockless transmit path\n\nThe UDP transmit path has been running under the socket lock\nfor a long time because of the corking feature.  This means that\ntransmitting to the same socket in multiple threads does not\nscale at all.\n\nHowever, as most users don\u0027t actually use corking, the locking\ncan be removed in the common case.\n\nThis patch creates a lockless fast path where corking is not used.\n\nPlease note that this does create a slight inaccuracy in the\nenforcement of socket send buffer limits.  In particular, we\nmay exceed the socket limit by up to (number of CPUs) * (packet\nsize) because of the way the limit is computed.\n\nAs the primary purpose of socket buffers is to indicate congestion,\nthis should not be a great problem for now.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6b9664f8b711cf4fd53e70aa0d21f72d5bf806c",
      "tree": "878a8438b00e58b9b898a74f3cc4a32c1d5d8477",
      "parents": [
        "1c32c5ad6fac8cee1a77449f5abf211e911ff830"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Mar 01 02:36:48 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 12:35:03 2011 -0800"
      },
      "message": "udp: Switch to ip_finish_skb\n\nThis patch converts UDP to use the new ip_finish_skb API.  This\nwould then allows us to more easily use ip_make_skb which allows\nUDP to run without a socket lock.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "04ed3e741d0f133e02bed7fa5c98edba128f90e7",
      "tree": "3dde4ca8306e98536faa69bccf0e47a2549c088f",
      "parents": [
        "57422dc530115e427dff464cc0a32bcd0efb5008"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Mon Jan 24 15:32:47 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 24 15:32:47 2011 -0800"
      },
      "message": "net: change netdev-\u003efeatures to u32\n\nQuoting Ben Hutchings: we presumably won\u0027t be defining features that\ncan only be enabled on 64-bit architectures.\n\nOccurences found by `grep -r` on net/, drivers/net, include/\n\n[ Move features and vlan_features next to each other in\n  struct netdev, as per Eric Dumazet\u0027s suggestion -DaveM ]\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b4aa9e05a61b845541fa6f5b1d246976922601f0",
      "tree": "ca94478c3df281ab76a3399f5ba6341ade3f5791",
      "parents": [
        "1dc0f3c54ce1df957f99c17b145488fd03eb1a59",
        "4b8fe66300acb2fba8b16d62606e0d30204022fc"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 17 12:27:22 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 17 12:27:22 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/bnx2x/bnx2x.h\n\tdrivers/net/wireless/iwlwifi/iwl-1000.c\n\tdrivers/net/wireless/iwlwifi/iwl-6000.c\n\tdrivers/net/wireless/iwlwifi/iwl-core.h\n\tdrivers/vhost/vhost.c\n"
    },
    {
      "commit": "55508d601dab7df5cbcc7a63f4be8620eface204",
      "tree": "346f30fae9c726d2e73aba2e37ce1e4a31dcea8c",
      "parents": [
        "04fb451eff978ca059399eab83d5594b073caf6f"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Dec 14 15:24:08 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 16 14:43:14 2010 -0800"
      },
      "message": "net: Use skb_checksum_start_offset()\n\nReplace skb-\u003ecsum_start - skb_headroom(skb) with skb_checksum_start_offset().\n\nNote for usb/smsc95xx: skb-\u003edata - skb-\u003ehead \u003d\u003d skb_headroom(skb).\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fcbdf09d9652c8919dcf47072e3ae7dcb4eb98ac",
      "tree": "51e3cc1fbd813a880ea09dc31a12683b73d87e05",
      "parents": [
        "2984961c388381c1830f95e1c2dc2137301b1009"
      ],
      "author": {
        "name": "Octavian Purdila",
        "email": "opurdila@ixiacom.com",
        "time": "Thu Dec 16 14:26:56 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 16 14:26:56 2010 -0800"
      },
      "message": "net: fix nulls list corruptions in sk_prot_alloc\n\nSpecial care is taken inside sk_port_alloc to avoid overwriting\nskc_node/skc_nulls_node. We should also avoid overwriting\nskc_bind_node/skc_portaddr_node.\n\nThe patch fixes the following crash:\n\n BUG: unable to handle kernel paging request at fffffffffffffff0\n IP: [\u003cffffffff812ec6dd\u003e] udp4_lib_lookup2+0xad/0x370\n [\u003cffffffff812ecc22\u003e] __udp4_lib_lookup+0x282/0x360\n [\u003cffffffff812ed63e\u003e] __udp4_lib_rcv+0x31e/0x700\n [\u003cffffffff812bba45\u003e] ? ip_local_deliver_finish+0x65/0x190\n [\u003cffffffff812bbbf8\u003e] ? ip_local_deliver+0x88/0xa0\n [\u003cffffffff812eda35\u003e] udp_rcv+0x15/0x20\n [\u003cffffffff812bba45\u003e] ip_local_deliver_finish+0x65/0x190\n [\u003cffffffff812bbbf8\u003e] ip_local_deliver+0x88/0xa0\n [\u003cffffffff812bb2cd\u003e] ip_rcv_finish+0x32d/0x6f0\n [\u003cffffffff8128c14c\u003e] ? netif_receive_skb+0x99c/0x11c0\n [\u003cffffffff812bb94b\u003e] ip_rcv+0x2bb/0x350\n [\u003cffffffff8128c14c\u003e] netif_receive_skb+0x99c/0x11c0\n\nSigned-off-by: Leonard Crestez \u003clcrestez@ixiacom.com\u003e\nSigned-off-by: Octavian Purdila \u003copurdila@ixiacom.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5811662b15db018c740c57d037523683fd3e6123",
      "tree": "f820610a6024799a26699f22dc9a4ef5dee07978",
      "parents": [
        "dd68ad2235b4625e0dc928b2b4c614d265f976d3"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Fri Nov 12 18:43:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 17 12:27:45 2010 -0800"
      },
      "message": "net: use the macros defined for the members of flowi\n\nUse the macros defined for the members of flowi to clean the code up.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c31504dc0d1dc853dcee509d9999169a9097a717",
      "tree": "8ee1d5616b7140759cf742ef89cf9f7ba1c01b20",
      "parents": [
        "213b15ca818adf7766cd7162c2159a6ecdd3bab8"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Nov 15 19:58:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 16 11:17:43 2010 -0800"
      },
      "message": "udp: use atomic_inc_not_zero_hint\n\nUDP sockets refcount is usually 2, unless an incoming frame is going to\nbe queued in receive or backlog queue.\n\nUsing atomic_inc_not_zero_hint() permits to reduce latency, because\nprocessor issues less memory transactions.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d987e5c75107ca7515fa19e857cfa24aab6ec8f",
      "tree": "6392c5f08f0df39d42a079336f6be3960ac404dc",
      "parents": [
        "67286640f638f5ad41a946b9a3dc75327950248f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 09 23:24:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 10 12:12:00 2010 -0800"
      },
      "message": "net: avoid limits overflow\n\nRobin Holt tried to boot a 16TB machine and found some limits were\nreached : sysctl_tcp_mem[2], sysctl_udp_mem[2]\n\nWe can switch infrastructure to use long \"instead\" of \"int\", now\natomic_long_t primitives are available for free.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nReported-by: Robin Holt \u003cholt@sgi.com\u003e\nReviewed-by: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0d7da9ddd9a4eb7808698d04b98bf9d62d02649b",
      "tree": "b170122c08d47be35a056782be54573ba19fe0b0",
      "parents": [
        "1c87733d0682547050ccccb400cdac425fa43b39"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 25 03:47:05 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 25 14:18:28 2010 -0700"
      },
      "message": "net: add __rcu annotation to sk_filter\n\nAdd __rcu annotation to :\n        (struct sock)-\u003esk_filter\n\nAnd use appropriate rcu primitives to reduce sparse warnings if\nCONFIG_SPARSE_RCU_POINTER\u003dy\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e548833df83c3554229eff0672900bfe958b45fd",
      "tree": "85efc4a76dc356593d6d394776aeb845dc580fb6",
      "parents": [
        "cbd9da7be869f676afc204e1a664163778c770bd",
        "053d8f6622701f849fda2ca2c9ae596c13599ba9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 09 22:27:33 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 09 22:27:33 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/mac80211/main.c\n"
    },
    {
      "commit": "719f835853a92f6090258114a72ffe41f09155cd",
      "tree": "a077b05397bf07a096be7f07b50375c5ed918ac2",
      "parents": [
        "ae2688d59b5f861dc70a091d003773975d2ae7fb"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 08 05:08:44 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 08 21:45:01 2010 -0700"
      },
      "message": "udp: add rehash on connect()\n\ncommit 30fff923 introduced in linux-2.6.33 (udp: bind() optimisation)\nadded a secondary hash on UDP, hashed on (local addr, local port).\n\nProblem is that following sequence :\n\nfd \u003d socket(...)\nconnect(fd, \u0026remote, ...)\n\nnot only selects remote end point (address and port), but also sets\nlocal address, while UDP stack stored in secondary hash table the socket\nwhile its local address was INADDR_ANY (or ipv6 equivalent)\n\nSequence is :\n - autobind() : choose a random local port, insert socket in hash tables\n              [while local address is INADDR_ANY]\n - connect() : set remote address and port, change local address to IP\n              given by a route lookup.\n\nWhen an incoming UDP frame comes, if more than 10 sockets are found in\nprimary hash table, we switch to secondary table, and fail to find\nsocket because its local address changed.\n\nOne solution to this problem is to rehash datagram socket if needed.\n\nWe add a new rehash(struct socket *) method in \"struct proto\", and\nimplement this method for UDP v4 \u0026 v6, using a common helper.\n\nThis rehashing only takes care of secondary hash table, since primary\nhash (based on local port only) is not changed.\n\nReported-by: Krzysztof Piotr Oledzki \u003cole@ans.pl\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nTested-by: Krzysztof Piotr Oledzki \u003cole@ans.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2244d07bfa2097cb00600da91c715a8aa547917e",
      "tree": "44d67d9ffba3697fffeb05c13e88aa76ebc3fd4a",
      "parents": [
        "4d5870ec103e6569851b9710f0093f072b08439a"
      ],
      "author": {
        "name": "Oliver Hartkopp",
        "email": "socketcan@hartkopp.net",
        "time": "Tue Aug 17 08:59:14 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 19 00:08:30 2010 -0700"
      },
      "message": "net: simplify flags for tx timestamping\n\nThis patch removes the abstraction introduced by the union skb_shared_tx in\nthe shared skb data.\n\nThe access of the different union elements at several places led to some\nconfusion about accessing the shared tx_flags e.g. in skb_orphan_try().\n\n    http://marc.info/?l\u003dlinux-netdev\u0026m\u003d128084897415886\u0026w\u003d2\n\nSigned-off-by: Oliver Hartkopp \u003csocketcan@hartkopp.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d8d1f30b95a635dbd610dcc5eb641aca8f4768cf",
      "tree": "71424d82a96facd5fcf05cc769ef2ba52b584aeb",
      "parents": [
        "592fcb9dfafaa02dd0edc207bf5d3a0ee7a1f8df"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Thu Jun 10 23:31:35 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 10 23:31:35 2010 -0700"
      },
      "message": "net-next: remove useless union keyword\n\nremove useless union keyword in rtable, rt6_info and dn_route.\n\nSince there is only one member in a union, the union keyword isn\u0027t useful.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b1faf5666438090a4dc4fceac8502edc7788b7e3",
      "tree": "f90808dea27cc38aff6feed1782e2a5666fa6ee9",
      "parents": [
        "bc284f94f84c3d76e49c6f3df9028c503f9589d9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon May 31 23:44:05 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 31 23:44:05 2010 -0700"
      },
      "message": "net: sock_queue_err_skb() dont mess with sk_forward_alloc\n\nCorrect sk_forward_alloc handling for error_queue would need to use a\nbacklog of frames that softirq handler could not deliver because socket\nis owned by user thread. Or extend backlog processing to be able to\nprocess normal and error packets.\n\nAnother possibility is to not use mem charge for error queue, this is\nwhat I implemented in this patch.\n\nNote: this reverts commit 29030374\n(net: fix sk_forward_alloc corruptions), since we dont need to lock\nsocket anymore.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "64960848abd18d0bcde3f53ffa7ed0b631e6b25d",
      "tree": "8424a1c550a98ce09f127425fde9b7b5f2f5027a",
      "parents": [
        "2903037400a26e7c0cc93ab75a7d62abfacdf485",
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 31 05:46:45 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 31 05:46:45 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n"
    },
    {
      "commit": "2903037400a26e7c0cc93ab75a7d62abfacdf485",
      "tree": "c29d8b3199d8fa52856e5edcd374411f962d7c11",
      "parents": [
        "7dfde179c38056b91d51e60f3d50902387f27c84"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sat May 29 00:20:48 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 29 00:20:48 2010 -0700"
      },
      "message": "net: fix sk_forward_alloc corruptions\n\nAs David found out, sock_queue_err_skb() should be called with socket\nlock hold, or we risk sk_forward_alloc corruption, since we use non\natomic operations to update this field.\n\nThis patch adds bh_lock_sock()/bh_unlock_sock() pair to three spots.\n(BH already disabled)\n\n1) skb_tstamp_tx() \n2) Before calling ip_icmp_error(), in __udp4_lib_err() \n3) Before calling ipv6_icmp_error(), in __udp6_lib_err()\n\nReported-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "72da3bc0cb3e82bd95f278a0c5c988e506e56d13",
      "tree": "db4bf9f9265be3216dfb3d65b49e53d8448e13e2",
      "parents": [
        "8507bb0062bff1431bbcce921efe5cd1186fcff2",
        "045de01a174d9f0734f657eb4b3313d89b4fd5ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 28 10:18:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 28 10:18:40 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (22 commits)\n  netlink: bug fix: wrong size was calculated for vfinfo list blob\n  netlink: bug fix: don\u0027t overrun skbs on vf_port dump\n  xt_tee: use skb_dst_drop()\n  netdev/fec: fix ifconfig eth0 down hang issue\n  cnic: Fix context memory init. on 5709.\n  drivers/net: Eliminate a NULL pointer dereference\n  drivers/net/hamradio: Eliminate a NULL pointer dereference\n  be2net: Patch removes redundant while statement in loop.\n  ipv6: Add GSO support on forwarding path\n  net: fix __neigh_event_send()\n  vhost: fix the memory leak which will happen when memory_access_ok fails\n  vhost-net: fix to check the return value of copy_to/from_user() correctly\n  vhost: fix to check the return value of copy_to/from_user() correctly\n  vhost: Fix host panic if ioctl called with wrong index\n  net: fix lock_sock_bh/unlock_sock_bh\n  net/iucv: Add missing spin_unlock\n  net: ll_temac: fix checksum offload logic\n  net: ll_temac: fix interrupt bug when interrupt 0 is used\n  sctp: dubious bitfields in sctp_transport\n  ipmr: off by one in __ipmr_fill_mroute()\n  ...\n"
    },
    {
      "commit": "8a74ad60a546b13bd1096b2a61a7a5c6fd9ae17c",
      "tree": "3110e7e59883597b5d0f617e8507e15b8f965f3f",
      "parents": [
        "a56635a56f2afb3d22d9ce07e8f8d69537416b2d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed May 26 19:20:18 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 27 00:30:53 2010 -0700"
      },
      "message": "net: fix lock_sock_bh/unlock_sock_bh\n\nThis new sock lock primitive was introduced to speedup some user context\nsocket manipulation. But it is unsafe to protect two threads, one using\nregular lock_sock/release_sock, one using lock_sock_bh/unlock_sock_bh\n\nThis patch changes lock_sock_bh to be careful against \u0027owned\u0027 state.\nIf owned is found to be set, we must take the slow path.\nlock_sock_bh() now returns a boolean to say if the slow path was taken,\nand this boolean is used at unlock_sock_bh time to call the appropriate\nunlock function.\n\nAfter this change, BH are either disabled or enabled during the\nlock_sock_bh/unlock_sock_bh protected section. This might be misleading,\nso we rename these functions to lock_sock_fast()/unlock_sock_fast().\n\nReported-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nTested-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4be929be34f9bdeffa40d815d32d7d60d2c7f03b",
      "tree": "4d2c6e2b8ef766e565e2e050ee151de2e02081d3",
      "parents": [
        "940370fc86b920b51a34217a1facc3e9e97c2456"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 24 14:33:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "kernel-wide: replace USHORT_MAX, SHORT_MAX and SHORT_MIN with USHRT_MAX, SHRT_MAX and SHRT_MIN\n\n- C99 knows about USHRT_MAX/SHRT_MAX/SHRT_MIN, not\n  USHORT_MAX/SHORT_MAX/SHORT_MIN.\n\n- Make SHRT_MIN of type s16, not int, for consistency.\n\n[akpm@linux-foundation.org: fix drivers/dma/timb_dma.c]\n[akpm@linux-foundation.org: fix security/keys/keyring.c]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@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": "e3826f1e946e7d2354943232f1457be1455a29e2",
      "tree": "a34055c7de762410b6a10c21ab5e1999fb38803b",
      "parents": [
        "9f977fb7ae9ddf565b4800854212fb9a1ed6c2ea"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Wed May 05 00:27:06 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 15 23:28:40 2010 -0700"
      },
      "message": "net: reserve ports for applications using fixed port numbers\n\n(Dropped the infiniband part, because Tetsuo modified the related code,\nI will send a separate patch for it once this is accepted.)\n\nThis patch introduces /proc/sys/net/ipv4/ip_local_reserved_ports which\nallows users to reserve ports for third-party applications.\n\nThe reserved ports will not be used by automatic port assignments\n(e.g. when calling connect() or bind() with port number 0). Explicit\nport allocation behavior is unchanged.\n\nSigned-off-by: Octavian Purdila \u003copurdila@ixiacom.com\u003e\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "278554bd6579206921f5d8a523649a7a57f8850d",
      "tree": "4e6c527daf0910e455b3aa72e2c96b0479e430be",
      "parents": [
        "5a147e8bf982f9dd414c1dd751fe02c1942506b2",
        "cea0d767c29669bf89f86e4aee46ef462d2ebae8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 12 00:05:35 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 12 00:05:35 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tDocumentation/feature-removal-schedule.txt\n\tdrivers/net/wireless/ath/ar9170/usb.c\n\tdrivers/scsi/iscsi_tcp.c\n\tnet/ipv4/ipmr.c\n"
    },
    {
      "commit": "ccc2d97cb7c798e785c9f198de243e2b59f7073b",
      "tree": "c8752bd5a4fb051690ecaf9015fd0de2bb83560e",
      "parents": [
        "80ea76bb2575c426154b8d61d324197ee3592baa"
      ],
      "author": {
        "name": "Bjørn Mork",
        "email": "bjorn@mork.no",
        "time": "Thu May 06 03:44:34 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 06 21:49:59 2010 -0700"
      },
      "message": "ipv4: udp: fix short packet and bad checksum logging\n\ncommit 2783ef23 moved the initialisation of saddr and daddr after\npskb_may_pull() to avoid a potential data corruption.  Unfortunately\nalso placing it after the short packet and bad checksum error paths,\nwhere these variables are used for logging.  The result is bogus\noutput like\n\n[92238.389505] UDP: short packet: From 2.0.0.0:65535 23715/178 to 0.0.0.0:65535\n\nMoving the saddr and daddr initialisation above the error paths, while still\nkeeping it after the pskb_may_pull() to keep the fix from commit 2783ef23.\n\nSigned-off-by: Bjørn Mork \u003cbjorn@mork.no\u003e\nCc: stable@kernel.org\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f84af32cbca70a3c6d30463dc08c7984af11c277",
      "tree": "06ede4b3ed91be899f8f29b4c7eb1fb76f1ade97",
      "parents": [
        "4b0b72f7dd617b13abd1b04c947e15873e011a24"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Apr 28 15:31:51 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 28 15:31:51 2010 -0700"
      },
      "message": "net: ip_queue_rcv_skb() helper\n\nWhen queueing a skb to socket, we can immediately release its dst if\ntarget socket do not use IP_CMSG_PKTINFO.\n\ntcp_data_queue() can drop dst too.\n\nThis to benefit from a hot cache line and avoid the receiver, possibly\non another cpu, to dirty this cache line himself.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4b0b72f7dd617b13abd1b04c947e15873e011a24",
      "tree": "16fc7bc990fa47cccb62bdb34cb23bd3c26b7a50",
      "parents": [
        "cfc1fbb079b265bf69d4ceba590a2e2c1a1cde33"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Apr 28 14:35:48 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 28 14:35:48 2010 -0700"
      },
      "message": "net: speedup udp receive path\n\nSince commit 95766fff ([UDP]: Add memory accounting.), \neach received packet needs one extra sock_lock()/sock_release() pair.\n\nThis added latency because of possible backlog handling. Then later,\nticket spinlocks added yet another latency source in case of DDOS.\n\nThis patch introduces lock_sock_bh() and unlock_sock_bh()\nsynchronization primitives, avoiding one atomic operation and backlog\nprocessing.\n\nskb_free_datagram_locked() uses them instead of full blown\nlock_sock()/release_sock(). skb is orphaned inside locked section for\nproper socket memory reclaim, and finally freed outside of it.\n\nUDP receive path now take the socket spinlock only once.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c377411f2494a931ff7facdbb3a6839b1266bcf6",
      "tree": "6846cdcec913f50839e3916856f78f7e059ff5fb",
      "parents": [
        "6e7676c1a76aed6e957611d8d7a9e5592e23aeba"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Apr 27 15:13:20 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 27 15:13:20 2010 -0700"
      },
      "message": "net: sk_add_backlog() take rmem_alloc into account\n\nCurrent socket backlog limit is not enough to really stop DDOS attacks,\nbecause user thread spend many time to process a full backlog each\nround, and user might crazy spin on socket lock.\n\nWe should add backlog size and receive_queue size (aka rmem_alloc) to\npace writers, and let user run without being slow down too much.\n\nIntroduce a sk_rcvqueues_full() helper, to avoid taking socket lock in\nstress situations.\n\nUnder huge stress from a multiqueue/RPS enabled NIC, a single flow udp\nreceiver can now process ~200.000 pps (instead of ~100 pps before the\npatch) on a 8 core machine.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c58dc01babfd58ec9e71a6ce080150dc27755d88",
      "tree": "065c58b5236ea23ff0868a6bbf3c5233b990f0be",
      "parents": [
        "c4ee6a5348102b9cea49fb9adf88307445407911"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 27 15:05:31 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 27 15:11:48 2010 -0700"
      },
      "message": "net: Make RFS socket operations not be inet specific.\n\nIdea from Eric Dumazet.\n\nAs for placement inside of struct sock, I tried to choose a place\nthat otherwise has a 32-bit hole on 64-bit systems.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n"
    },
    {
      "commit": "0eae88f31ca2b88911ce843452054139e028771f",
      "tree": "90f50197d8e1e50e3621e9c525bd4ca2634fe368",
      "parents": [
        "cb903bf4ee2d6e53210e2174d363e10698112042"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Apr 20 19:06:52 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 19:06:52 2010 -0700"
      },
      "message": "net: Fix various endianness glitches\n\nSparse can help us find endianness bugs, but we need to make some\ncleanups to be able to more easily spot real bugs.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fec5e652e58fa6017b2c9e06466cb2a6538de5b4",
      "tree": "e034f2a1e7930a0a225bd30896f834ec5e09c084",
      "parents": [
        "b5d43998234331b9c01bd2165fdbb25115f4387f"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Fri Apr 16 16:01:27 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 16 16:01:27 2010 -0700"
      },
      "message": "rfs: Receive Flow Steering\n\nThis patch implements receive flow steering (RFS).  RFS steers\nreceived packets for layer 3 and 4 processing to the CPU where\nthe application for the corresponding flow is running.  RFS is an\nextension of Receive Packet Steering (RPS).\n\nThe basic idea of RFS is that when an application calls recvmsg\n(or sendmsg) the application\u0027s running CPU is stored in a hash\ntable that is indexed by the connection\u0027s rxhash which is stored in\nthe socket structure.  The rxhash is passed in skb\u0027s received on\nthe connection from netif_receive_skb.  For each received packet,\nthe associated rxhash is used to look up the CPU in the hash table,\nif a valid CPU is set then the packet is steered to that CPU using\nthe RPS mechanisms.\n\nThe convolution of the simple approach is that it would potentially\nallow OOO packets.  If threads are thrashing around CPUs or multiple\nthreads are trying to read from the same sockets, a quickly changing\nCPU value in the hash table could cause rampant OOO packets--\nwe consider this a non-starter.\n\nTo avoid OOO packets, this solution implements two types of hash\ntables: rps_sock_flow_table and rps_dev_flow_table.\n\nrps_sock_table is a global hash table.  Each entry is just a CPU\nnumber and it is populated in recvmsg and sendmsg as described above.\nThis table contains the \"desired\" CPUs for flows.\n\nrps_dev_flow_table is specific to each device queue.  Each entry\ncontains a CPU and a tail queue counter.  The CPU is the \"current\"\nCPU for a matching flow.  The tail queue counter holds the value\nof a tail queue counter for the associated CPU\u0027s backlog queue at\nthe time of last enqueue for a flow matching the entry.\n\nEach backlog queue has a queue head counter which is incremented\non dequeue, and so a queue tail counter is computed as queue head\ncount + queue length.  When a packet is enqueued on a backlog queue,\nthe current value of the queue tail counter is saved in the hash\nentry of the rps_dev_flow_table.\n\nAnd now the trick: when selecting the CPU for RPS (get_rps_cpu)\nthe rps_sock_flow table and the rps_dev_flow table for the RX queue\nare consulted.  When the desired CPU for the flow (found in the\nrps_sock_flow table) does not match the current CPU (found in the\nrps_dev_flow table), the current CPU is changed to the desired CPU\nif one of the following is true:\n\n- The current CPU is unset (equal to RPS_NO_CPU)\n- Current CPU is offline\n- The current CPU\u0027s queue head counter \u003e\u003d queue tail counter in the\nrps_dev_flow table.  This checks if the queue tail has advanced\nbeyond the last packet that was enqueued using this table entry.\nThis guarantees that all packets queued using this entry have been\ndequeued, thus preserving in order delivery.\n\nMaking each queue have its own rps_dev_flow table has two advantages:\n1) the tail queue counters will be written on each receive, so\nkeeping the table local to interrupting CPU s good for locality.  2)\nthis allows lockless access to the table-- the CPU number and queue\ntail counter need to be accessed together under mutual exclusion\nfrom netif_receive_skb, we assume that this is only called from\ndevice napi_poll which is non-reentrant.\n\nThis patch implements RFS for TCP and connected UDP sockets.\nIt should be usable for other flow oriented protocols.\n\nThere are two configuration parameters for RFS.  The\n\"rps_flow_entries\" kernel init parameter sets the number of\nentries in the rps_sock_flow_table, the per rxqueue sysfs entry\n\"rps_flow_cnt\" contains the number of entries in the rps_dev_flow\ntable for the rxqueue.  Both are rounded to power of two.\n\nThe obvious benefit of RFS (over just RPS) is that it achieves\nCPU locality between the receive processing for a flow and the\napplications processing; this can result in increased performance\n(higher pps, lower latency).\n\nThe benefits of RFS are dependent on cache hierarchy, application\nload, and other factors.  On simple benchmarks, we don\u0027t necessarily\nsee improvement and sometimes see degradation.  However, for more\ncomplex benchmarks and for applications where cache pressure is\nmuch higher this technique seems to perform very well.\n\nBelow are some benchmark results which show the potential benfit of\nthis patch.  The netperf test has 500 instances of netperf TCP_RR\ntest with 1 byte req. and resp.  The RPC test is an request/response\ntest similar in structure to netperf RR test ith 100 threads on\neach host, but does more work in userspace that netperf.\n\ne1000e on 8 core Intel\n   No RFS or RPS\t\t104K tps at 30% CPU\n   No RFS (best RPS config):    290K tps at 63% CPU\n   RFS\t\t\t\t303K tps at 61% CPU\n\nRPC test\ttps\tCPU%\t50/90/99% usec latency\tLatency StdDev\n  No RFS/RPS\t103K\t48%\t757/900/3185\t\t4472.35\n  RPS only:\t174K\t73%\t415/993/2468\t\t491.66\n  RFS\t\t223K\t73%\t379/651/1382\t\t315.61\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4a1032faac94ebbf647460ae3e06fc21146eb280",
      "tree": "7f31b97beb0406faa1523e619289ad0ab07c9787",
      "parents": [
        "ae4e8d63b5619d4d95f1d2bfa2b836caa6e62d06",
        "0eddb519b9127c73d53db4bf3ec1d45b13f844d1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 11 02:44:30 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 11 02:44:30 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n"
    },
    {
      "commit": "1223c67c0938d2df309fde618bd82c87c8c1af04",
      "tree": "12445eb8f4ab8acece9cd96e337ce49b29e3f31a",
      "parents": [
        "2488f56d3699b84ee51d2940d1347345b8f9b0e1"
      ],
      "author": {
        "name": "Jorge Boncompte [DTI2]",
        "email": "jorge@dti2.net",
        "time": "Thu Apr 08 04:56:48 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 08 11:29:13 2010 -0700"
      },
      "message": "udp: fix for unicast RX path optimization\n\nCommits 5051ebd275de672b807c28d93002c2fb0514a3c9 and\n5051ebd275de672b807c28d93002c2fb0514a3c9 (\"ipv[46]: udp: optimize unicast RX\npath\") broke some programs.\n\n\tAfter upgrading a L2TP server to 2.6.33 it started to fail, tunnels going up an\ndown, after the 10th tunnel came up. My modified rp-l2tp uses a global\nunconnected socket bound to (INADDR_ANY, 1701) and one connected socket per\ntunnel after parameter negotiation.\n\n\tAfter ten sockets were open and due to mixed parameters to\nudp[46]_lib_lookup2() kernel started to drop packets.\n\nSigned-off-by: Jorge Boncompte [DTI2] \u003cjorge@dti2.net\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "a3a858ff18a72a8d388e31ab0d98f7e944841a62",
      "tree": "e51a59ce280f0aa818ac5e1d989bc8a137b7cd47",
      "parents": [
        "2499849ee8f513e795b9f2c19a42d6356e4943a4"
      ],
      "author": {
        "name": "Zhu Yi",
        "email": "yi.zhu@intel.com",
        "time": "Thu Mar 04 18:01:47 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 05 13:34:03 2010 -0800"
      },
      "message": "net: backlog functions rename\n\nsk_add_backlog -\u003e __sk_add_backlog\nsk_add_backlog_limited -\u003e sk_add_backlog\n\nSigned-off-by: Zhu Yi \u003cyi.zhu@intel.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "55349790d7cbf0d381873a7ece1dcafcffd4aaa9",
      "tree": "2f5cc194b8d7b2fd559c24fe2dfd946535923daa",
      "parents": [
        "6b03a53a5ab7ccf2d5d69f96cf1c739c4d2a8fb9"
      ],
      "author": {
        "name": "Zhu Yi",
        "email": "yi.zhu@intel.com",
        "time": "Thu Mar 04 18:01:42 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 05 13:34:00 2010 -0800"
      },
      "message": "udp: use limited socket backlog\n\nMake udp adapt to the limited socket backlog change.\n\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nCc: \"Pekka Savola (ipv6)\" \u003cpekkas@netcore.fi\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Zhu Yi \u003cyi.zhu@intel.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "81d54ec8479a2c695760da81f05b5a9fb2dbe40a",
      "tree": "4a7da65da1b418e1e18291ddae807fad83dca1f0",
      "parents": [
        "55d955902a7f78e3e7c9ddbc71a4a050d9d44810"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Feb 10 20:26:19 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 12 16:51:10 2010 -0800"
      },
      "message": "udp: remove redundant variable\n\nThe variable \u0027copied\u0027 is used in udp_recvmsg() to emphasize that the passed\n\u0027len\u0027 is adjusted to fit the actual datagram length. But the same can be\ndone by adjusting \u0027len\u0027 directly. This patch thus removes the indirection.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2c8c1e7297e19bdef3c178c3ea41d898a7716e3e",
      "tree": "4d336562e8d5379732a0646e17b0bb1750111ef6",
      "parents": [
        "72659ecce68588b74f6c46862c2b4cec137d7a5a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Jan 17 03:35:32 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 17 19:16:02 2010 -0800"
      },
      "message": "net: spread __net_init, __net_exit\n\n__net_init/__net_exit are apparently not going away, so use them\nto full extent.\n\nIn some cases __net_init was removed, because it was called from\n__net_exit code.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5781b2356cbecb0b73b06ec8c3897cabdfdd0928",
      "tree": "7da5613b163aa7a942561aabc0284950583ee314",
      "parents": [
        "e1187b3be72be59625e445b186007e6eae27fef1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Dec 13 19:32:39 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 13 19:32:39 2009 -0800"
      },
      "message": "udp: udp_lib_get_port() fix\n\nNow we can have a large udp hash table, udp_lib_get_port() loop\nshould be converted to a do {} while (cond) form,\nor we dont enter it at all if hash table size is exactly 65536.\n\nReported-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d4fb27db90043cd2640e4bc778f9c755d3c17c1",
      "tree": "53f1b0851fdd02e78a18f1a9db57e7cc22e2b280",
      "parents": [
        "6ebfbc065624790772398f5b327ac33a7ae3880b"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Nov 23 10:41:23 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 23 10:41:23 2009 -0800"
      },
      "message": "net/ipv4: Move \u0026\u0026 and || to end of previous line\n\nOn Sun, 2009-11-22 at 16:31 -0800, David Miller wrote:\n\u003e It should be of the form:\n\u003e \tif (x \u0026\u0026\n\u003e \t    y)\n\u003e \n\u003e or:\n\u003e \tif (x \u0026\u0026 y)\n\u003e \n\u003e Fix patches, rather than complaints, for existing cases where things\n\u003e do not follow this pattern are certainly welcome.\n\nAlso collapsed some multiple tabs to single space.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "30fff9231fad757c061285e347b33c5149c2c2e4",
      "tree": "79d07aba4b8de4367090442292e412d1ccf961ef",
      "parents": [
        "0ab365f463b9c5c8b76476a1808dfde1c38f6f19"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Nov 09 05:26:33 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 10 20:54:38 2009 -0800"
      },
      "message": "udp: bind() optimisation\n\nUDP bind() can be O(N^2) in some pathological cases.\n\nThanks to secondary hash tables, we can make it O(N)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6b8f32ca71406de718391369490f6b1e81fe0bb",
      "tree": "6a9d65cc246c74a78d7274d1911baf38ffc8eaf0",
      "parents": [
        "a1ab77f97ed03f5dae66ae4c64375beffab83772"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Nov 08 10:20:19 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 08 20:53:10 2009 -0800"
      },
      "message": "udp: multicast RX should increment SNMP/sk_drops counter in allocation failures\n\nWhen skb_clone() fails, we should increment sk_drops and SNMP counters.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1240d1373cd7f874dd0f3057c3e9643e71ef75c6",
      "tree": "5bb5b7f72be25210a899e60f9137a4dad899bf05",
      "parents": [
        "fddc17defa22d8caba1cdfb2e22b50bb4b9f35c0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Nov 08 10:18:44 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 08 20:53:08 2009 -0800"
      },
      "message": "ipv4: udp: Optimise multicast reception\n\nUDP multicast rx path is a bit complex and can hold a spinlock\nfor a long time.\n\nUsing a small (32 or 64 entries) stack of socket pointers can help\nto perform expensive operations (skb_clone(), udp_queue_rcv_skb())\noutside of the lock, in most cases.\n\nIt\u0027s also a base for a future RCU conversion of multicast recption.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Lucian Adrian Grijincu \u003clgrijincu@ixiacom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5051ebd275de672b807c28d93002c2fb0514a3c9",
      "tree": "bfbf0d9f1b231671a8ee20d92a04d26860eb38b1",
      "parents": [
        "512615b6b843ff3ff5ad583f34c39b3f302f5f26"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Nov 08 10:18:11 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 08 20:53:07 2009 -0800"
      },
      "message": "ipv4: udp: optimize unicast RX path\n\nWe first locate the (local port) hash chain head\nIf few sockets are in this chain, we proceed with previous lookup algo.\n\nIf too many sockets are listed, we take a look at the secondary\n(port, address) hash chain we added in previous patch.\n\nWe choose the shortest chain and proceed with a RCU lookup on the elected chain.\n\nBut, if we chose (port, address) chain, and fail to find a socket on given address,\n we must try another lookup on (port, INADDR_ANY) chain to find socket not bound\nto a particular IP.\n\n-\u003e No extra cost for typical setups, where the first lookup will probabbly\nbe performed.\n\nRCU lookups everywhere, we dont acquire spinlock.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "512615b6b843ff3ff5ad583f34c39b3f302f5f26",
      "tree": "7420705a314bc691bc478225148935dc67f71904",
      "parents": [
        "d4cada4ae1c012815f95fa507eb86a0ae9d607d7"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Nov 08 10:17:58 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 08 20:53:06 2009 -0800"
      },
      "message": "udp: secondary hash on (local port, local address)\n\nExtends udp_table to contain a secondary hash table.\n\nsocket anchor for this second hash is free, because UDP\ndoesnt use skc_bind_node : We define an union to hold\nboth skc_bind_node \u0026 a new hlist_nulls_node udp_portaddr_node\n\nudp_lib_get_port() inserts sockets into second hash chain\n(additional cost of one atomic op)\n\nudp_lib_unhash() deletes socket from second hash chain\n(additional cost of one atomic op)\n\nNote : No spinlock lockdep annotation is needed, because\nlock for the secondary hash chain is always get after\nlock for primary hash chain.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d4cada4ae1c012815f95fa507eb86a0ae9d607d7",
      "tree": "23cdfb3763c9140ae095bf8095c3e6b16f7b48f3",
      "parents": [
        "fdcc8aa953a1123a289791dd192090651036d593"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Nov 08 10:17:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 08 20:53:05 2009 -0800"
      },
      "message": "udp: split sk_hash into two u16 hashes\n\nUnion sk_hash with two u16 hashes for udp (no extra memory taken)\n\nOne 16 bits hash on (local port) value (the previous udp \u0027hash\u0027)\n\nOne 16 bits hash on (local address, local port) values, initialized\nbut not yet used. This second hash is using jenkin hash for better\ndistribution.\n\nBecause the \u0027port\u0027 is xored later, a partial hash is performed\non local address + net_hash_mix(net)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fdcc8aa953a1123a289791dd192090651036d593",
      "tree": "b30e27d1ba4d3330e5eb9b7da43d4dfb3a4e42f8",
      "parents": [
        "415ce61aef5e9b2ed2516a13888c733bea15aedf"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Nov 08 10:17:05 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 08 20:53:04 2009 -0800"
      },
      "message": "udp: add a counter into udp_hslot\n\nAdds a counter in udp_hslot to keep an accurate count\nof sockets present in chain.\n\nThis will permit to upcoming UDP lookup algo to chose\nthe shortest chain when secondary hash is added.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "230f9bb701d37ae9b48e96456689452978f5c439",
      "tree": "9d2690917533bbb4498c8c9df838de2d38360912",
      "parents": [
        "000ba2e43f33901859fd794bb33c885909d53b3b",
        "887e671f324d9898aaedb29a6ece6c853c394067"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 06 00:55:55 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 06 00:55:55 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/usb/cdc_ether.c\n\nAll CDC ethernet devices of type USB_CLASS_COMM need to use\n\u0027\u0026mbm_info\u0027.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d410c796067686b1e032d54ce475b7055537138",
      "tree": "4442bdbe4a4be1cce024f2e83a12b7404ef935fa",
      "parents": [
        "63ca2d74ea4f9c7a7ac082c915609a7b224908e7"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 30 05:03:53 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 30 12:25:12 2009 -0700"
      },
      "message": "net: fix sk_forward_alloc corruption\n\nOn UDP sockets, we must call skb_free_datagram() with socket locked,\nor risk sk_forward_alloc corruption. This requirement is not respected\nin SUNRPC.\n\nAdd a convenient helper, skb_free_datagram_locked() and use it in SUNRPC\n\nReported-by: Francis Moreau \u003cfrancis.moro@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8edf19c2fe028563fc6ea9cb1995b8ee4172d4b6",
      "tree": "55c423bc7e13e99e816d95886f7d340dc1163ffa",
      "parents": [
        "c720c7e8383aff1cb219bddf474ed89d850336e3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Oct 15 00:12:40 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 18 18:52:54 2009 -0700"
      },
      "message": "net: sk_drops consolidation part 2\n\n- skb_kill_datagram() can increment sk-\u003esk_drops itself, not callers.\n\n- UDP on IPV4 \u0026 IPV6 dropped frames (because of bad checksum or policy checks) increment sk_drops\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c720c7e8383aff1cb219bddf474ed89d850336e3",
      "tree": "4f12337e6690fccced376db9f501eaf98614a65e",
      "parents": [
        "988ade6b8e27e79311812f83a87b5cea11fabcd7"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Oct 15 06:30:45 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 18 18:52:53 2009 -0700"
      },
      "message": "inet: rename some inet_sock fields\n\nIn order to have better cache layouts of struct sock (separate zones\nfor rx/tx paths), we need this preliminary patch.\n\nGoal is to transfert fields used at lookup time in the first\nread-mostly cache line (inside struct sock_common) and move sk_refcnt\nto a separate cache line (only written by rx path)\n\nThis patch adds inet_ prefix to daddr, rcv_saddr, dport, num, saddr,\nsport and id fields. This allows a future patch to define these\nfields as macros, like sk_refcnt, without name clashes.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "766e9037cc139ee25ed93ee5ad11e1450c4b99f6",
      "tree": "062702b8edf203a6e91d1e6853ab24989617d758",
      "parents": [
        "48bccd25df71f4f8177cb800f4b288222eb57761"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Oct 14 20:40:11 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 14 20:40:11 2009 -0700"
      },
      "message": "net: sk_drops consolidation\n\nsock_queue_rcv_skb() can update sk_drops itself, removing need for\ncallers to take care of it. This is more consistent since\nsock_queue_rcv_skb() also reads sk_drops when queueing a skb.\n\nThis adds sk_drops managment to many protocols that not cared yet.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "421355de876b9f3fcc7e4cb6026e416fb12a5068",
      "tree": "fb814456af86c75e1eb9e330994dda461fc5b4f7",
      "parents": [
        "aace495933a981274b6491d71b915165a61defdc",
        "0fe7463a35aadfaf22d1ca58325ab3851b8d757c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 13 12:55:20 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 13 12:55:20 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "85584672012ee0c3b7b8e033a1ecf7c11878e45f",
      "tree": "f35b38f084453e2d7260d4a7a8d13f2a01641664",
      "parents": [
        "9652041da18a1a1d9a0b7ebd9eef16bd712be38a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 09 04:43:40 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 13 03:16:54 2009 -0700"
      },
      "message": "udp: Fix udp_poll() and ioctl()\n\nudp_poll() can in some circumstances drop frames with incorrect checksums.\n\nProblem is we now have to lock the socket while dropping frames, or risk\nsk_forward corruption.\n\nThis bug is present since commit 95766fff6b9a78d1\n([UDP]: Add memory accounting.)\n\nWhile we are at it, we can correct ioctl(SIOCINQ) to also drop bad frames.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3b885787ea4112eaa80945999ea0901bf742707f",
      "tree": "06fc15f8e8083d5652ccb4d06653d9812dce9c0b",
      "parents": [
        "d5e63bded6e819ca77ee1a1d97c783a31f6caf30"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Mon Oct 12 13:26:31 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 12 13:26:31 2009 -0700"
      },
      "message": "net: Generalize socket rx gap / receive queue overflow cmsg\n\nCreate a new socket level option to report number of queue overflows\n\nRecently I augmented the AF_PACKET protocol to report the number of frames lost\non the socket receive queue between any two enqueued frames.  This value was\nexported via a SOL_PACKET level cmsg.  AFter I completed that work it was\nrequested that this feature be generalized so that any datagram oriented socket\ncould make use of this option.  As such I\u0027ve created this patch, It creates a\nnew SOL_SOCKET level option called SO_RXQ_OVFL, which when enabled exports a\nSOL_SOCKET level cmsg that reports the nubmer of times the sk_receive_queue\noverflowed between any two given frames.  It also augments the AF_PACKET\nprotocol to take advantage of this new feature (as it previously did not touch\nsk-\u003esk_drops, which this patch uses to record the overflow count).  Tested\nsuccessfully by me.\n\nNotes:\n\n1) Unlike my previous patch, this patch simply records the sk_drops value, which\nis not a number of drops between packets, but rather a total number of drops.\nDeltas must be computed in user space.\n\n2) While this patch currently works with datagram oriented protocols, it will\nalso be accepted by non-datagram oriented protocols. I\u0027m not sure if thats\nagreeable to everyone, but my argument in favor of doing so is that, for those\nprotocols which aren\u0027t applicable to this option, sk_drops will always be zero,\nand reporting no drops on a receive queue that isn\u0027t used for those\nnon-participating protocols seems reasonable to me.  This also saves us having\nto code in a per-protocol opt in mechanism.\n\n3) This applies cleanly to net-next assuming that commit\n977750076d98c7ff6cbda51858bb5a5894a9d9ab (my af packet cmsg patch) is reverted\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f86dcc5aa8c7908f2c287e7a211228df599e3e71",
      "tree": "1721c94d0254b337b0668b2e331771dfef4b142d",
      "parents": [
        "8a6dfd43d1891882f8ca05d73aa7735fb0edae3b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Oct 07 00:37:59 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 07 22:00:22 2009 -0700"
      },
      "message": "udp: dynamically size hash tables at boot time\n\nUDP_HTABLE_SIZE was initialy defined to 128, which is a bit small for\nseveral setups.\n\n4000 active UDP sockets -\u003e 32 sockets per chain in average. An\nincoming frame has to lookup all sockets to find best match, so long\nchains hurt latency.\n\nInstead of a fixed size hash table that cant be perfect for every\nneeds, let UDP stack choose its table size at boot time like tcp/ip\nroute, using alloc_large_system_hash() helper\n\nAdd an optional boot parameter, uhash_entries\u003dx so that an admin can\nforce a size between 256 and 65536 if needed, like thash_entries and\nrhash_entries.\n\ndmesg logs two new lines :\n[    0.647039] UDP hash table entries: 512 (order: 0, 4096 bytes)\n[    0.647099] UDP Lite hash table entries: 512 (order: 0, 4096 bytes)\n\nMaximal size on 64bit arches would be 65536 slots, ie 1 MBytes for non\ndebugging spinlocks.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "914a9ab386a288d0f22252fc268ecbc048cdcbd5",
      "tree": "5bc164381e7ff1b55990288b67ae014b5ed668ea",
      "parents": [
        "66466797c7e2406579724e42eb9cfe05d53a882b"
      ],
      "author": {
        "name": "Atis Elsts",
        "email": "atis@mikrotik.com",
        "time": "Thu Oct 01 15:16:49 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 01 15:16:49 2009 -0700"
      },
      "message": "net: Use sk_mark for routing lookup in more places\n\nThis patch against v2.6.31 adds support for route lookup using sk_mark in some \nmore places. The benefits from this patch are the following.\nFirst, SO_MARK option now has effect on UDP sockets too.\nSecond, ip_queue_xmit() and inet_sk_rebuild_header() could fail to do routing \nlookup correctly if TCP sockets with SO_MARK were used.\n\nSigned-off-by: Atis Elsts \u003catis@mikrotik.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n"
    },
    {
      "commit": "b7058842c940ad2c08dd829b21e5c92ebe3b8758",
      "tree": "5fe78d599fc345ca0bcd4b083b79095a54b2921b",
      "parents": [
        "eb1cf0f8f7a9e5a6d573d5bd72c015686a042db0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 30 16:12:20 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 30 16:12:20 2009 -0700"
      },
      "message": "net: Make setsockopt() optlen be unsigned.\n\nThis provides safety against negative optlen at the type\nlevel instead of depending upon (sometimes non-trivial)\nchecks against this sprinkled all over the the place, in\neach and every implementation.\n\nBased upon work done by Arjan van de Ven and feedback\nfrom Linus Torvalds.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "6ce9e7b5fe3195d1ae6e3a0753d4ddcac5cd699e"
}
