)]}'
{
  "log": [
    {
      "commit": "a084980dcbf56c896e4b6c19aff2b082d5db7006",
      "tree": "2bdecde658ff928eff6e0f12ccba63217692d8de",
      "parents": [
        "104e0878984bb467e3f54d61105d8903babb4ec1"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Mar 23 11:28:30 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:51 2007 -0700"
      },
      "message": "[NET_SCHED]: kill PSCHED_SET_PASTPERFECT/PSCHED_IS_PASTPERFECT\n\nUse direct assignment and comparison instead.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "104e0878984bb467e3f54d61105d8903babb4ec1",
      "tree": "796a0b5d189582255c3510817491428671921d5c",
      "parents": [
        "7c59e25f3186f26e85b13a318dbc4482d1d363e9"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Mar 23 11:28:07 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:50 2007 -0700"
      },
      "message": "[NET_SCHED]: kill PSCHED_TLESS\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7c59e25f3186f26e85b13a318dbc4482d1d363e9",
      "tree": "b6cfda6d2e14879e3f4373d261b65b80d156d1c1",
      "parents": [
        "26e252df1e6e5b68eb790e4a4baf745aa3870038"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Mar 23 11:27:45 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:49 2007 -0700"
      },
      "message": "[NET_SCHED]: kill PSCHED_TADD/PSCHED_TADD2\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "26e252df1e6e5b68eb790e4a4baf745aa3870038",
      "tree": "e6895ca3ca0351efc9c7ae90a377cafc9fed5112",
      "parents": [
        "76d643cd3bd2b4a1e27e3eafee8e37be9c681792"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Mar 23 11:27:29 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:48 2007 -0700"
      },
      "message": "[NET_SCHED]: kill PSCHED_AUDIT_TDIFF\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1d00a4eb42bdade33a6ec0961cada93577a66ae6",
      "tree": "a181b141818f594eb544601386bf09e45e6193bb",
      "parents": [
        "45e7ae7f716086994e4e747226881f901c67b031"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Mar 22 23:30:12 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:30 2007 -0700"
      },
      "message": "[NETLINK]: Remove error pointer from netlink message handler\n\nThe error pointer argument in netlink message handlers is used\nto signal the special case where processing has to be interrupted\nbecause a dump was started but no error happened. Instead it is\nsimpler and more clear to return -EINTR and have netlink_run_queue()\ndeal with getting the queue right.\n\nnfnetlink passed on this error pointer to its subsystem handlers\nbut only uses it to signal the start of a netlink dump. Therefore\nit can be removed there as well.\n\nThis patch also cleans up the error handling in the affected\nmessage handlers to be consistent since it had to be touched anyway.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c454673da7c1d6533f40ec2f788023df9af56ebf",
      "tree": "004d329e049f3bdef09ff20623e24cba9f1fac12",
      "parents": [
        "687ad8cc640fd1f1619cc44a9ab274dabd48c758"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Sun Mar 25 23:24:24 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:17 2007 -0700"
      },
      "message": "[NET] rules: Unified rules dumping\n\nImplements a unified, protocol independant rules dumping function\nwhich is capable of both, dumping a specific protocol family or\nall of them. This speeds up dumping as less lookups are required.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c127ea2c45d1b13a672fde254679721bb282e90a",
      "tree": "01569ce9d6a250b3f3e311a02ea1890327c3a36f",
      "parents": [
        "fa34ddd739cecf3999ec0b7562618e8321829d41"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Mar 22 11:58:32 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:13 2007 -0700"
      },
      "message": "[IPv6]: Use rtnl registration interface\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fa34ddd739cecf3999ec0b7562618e8321829d41",
      "tree": "ddc3534b56faca48077922cddbbb79e9b5b0c1ea",
      "parents": [
        "708914cc5e1657eb1a1f9eefc6333dfd2df8c73a"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Mar 22 11:57:46 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:12 2007 -0700"
      },
      "message": "[DECNet]: Use rtnl registration interface\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nAcked-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "be577ddc2b4aca0849f701222f5bc13cf1b79c9a",
      "tree": "39ea6dcd40885a79cb1e3172b3299069156993f4",
      "parents": [
        "63f3444fb9a54c024d55f1205f8b94e7d2786595"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Mar 22 11:55:50 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:09 2007 -0700"
      },
      "message": "[PKT_SCHED] qdisc: Use rtnl registration interface\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "63f3444fb9a54c024d55f1205f8b94e7d2786595",
      "tree": "41cde0c702a2b4400a34f02380eb3baf1cc72a2b",
      "parents": [
        "9d9e6a5819230b5a5cc036f213135cb123ab1e50"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Mar 22 11:55:17 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:08 2007 -0700"
      },
      "message": "[IPv4]: Use rtnl registration interface\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d9e6a5819230b5a5cc036f213135cb123ab1e50",
      "tree": "e158bb0b82bdc88de053e09dd5f1897eae8536f3",
      "parents": [
        "c8822a4e00442e65d42d50db8e529d75c2025630"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Sun Mar 25 23:20:05 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:07 2007 -0700"
      },
      "message": "[NET] rules: Use rtnl registration interface\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c8822a4e00442e65d42d50db8e529d75c2025630",
      "tree": "127ce686af9e562e997d75ecabb6c7acca4c0b12",
      "parents": [
        "340d17fc9d577c93678850e46963e9b19b92db7e"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Mar 22 11:50:06 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:06 2007 -0700"
      },
      "message": "[NEIGH]: Use rtnl registration interface\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e284986385b6420a5f30f2dcd743512bbe1a3202",
      "tree": "aee0d30b618ada57371fddfcaeb47bbd767e16e3",
      "parents": [
        "30833ffead66e1f0052150a51db0b45151189ac1"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Mar 22 11:48:11 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:04 2007 -0700"
      },
      "message": "[RTNL]: Message handler registration interface\n\nThis patch adds a new interface to register rtnetlink message\nhandlers replacing the exported rtnl_links[] array which\nrequired many message handlers to be exported unnecessarly.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dc5fc579b90ed0a9a4e55b0218cdbaf0a8cf2e67",
      "tree": "673dbb425c2b09b4256ef71f89dfc5cc01944386",
      "parents": [
        "a36ca733375860b389c15ffdf6a5f92df64a33b6"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sun Mar 25 23:06:12 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:37 2007 -0700"
      },
      "message": "[NETLINK]: Use nlmsg_trim() where appropriate\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27a884dc3cb63b93c2b3b643f5b31eed5f8a4d26",
      "tree": "5a267e40f9b94014be38dad5de0a52b6628834e0",
      "parents": [
        "be8bd86321fa7f06359d866ef61fb4d2f3e9dce9"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Apr 19 20:29:13 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:28 2007 -0700"
      },
      "message": "[SK_BUFF]: Convert skb-\u003etail to sk_buff_data_t\n\nSo that it is also an offset from skb-\u003ehead, reduces its size from 8 to 4 bytes\non 64bit architectures, allowing us to combine the 4 bytes hole left by the\nlayer headers conversion, reducing struct sk_buff size to 256 bytes, i.e. 4\n64byte cachelines, and since the sk_buff slab cache is SLAB_HWCACHE_ALIGN...\n:-)\n\nMany calculations that previously required that skb-\u003e{transport,network,\nmac}_header be first converted to a pointer now can be done directly, being\nmeaningful as offsets or pointers.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "00c04af9df3d26e5a8093da850e982a7b6aeada7",
      "tree": "4764d2dd26f672f707fe513815a7745d03f46f43",
      "parents": [
        "fb983d4578e238b7f483b4f8f39f3a0f35d34d16"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Mar 16 01:23:02 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:14 2007 -0700"
      },
      "message": "[NET_SCHED]: kill jiffie conversion macros\n\nNow that all packet schedulers have been converted to hrtimers most users\nof PSCHED_JIFFIE2US and PSCHED_US2JIFFIE are gone. The remaining users use\nit to convert external time units to packet scheduler clock ticks, so use\nPSCHED_TICKS_PER_SEC instead.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4179477f637caa730626bd597fdf28c5bad73565",
      "tree": "cdaeaf817b34ee03b0f4b4203d675272f152947a",
      "parents": [
        "641b9e0e8b7f96425da6ce98f3361e3af0baee29"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Mar 16 01:19:15 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:05 2007 -0700"
      },
      "message": "[NET_SCHED]: Add hrtimer based qdisc watchdog\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "641b9e0e8b7f96425da6ce98f3361e3af0baee29",
      "tree": "2315fed3b4fd9df52a52464b9b1ce1561d403a87",
      "parents": [
        "ddc7b8e32b22fe8b45d306b7d99472d4b560add6"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Mar 16 01:18:42 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:04 2007 -0700"
      },
      "message": "[NET_SCHED]: Use ktime as clocksource\n\nGet rid of the manual clock source selection mess and use ktime. Also\nuse a scalar representation, which allows to clean up pkt_sched.h a bit\nmore and results in less ktime_to_ns() calls in most cases.\n\nThe PSCHED_US2JIFFIE/PSCHED_JIFFIE2US macros are implemented quite\ninefficient by this patch, following patches will convert all qdiscs\nto hrtimers and get rid of them entirely.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "010c7d6f867e98c86723f420d485583464fbab45",
      "tree": "5ee196dbe0709ba70dbf385c5b7cde78ffc7c90a",
      "parents": [
        "73c361862c2be2e4ed6019da283fe1b422107f16"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Mar 14 16:40:10 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:46 2007 -0700"
      },
      "message": "[NETFILTER]: nf_conntrack: uninline notifier registration functions\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a3c5029cf7a96da3acdf6884a21581b5bef310c3",
      "tree": "c599a8870e199562f4937193f2b3dc3d56a55145",
      "parents": [
        "c6a1e615d1ba942b9e783079d53f741e4a8e1c89"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Mar 14 16:39:25 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:43 2007 -0700"
      },
      "message": "[NETFILTER]: nfnetlink: use mutex instead of semaphore\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ac5357ebac43e191003c2cd0722377dccfa01a84",
      "tree": "a5a09bed344af07a68a95c2c4606a6c7eedc4748",
      "parents": [
        "b19caa0ca071dce76b0e81e957e7eb7c03d72cf5"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Mar 14 16:38:25 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:40 2007 -0700"
      },
      "message": "[NETFILTER]: nf_conntrack: remove ugly hack in l4proto registration\n\nRemove ugly special-casing of nf_conntrack_l4proto_generic, all it\nwants is its sysctl tables registered, so do that explicitly in an\ninit function and move the remaining protocol initialization and\ncleanup code to nf_conntrack_proto.c as well.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "587aa64163bb14f70098f450abab9410787fce9d",
      "tree": "399c00a969d9a8c7af13675583c5417282d18974",
      "parents": [
        "ce18afe57bf53477f133208856dd2b7e6b5db5e3"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Mar 14 16:37:25 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:34 2007 -0700"
      },
      "message": "[NETFILTER]: Remove IPv4 only connection tracking/NAT\n\nRemove the obsolete IPv4 only connection tracking/NAT as scheduled in\nfeature-removal-schedule.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9c70220b73908f64792422a2c39c593c4792f2c5",
      "tree": "2090ea10aaa2714a5e095bae8cc02e743c378a3a",
      "parents": [
        "a27ef749e7be3b06fb58df53d94eb97a21f18707"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 18:04:18 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:31 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_transport_header(skb)\n\nFor the places where we need a pointer to the transport header, it is\nstill legal to touch skb-\u003eh.raw directly if just adding to,\nsubtracting from or setting it to another layer header.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aa8223c7bb0b05183e1737881ed21827aa5b9e73",
      "tree": "05c9832326edfeb878472f15cf8133ed9f014cdf",
      "parents": [
        "ab6a5bb6b28a970104a34f0f6959b73cf61bdc72"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 10 21:04:22 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:26 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce tcp_hdr(), remove skb-\u003eh.th\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4bedb45203eab92a87b4c863fe2d0cded633427f",
      "tree": "d46e43d0a08253cf85ee2db64df6aee5e4ff5a07",
      "parents": [
        "d9edf9e2be0f7661558984c32bd53867a7037fd3"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Mar 13 14:28:48 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:22 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce udp_hdr(), remove skb-\u003eh.uh\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ea2ae17d6443abddc79480dc9f7af8feacabddc4",
      "tree": "2d6f48a5e4a40f761b5b510af9aac1fca55004cb",
      "parents": [
        "badff6d01a8589a1c828b0bf118903ca38627f4e"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 17:55:53 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:16 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_transport_offset()\n\nFor the quite common \u0027skb-\u003eh.raw - skb-\u003edata\u0027 sequence.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0660e03f6b18f19b6bbafe7583265a51b90daf36",
      "tree": "82cc819ead5ab7858ba211ee8719a3e6d2bb984f",
      "parents": [
        "d0a92be05ed4aea7d35c2b257e3f9173565fe4eb"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 17:54:47 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:14 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce ipv6_hdr(), remove skb-\u003enh.ipv6h\n\nNow the skb-\u003enh union has just one member, .raw, i.e. it is just like the\nskb-\u003emac union, strange, no? I\u0027m just leaving it like that till the transport\nlayer is done with, when we\u0027ll rename skb-\u003emac.raw to skb-\u003emac_header (or\n-\u003emac_header_offset?), ditto for -\u003e{h,nh}.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eddc9ec53be2ecdbf4efe0efd4a83052594f0ac0",
      "tree": "4a38ab4dbd9d61fdf5a5ea6ed61463e0b9e33ba7",
      "parents": [
        "e023dd643798c4f06c16466af90b4d250e4b8bd7"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Apr 20 22:47:35 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:10 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce ip_hdr(), remove skb-\u003enh.iph\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c9bdd4b5257406b0608385d19c40b5511decf4f6",
      "tree": "fe5319c322a11c0b00e7ef0473762a8d1961da83",
      "parents": [
        "0272ffc46f81a4bbbf302ba093c737e969c5bb55"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 12 20:09:15 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:07 2007 -0700"
      },
      "message": "[IP]: Introduce ip_hdrlen()\n\nFor the common sequence \"skb-\u003enh.iph-\u003eihl * 4\", removing a good number of open\ncoded skb-\u003enh.iph uses, now to go after the rest...\n\nJust out of curiosity, here are the idioms found to get the same result:\n\nskb-\u003enh.iph-\u003eihl \u003c\u003c 2\nskb-\u003enh.iph-\u003eihl\u003c\u003c2\nskb-\u003enh.iph-\u003eihl * 4\nskb-\u003enh.iph-\u003eihl*4\n(skb-\u003enh.iph)-\u003eihl * sizeof(u32)\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d56f90a7c96da5187f0cdf07ee7434fe6aa78bbc",
      "tree": "3b9073cecfbb3b6a1e25ab2b5dd2a22a43aef238",
      "parents": [
        "bbe735e4247dba32568a305553b010081c8dea99"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 10 20:50:43 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:59 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_network_header()\n\nFor the places where we need a pointer to the network header, it is still legal\nto touch skb-\u003enh.raw directly if just adding to, subtracting from or setting it\nto another layer header.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1d2bbe1cd6c7bbdc6d532cefebb66c7efb789ce",
      "tree": "03a715961ba576a11cbc0e91c5d465e4c4d95d82",
      "parents": [
        "57effc70a5be9f7804e9a99964eb7265367effca"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 10 20:45:18 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:46 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_reset_network_header(skb)\n\nFor the common, open coded \u0027skb-\u003enh.raw \u003d skb-\u003edata\u0027 operation, so that we can\nlater turn skb-\u003enh.raw into a offset, reducing the size of struct sk_buff in\n64bit land while possibly keeping it as a pointer on 32bit.\n\nThis one touches just the most simple case, next will handle the slightly more\n\"complex\" cases.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "37e6636669b0b996681586facee8034f7f674f6a",
      "tree": "4ab874ffd5b5408aa0d8bf59b3dcdb0c89b9b770",
      "parents": [
        "98e399f82ab3a6d863d1d4a7ea48925cc91c830e"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 15:34:36 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:42 2007 -0700"
      },
      "message": "[LLC]: Kill llc_set_pdu_hdr\n\nWe\u0027ll have skb_reset_network_header soon.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "459a98ed881802dee55897441bc7f77af614368e",
      "tree": "b81f76632d8f2e21eb91ec3d885091a98398d93e",
      "parents": [
        "4c13eb6657fe9ef7b4dc8f1a405c902e9e5234e0"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 19 15:30:44 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:32 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_reset_mac_header(skb)\n\nFor the common, open coded \u0027skb-\u003emac.raw \u003d skb-\u003edata\u0027 operation, so that we can\nlater turn skb-\u003emac.raw into a offset, reducing the size of struct sk_buff in\n64bit land while possibly keeping it as a pointer on 32bit.\n\nThis one touches just the most simple case, next will handle the slightly more\n\"complex\" cases.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "92f37fd2ee805aa77925c1e64fd56088b46094fc",
      "tree": "8251c38b83ab362116dac89d94412ce229b42831",
      "parents": [
        "c7a3c5da35055e2fa97ed4f0da3eec4bd0ef4c38"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Mar 25 22:14:49 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:21 2007 -0700"
      },
      "message": "[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support\n\nNow that network timestamps use ktime_t infrastructure, we can add a new\nSOL_SOCKET sockopt  SO_TIMESTAMPNS.\n\nThis command is similar to SO_TIMESTAMP, but permits transmission of\na \u0027timespec struct\u0027 instead of a \u0027timeval struct\u0027 control message.\n(nanosecond resolution instead of microsecond)\n\nControl message is labelled SCM_TIMESTAMPNS instead of SCM_TIMESTAMP\n\nA socket cannot mix SO_TIMESTAMP and SO_TIMESTAMPNS : the two modes are\nmutually exclusive.\n\nsock_recv_timestamp() became too big to be fully inlined so I added a\n__sock_recv_timestamp() helper function.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCC: linux-arch@vger.kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a2a316fd068c455c609ecc155dcfaa7e208d29fe",
      "tree": "9839e2c7e05e9d25241fa7c7b27fd06214120292",
      "parents": [
        "ae40eb1ef30ab4120bd3c8b7e3da99ee53d27a23"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Thu Mar 08 20:41:08 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:05 2007 -0700"
      },
      "message": "[NET]: Replace CONFIG_NET_DEBUG with sysctl.\n\nCovert network warning messages from a compile time to runtime choice.\nRemoves kernel config option and replaces it with new /proc/sys/net/core/warnings.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ae40eb1ef30ab4120bd3c8b7e3da99ee53d27a23",
      "tree": "b5ae288b3c27d13bde9648c41d7db3cfe1884bc2",
      "parents": [
        "cb69cc52364690d7789940c480b3a9490784b680"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Mar 18 17:33:16 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:04 2007 -0700"
      },
      "message": "[NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution\n\nNow network timestamps use ktime_t infrastructure, we can add a new\nioctl() SIOCGSTAMPNS command to get timestamps in \u0027struct timespec\u0027.\nUser programs can thus access to nanosecond resolution.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCC: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fe067e8ab5e0dc5ca3c54634924c628da92090b4",
      "tree": "98f5a6ebbb770f16682cfc52caea2da1e7eeb73b",
      "parents": [
        "02ea4923b4997d7e1310c027081f46d584b9d714"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Mar 07 12:12:44 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:02 2007 -0700"
      },
      "message": "[TCP]: Abstract out all write queue operations.\n\nThis allows the write queue implementation to be changed,\nfor example, to one which allows fast interval searching.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "759e5d006462d53fb708daa8284b4ad909415da1",
      "tree": "edcc4e9d975199b3fe5e2aadc3d1e06824755e75",
      "parents": [
        "1ab6eb62b02e0949a392fb19bf31ba59ae1022b1"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Mar 25 20:10:56 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:51 2007 -0700"
      },
      "message": "[UDP]: Clean up UDP-Lite receive checksum\n\nThis patch eliminates some duplicate code for the verification of\nreceive checksums between UDP-Lite and UDP.  It does this by\nintroducing __skb_checksum_complete_head which is identical to\n__skb_checksum_complete_head apart from the fact that it takes\na length parameter rather than computing the first skb-\u003elen bytes.\n\nAs a result UDP-Lite will be able to use hardware checksum offload\nfor packets which do not use partial coverage checksums.  It also\nmeans that UDP-Lite loopback no longer does unnecessary checksum\nverification.\n\nIf any NICs start support UDP-Lite this would also start working\nautomatically.\n\nThis patch removes the assumption that msg_flags has MSG_TRUNC clear\nupon entry in recvmsg.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "95c385b4d5a71b8ad552aecaa968ea46d7da2f6a",
      "tree": "49d8e60418cb4eeb0c9ed79fd095af50f6ec6623",
      "parents": [
        "502b093569e48db264831be7966e1c447de2f52f"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Wed Apr 25 17:08:10 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:43 2007 -0700"
      },
      "message": "[IPV6] ADDRCONF: Optimistic Duplicate Address Detection (RFC 4429) Support.\n\nNominally an autoconfigured IPv6 address is added to an interface in the\nTentative state (as per RFC 2462).  Addresses in this state remain in this\nstate while the Duplicate Address Detection process operates on them to\ndetermine their uniqueness on the network.  During this period, these\ntentative addresses may not be used for communication, increasing the time\nbefore a node may be able to communicate on a network.  Using Optimistic\nDuplicate Address Detection, autoconfigured addresses may be used\nimmediately for communication on the network, as long as certain rules are\nfollowed to avoid conflicts with other nodes during the Duplicate Address\nDetection process.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b7aa0bf70c4afb9e38be25f5c0922498d0f8684c",
      "tree": "4bc9d61031f4eb40d73887d6bde09e7d6bf2b259",
      "parents": [
        "3927f2e8f9afa3424bb51ca81f7abac01ffd0005"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Apr 19 16:16:32 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:34 2007 -0700"
      },
      "message": "[NET]: convert network timestamps to ktime_t\n\nWe currently use a special structure (struct skb_timeval) and plain\n\u0027struct timeval\u0027 to store packet timestamps in sk_buffs and struct\nsock.\n\nThis has some drawbacks :\n- Fixed resolution of micro second.\n- Waste of space on 64bit platforms where sizeof(struct timeval)\u003d16\n\nI suggest using ktime_t that is a nice abstraction of high resolution\ntime services, currently capable of nanosecond resolution.\n\nAs sizeof(ktime_t) is 8 bytes, using ktime_t in \u0027struct sock\u0027 permits\na 8 byte shrink of this structure on 64bit architectures. Some other\nstructures also benefit from this size reduction (struct ipq in\nipv4/ip_fragment.c, struct frag_queue in ipv6/reassembly.c, ...)\n\nOnce this ktime infrastructure adopted, we can more easily provide\nnanosecond resolution on top of it. (ioctl SIOCGSTAMPNS and/or\nSO_TIMESTAMPNS/SCM_TIMESTAMPNS)\n\nNote : this patch includes a bug correction in\ncompat_sock_get_timestamp() where a \"err \u003d 0;\" was missing (so this\nsyscall returned -ENOENT instead of 0)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCC: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nCC: John find \u003clinux.kernel@free.fr\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d729f72dca9406025bcfa9c1f660d71d9ef0ff5",
      "tree": "69a3ca50c6e266853676a545a113f13f254ae535",
      "parents": [
        "39df232f1a9ba48d41c68ee7d4046756e709cf91"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sun Mar 04 16:12:44 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:32 2007 -0700"
      },
      "message": "[NET]: Convert xtime.tv_sec to get_seconds()\n\nWhere appropriate, convert references to xtime.tv_sec to the\nget_seconds() helper function.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fa438ccfdfd3f6db02c13b61b21454eb81cd6a13",
      "tree": "a1759259d7543586185e2fb9db21461147944f18",
      "parents": [
        "e317f6f69cb95527799d308a9421b7dc1252989a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Mar 04 16:05:44 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:27 2007 -0700"
      },
      "message": "[NET]: Keep sk_backlog near sk_lock\n\nsk_backlog is a critical field of struct sock. (known famous words)\n\nIt is (ab)used in hot paths, in particular in release_sock(), tcp_recvmsg(),\ntcp_v4_rcv(), sk_receive_skb().\n\nIt really makes sense to place it next to sk_lock, because sk_backlog is only\nused after sk_lock locked (and thus memory cache line in L1 cache). This\nshould reduce cache misses and sk_lock acquisition time.\n\n(In theory, we could only move the head pointer near sk_lock, and leaving tail\nfar away, because \u0027tail\u0027 is normally not so hot, but keep it simple :) )\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3cfe3baaf07c9e40a75f9a70662de56df1c246a8",
      "tree": "989b2aff491b5df3aa0215f611a8c7f1360c67e9",
      "parents": [
        "c5e7af0df5d7234afd8596560d9f570cfc6c18bf"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Tue Feb 27 10:09:49 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:23 2007 -0700"
      },
      "message": "[TCP]: Add two new spurious RTO responses to FRTO\n\nNew sysctl tcp_frto_response is added to select amongst these\nresponses:\n\t- Rate halving based; reuses CA_CWR state (default)\n\t- Very conservative; used to be the only one available (\u003d1)\n\t- Undo cwr; undoes ssthresh and cwnd reductions (\u003d2)\n\nThe response with rate halving requires a new parameter to\ntcp_enter_cwr because FRTO has already reduced ssthresh and\ndoing a second reduction there has to be prevented. In addition,\nto keep things nice on 80 cols screen, a local variable was\nadded.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "886236c1247ab5e2ad9c73f6e9a652e3ae3c8b07",
      "tree": "f0ab2d6f6b6c98c6042be100db752c2d492669ae",
      "parents": [
        "5ef814753eb810d900fbd77af7c87f6d04f0e551"
      ],
      "author": {
        "name": "John Heffner",
        "email": "jheffner@psc.edu",
        "time": "Sun Mar 25 19:21:45 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:19 2007 -0700"
      },
      "message": "[TCP]: Add RFC3742 Limited Slow-Start, controlled by variable sysctl_tcp_max_ssthresh.\n\nSigned-off-by: John Heffner \u003cjheffner@psc.edu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "46d0de4ed92650b95f27acae09914996bbe624e7",
      "tree": "455e6a9772294ef16a88800709685797e1779b75",
      "parents": [
        "7c9a4a5b67926dd186d427bc5b9fce6ccbde154c"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:10:39 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:12 2007 -0700"
      },
      "message": "[TCP] FRTO: Entry is allowed only during (New)Reno like recovery\n\nThis interpretation comes from RFC4138:\n    \"If the sender implements some loss recovery algorithm other\n     than Reno or NewReno [FHG04], the F-RTO algorithm SHOULD\n     NOT be entered when earlier fast recovery is underway.\"\n\nI think the RFC means to say (especially in the light of\nAppendix B) that ...recovery is underway (not just fast recovery)\nor was underway when it was interrupted by an earlier (F-)RTO\nthat hasn\u0027t yet been resolved (snd_una has not advanced enough).\nThus, my interpretation is that whenever TCP has ever\nretransmitted other than head, basic version cannot be used\nbecause then the order assumptions which are used as FRTO basis\ndo not hold.\n\nNewReno has only the head segment retransmitted at a time.\nTherefore, walk up to the segment that has not been SACKed, if\nthat segment is not retransmitted nor anything before it, we know\nfor sure, that nothing after the non-SACKed segment should be\neither. This assumption is valid because TCPCB_EVER_RETRANS does\nnot leave holes but each non-SACKed segment is rexmitted\nin-order.\n\nCheck for retrans_out \u003e 1 avoids more expensive walk through the\nskb list, as we can know the result beforehand: F-RTO will not be\nallowed.\n\nSACKed skb can turn into non-SACked only in the extremely rare\ncase of SACK reneging, in this case we might fail to detect\nretransmissions if there were them for any other than head. To\nget rid of that feature, whole rexmit queue would have to be\nwalked (always) or FRTO should be prevented when SACK reneging\nhappens. Of course RTO should still trigger after reneging which\nmakes this issue even less likely to show up. And as long as the\nresponse is as conservative as it\u0027s now, nothing bad happens even\nthen.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bdaae17da81db79b9aa4dfbf43305cfeef64f6a8",
      "tree": "5dce126ae84073646c15417c30bd1b6b13660784",
      "parents": [
        "9ead9a1d385ae2c52a6dcf2828d84ce66be04fc2"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 22:59:58 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:02 2007 -0700"
      },
      "message": "[TCP] FRTO: Moved tcp_use_frto from tcp.h to tcp_input.c\n\nIn addition, removed inline.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c01003c20563d1e75ec9828d21743919d2b43977",
      "tree": "21cae8933e8a4908d8e8c24244a627bf0c997e77",
      "parents": [
        "db8b22550d4b83f0910d27a34d05aa16f7f7159f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Mar 29 11:46:52 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 29 11:46:52 2007 -0700"
      },
      "message": "[IFB]: Fix crash on input device removal\n\nThe input_device pointer is not refcounted, which means the device may\ndisappear while packets are queued, causing a crash when ifb passes packets\nwith a stale skb-\u003edev pointer to netif_rx().\n\nFix by storing the interface index instead and do a lookup where neccessary.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a9c87a10db08f53c5220f273d518390cbaeb55c8",
      "tree": "02c62caea88ffae0c4ad945df0d60996d8e5d2f1",
      "parents": [
        "c14bac628b9fad6fd4dad8fbb9e864c61a8924c9",
        "c2805fbb8630abb95d94ce7adc3f97976f7e0367"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Mar 28 02:21:18 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Mar 28 02:21:18 2007 -0400"
      },
      "message": "Merge branch \u0027upstream-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into upstream-fixes\n"
    },
    {
      "commit": "c2805fbb8630abb95d94ce7adc3f97976f7e0367",
      "tree": "ca94be7f103d430d38ef6543db597e90f3a63999",
      "parents": [
        "ed4bb1063171b2f44a40b0a9c400dedb0590dce6"
      ],
      "author": {
        "name": "Jean Tourrilhes",
        "email": "jt@hpl.hp.com",
        "time": "Fri Mar 23 00:31:16 2007 +0000"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Mar 27 14:10:26 2007 -0400"
      },
      "message": "[PATCH] WE-22 : prevent information leak on 64 bit\n\n \tJohannes Berg discovered that kernel space was leaking to\nuserspace on 64 bit platform. He made a first patch to fix that. This\nis an improved version of his patch.\n\nSigned-off-by: Jean Tourrilhes \u003cjt@hpl.hp.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f11e6659ce9058928d73ff440f9b40a818d628ab",
      "tree": "00b7b33eec4c8e5ade0be1d7a6fc8a8f74b383da",
      "parents": [
        "a979101106f549f4ed80d6dcbc35077be34d4346"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Mar 24 20:36:25 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Mar 25 18:48:05 2007 -0700"
      },
      "message": "[IPV6]: Fix routing round-robin locking.\n\nAs per RFC2461, section 6.3.6, item #2, when no routers on the\nmatching list are known to be reachable or probably reachable we\ndo round robin on those available routes so that we make sure\nto probe as many of them as possible to detect when one becomes\nreachable faster.\n\nEach routing table has a rwlock protecting the tree and the linked\nlist of routes at each leaf.  The round robin code executes during\nlookup and thus with the rwlock taken as a reader.  A small local\nspinlock tries to provide protection but this does not work at all\nfor two reasons:\n\n1) The round-robin list manipulation, as coded, goes like this (with\n   read lock held):\n\n\twalk routes finding head and tail\n\n\tspin_lock();\n\trotate list using head and tail\n\tspin_unlock();\n\n   While one thread is rotating the list, another thread can\n   end up with stale values of head and tail and then proceed\n   to corrupt the list when it gets the lock.  This ends up causing\n   the OOPS in fib6_add() later onthat many people have been hitting.\n\n2) All the other code paths that run with the rwlock held as\n   a reader do not expect the list to change on them, they\n   expect it to remain completely fixed while they hold the\n   lock in that way.\n\nSo, simply stated, it is impossible to implement this correctly using\na manipulation of the list without violating the rwlock locking\nsemantics.\n\nReimplement using a per-fib6_node round-robin pointer.  This way we\ndon\u0027t need to manipulate the list at all, and since the round-robin\npointer can only ever point to real existing entries we don\u0027t need\nto perform any locking on the changing of the round-robin pointer\nitself.  We only need to reset the round-robin pointer to NULL when\nthe entry it is pointing to is removed.\n\nThe idea is from Thomas Graf and it is very similar to how this\nwas implemented before the advanced router selection code when in.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ecbb416939da77c0d107409976499724baddce7b",
      "tree": "313f786f9f4d5fec3f016c292dea1705924fa9b6",
      "parents": [
        "e1701c68c1d1aeb3213d7016593ea9a1d4309417"
      ],
      "author": {
        "name": "Alexey Kuznetsov",
        "email": "kuznet@ms2.inr.ac.ru",
        "time": "Sat Mar 24 12:52:16 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Mar 25 18:48:01 2007 -0700"
      },
      "message": "[NET]: Fix neighbour destructor handling.\n\n-\u003eneigh_destructor() is killed (not used), replaced with\n-\u003eneigh_cleanup(), which is called when neighbor entry goes to dead\nstate. At this point everything is still valid: neigh-\u003edev,\nneigh-\u003eparms etc.\n\nThe device should guarantee that dead neighbor entries (neigh-\u003edead !\u003d\n0) do not get private part initialized, otherwise nobody will cleanup\nit.\n\nI think this is enough for ipoib which is the only user of this thing.\nInitialization private part of neighbor entries happens in ipib\nstart_xmit routine, which is not reached when device is down.  But it\nwould be better to add explicit test for neigh-\u003edead in any case.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e1701c68c1d1aeb3213d7016593ea9a1d4309417",
      "tree": "96dc2e47b36589636b15602dcdcfd2ea426260b7",
      "parents": [
        "5f85813c33ddbf6d11ccfdbcc01f176e24a76bd2"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Sat Mar 24 12:46:02 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Mar 25 18:48:00 2007 -0700"
      },
      "message": "[NET]: Fix fib_rules compatibility breakage\n\nBased upon a patch from Patrick McHardy.\n\nThe fib_rules netlink attribute policy introduced in 2.6.19 broke\nuserspace compatibilty. When specifying a rule with \"from all\"\nor \"to all\", iproute adds a zero byte long netlink attribute,\nbut the policy requires all addresses to have a size equal to\nsizeof(struct in_addr)/sizeof(struct in6_addr), resulting in a\nvalidation error.\n\nCheck attribute length of FRA_SRC/FRA_DST in the generic framework\nby letting the family specific rules implementation provide the\nlength of an address. Report an error if address length is non\nzero but no address attribute is provided. Fix actual bug by\nchecking address length for non-zero instead of relying on\navailability of attribute.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "749bf9215ed1a8b6edb4bb03693c2b62c6b9c2a4",
      "tree": "d5656c441181fddef41392a4aa07f54e56487312",
      "parents": [
        "fb78525ae1b75bfac1da600ceb008aef4d293649"
      ],
      "author": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Mar 19 17:02:30 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Mar 20 00:09:45 2007 -0700"
      },
      "message": "[SCTP]: Reset some transport and association variables on restart\n\nIf the association has been restarted, we need to reset the\ntransport congestion variables as well as accumulated error\ncounts and CACC variables.  If we do not, the association\nwill use the wrong values and may terminate prematurely.\n\nThis was found with a scenario where the peer restarted\nthe association when lksctp was in the last HB timeout for\nits association.  The restart happened, but the error counts\nhave not been reset and when the timeout occurred, a newly\nrestarted association was terminated due to excessive\nretransmits.\n\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nSigned-off-by: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0b58a811461ccf3cf848aba4cc192538fd3b0516",
      "tree": "e8ada90819aabdcc2041a5637c7e6f44446cc36b",
      "parents": [
        "c577c2b99387b5ff8607d42d6eaff9ec024d4773"
      ],
      "author": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Mar 19 17:01:17 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Mar 20 00:09:43 2007 -0700"
      },
      "message": "[SCTP]: Clean up stale data during association restart\n\nDuring association restart we may have stale data sitting\non the ULP queue waiting for ordering or reassembly.  This\ndata may cause severe problems if not cleaned up.  In particular\nstale data pending ordering may cause problems with receive\nwindow exhaustion if our peer has decided to restart the\nassociation.\n\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nSigned-off-by: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ef41aaa0b755f479012341ac11db9ca5b8928d98",
      "tree": "f5cd83b9117d0092f40006fbf4fd1f39652ad925",
      "parents": [
        "05e52dd7396514648fba6c275eb7b49eca333c6d"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Mar 07 15:37:58 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Mar 07 16:08:09 2007 -0800"
      },
      "message": "[IPSEC]: xfrm_policy delete security check misplaced\n\nThe security hooks to check permissions to remove an xfrm_policy were\nactually done after the policy was removed.  Since the unlinking and\ndeletion are done in xfrm_policy_by* functions this moves the hooks\ninside those 2 functions.  There we have all the information needed to\ndo the security check and it can be done before the deletion.  Since\nauditing requires the result of that security check err has to be passed\nback and forth from the xfrm_policy_by* functions.\n\nThis patch also fixes a bug where a deletion that failed the security\ncheck could cause improper accounting on the xfrm_policy\n(xfrm_get_policy didn\u0027t have a put on the exit path for the hold taken\nby xfrm_policy_by*)\n\nIt also fixes the return code when no policy is found in\nxfrm_add_pol_expire.  In old code (at least back in the 2.6.18 days) err\nwasn\u0027t used before the return when no policy is found and so the\ninitialization would cause err to be ENOENT.  But since err has since\nbeen used above when we don\u0027t get a policy back from the xfrm_policy_by*\nfunction we would always return 0 instead of the intended ENOENT.  Also\nfixed some white space damage in the same area.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Venkat Yekkirala \u003cvyekkirala@trustedcs.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "64a146513f8f12ba204b7bf5cb7e9505594ead42",
      "tree": "849f875501ac6f08cf309c5b13cf21ed687974e2",
      "parents": [
        "187f5f84ef14a07dccf5f4503099708d60f6a724"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Mar 06 11:21:05 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Mar 06 11:21:05 2007 -0800"
      },
      "message": "[NET]: Revert incorrect accept queue backlog changes.\n\nThis reverts two changes:\n\n8488df894d05d6fa41c2bd298c335f944bb0e401\n248f06726e866942b3d8ca8f411f9067713b7ff8\n\nA backlog value of N really does mean allow \"N + 1\" connections\nto queue to a listening socket.  This allows one to specify\n\"0\" as the backlog and still get 1 connection.\n\nNoticed by Gerrit Renker and Rick Jones.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "187f5f84ef14a07dccf5f4503099708d60f6a724",
      "tree": "48a5eb98ae3ed43459bed508bcbd7deb518b86af",
      "parents": [
        "122d76bd872d07d428f94c509428a65476e9b1af"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Mon Mar 05 13:32:48 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 05 13:32:48 2007 -0800"
      },
      "message": "[INET]: twcal_jiffie should be unsigned long, not int\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ec68e97dedacc1c7fb20a4b23b7fa76bee56b5ff",
      "tree": "767bc5044351af36ae97e3975a981ef03ff15382",
      "parents": [
        "c3442e296517aee733d62fc3fe03211598902c7d"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sun Mar 04 15:57:01 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Mar 05 13:25:18 2007 -0800"
      },
      "message": "[NETFILTER]: conntrack: fix {nf,ip}_ct_iterate_cleanup endless loops\n\nFix {nf,ip}_ct_iterate_cleanup unconfirmed list handling:\n\n- unconfirmed entries can not be killed manually, they are removed on\n  confirmation or final destruction of the conntrack entry, which means\n  we might iterate forever without making forward progress.\n\n  This can happen in combination with the conntrack event cache, which\n  holds a reference to the conntrack entry, which is only released when\n  the packet makes it all the way through the stack or a different\n  packet is handled.\n\n- taking references to an unconfirmed entry and using it outside the\n  locked section doesn\u0027t work, the list entries are not refcounted and\n  another CPU might already be waiting to destroy the entry\n\nWhat the code really wants to do is make sure the references of the hash\ntable to the selected conntrack entries are released, so they will be\ndestroyed once all references from skbs and the event cache are dropped.\n\nSince unconfirmed entries haven\u0027t even entered the hash yet, simply mark\nthem as dying and skip confirmation based on that.\n\nReported and tested by Chuck Ebbert \u003ccebbert@redhat.com\u003e\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8488df894d05d6fa41c2bd298c335f944bb0e401",
      "tree": "2d79c5c57a71833a1c55f1d39e6628f486ed2539",
      "parents": [
        "bb648a0d22908116b4ef168935a160d7f17c4e6d"
      ],
      "author": {
        "name": "Wei Dong",
        "email": "weid@np.css.fujitsu.com",
        "time": "Fri Mar 02 12:37:26 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Mar 02 20:37:33 2007 -0800"
      },
      "message": "[NET]: Fix bugs in \"Whether sock accept queue is full\" checking\n\n\twhen I use linux TCP socket, and find there is a bug in function\nsk_acceptq_is_full().\n\n\tWhen a new SYN comes, TCP module first checks its validation. If valid,\nsend SYN,ACK to the client and add the sock to the syn hash table. Next\ntime if received the valid ACK for SYN,ACK from the client. server will\naccept this connection and increase the sk-\u003esk_ack_backlog -- which is\ndone in function tcp_check_req().We check wether acceptq is full in\nfunction tcp_v4_syn_recv_sock().\n\nConsider an example:\n\n After listen(sockfd, 1) system call, sk-\u003esk_max_ack_backlog is set to\n1. As we know, sk-\u003esk_ack_backlog is initialized to 0. Assuming accept()\nsystem call is not invoked now.\n\n1. 1st connection comes. invoke sk_acceptq_is_full(). sk-\n\u003esk_ack_backlog\u003d0 sk-\u003esk_max_ack_backlog\u003d1, function return 0 accept\nthis connection. Increase the sk-\u003esk_ack_backlog\n2. 2nd connection comes. invoke sk_acceptq_is_full(). sk-\n\u003esk_ack_backlog\u003d1 sk-\u003esk_max_ack_backlog\u003d1, function return 0 accept\nthis connection. Increase the sk-\u003esk_ack_backlog\n3. 3rd connection comes. invoke sk_acceptq_is_full(). sk-\n\u003esk_ack_backlog\u003d2 sk-\u003esk_max_ack_backlog\u003d1, function return 1. Refuse\nthis connection.\n\nI think it has bugs. after listen system call. sk-\u003esk_max_ack_backlog\u003d1\nbut now it can accept 2 connections.\n\nSigned-off-by: Wei Dong \u003cweid@np.css.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4498121ca3acbf928681b71261227d28dc29b6f6",
      "tree": "f6947b8bf2cee22498fcea4e9c447c4eed4b6998",
      "parents": [
        "6548cda289b549ed60c35f16a0051609aeee2fd0"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Feb 27 09:56:42 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Feb 28 09:42:13 2007 -0800"
      },
      "message": "[NET]: Handle disabled preemption in gfp_any()\n\nctnetlink uses netlink_unicast from an atomic_notifier_chain\n(which is called within a RCU read side critical section)\nwithout holding further locks. netlink_unicast calls netlink_trim\nwith the result of gfp_any() for the gfp flags, which are passed\ndown to pskb_expand_header. gfp_any() only checks for softirq\ncontext and returns GFP_KERNEL, resulting in this warning:\n\nBUG: sleeping function called from invalid context at mm/slab.c:3032\nin_atomic():1, irqs_disabled():0\nno locks held by rmmod/7010.\n\nCall Trace:\n [\u003cffffffff8109467f\u003e] debug_show_held_locks+0x9/0xb\n [\u003cffffffff8100b0b4\u003e] __might_sleep+0xd9/0xdb\n [\u003cffffffff810b5082\u003e] __kmalloc+0x68/0x110\n [\u003cffffffff811ba8f2\u003e] pskb_expand_head+0x4d/0x13b\n [\u003cffffffff81053147\u003e] netlink_broadcast+0xa5/0x2e0\n [\u003cffffffff881cd1d7\u003e] :nfnetlink:nfnetlink_send+0x83/0x8a\n [\u003cffffffff8834f6a6\u003e] :nf_conntrack_netlink:ctnetlink_conntrack_event+0x94c/0x96a\n [\u003cffffffff810624d6\u003e] notifier_call_chain+0x29/0x3e\n [\u003cffffffff8106251d\u003e] atomic_notifier_call_chain+0x32/0x60\n [\u003cffffffff881d266d\u003e] :nf_conntrack:destroy_conntrack+0xa5/0x1d3\n [\u003cffffffff881d194e\u003e] :nf_conntrack:nf_ct_cleanup+0x8c/0x12c\n [\u003cffffffff881d4614\u003e] :nf_conntrack:kill_l3proto+0x0/0x13\n [\u003cffffffff881d482a\u003e] :nf_conntrack:nf_conntrack_l3proto_unregister+0x90/0x94\n [\u003cffffffff883551b3\u003e] :nf_conntrack_ipv4:nf_conntrack_l3proto_ipv4_fini+0x2b/0x5d\n [\u003cffffffff8109d44f\u003e] sys_delete_module+0x1b5/0x1e6\n [\u003cffffffff8105f245\u003e] trace_hardirqs_on_thunk+0x35/0x37\n [\u003cffffffff8105911e\u003e] system_call+0x7e/0x83\n\nSince netlink_unicast is supposed to be callable from within RCU\nread side critical sections, make gfp_any() check for in_atomic()\ninstead of in_softirq().\n\nAdditionally nfnetlink_send needs to use gfp_any() as well for the\ncall to netlink_broadcast).\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a39a21982c53846acb3bee1a23764a387160a4c8",
      "tree": "4920492b72217a5bfdf159bfc85339190de7f646",
      "parents": [
        "2312119afbce0108a72a1e09015a37308f7c7212"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Feb 20 01:06:40 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Feb 26 11:42:43 2007 -0800"
      },
      "message": "[IRDA] net/irda/: proper prototypes\n\nThis patch adds proper prototypes for some functions in\ninclude/net/irda/irda.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "73d605d1abbd70ef67b7660cf2ff177259960756",
      "tree": "3b183bc597044785eef7cc8efefb41fbac097bf5",
      "parents": [
        "c73cb5a2d607b5b95a06a54d8291ddb659b348b6"
      ],
      "author": {
        "name": "Kazunori MIYAZAWA",
        "email": "miyazawa@linux-ipv6.org",
        "time": "Tue Feb 13 12:55:55 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 13 12:55:55 2007 -0800"
      },
      "message": "[IPSEC]: changing API of xfrm6_tunnel_register\n\nThis patch changes xfrm6_tunnel register and deregister\ninterface to prepare for solving the conflict of device\ntunnels with inter address family IPsec tunnel.\nThere is no device which conflicts with IPv4 over IPv6\nIPsec tunnel.\n\nSigned-off-by: Kazunori MIYAZAWA \u003cmiyazawa@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c0d56408e3ff52d635441e0f08d12164a63728cf",
      "tree": "026b531a00255730e9878905fdc2e6a910f4e1c7",
      "parents": [
        "600ff0c24bb71482e7f0da948a931d5c5d72838a"
      ],
      "author": {
        "name": "Kazunori MIYAZAWA",
        "email": "miyazawa@linux-ipv6.org",
        "time": "Tue Feb 13 12:54:47 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 13 12:54:47 2007 -0800"
      },
      "message": "[IPSEC]: Changing API of xfrm4_tunnel_register.\n\nThis patch changes xfrm4_tunnel register and deregister\ninterface to prepare for solving the conflict of device\ntunnels with inter address family IPsec tunnel.\n\nSigned-off-by: Kazunori MIYAZAWA \u003cmiyazawa@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fe3eb20c1ace69e42e6ebf2afd2a904b2ae85cde",
      "tree": "6c49ee94bc60c668aa3f02aa029e167f6669e031",
      "parents": [
        "982d9a9ce389c396bc83ce29d799937f379ddcb7"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Feb 12 11:14:28 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 12 11:14:28 2007 -0800"
      },
      "message": "[NETFILTER]: nf_conntrack: change nf_conntrack_l[34]proto_unregister to void\n\nNo caller checks the return value, and since its usually called within the\nmodule unload path there\u0027s nothing a module could do about errors anyway,\nso BUG on invalid conditions and return void.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c0e912d7ed8999f87fa7f084928aac1266e251f3",
      "tree": "ec48a83001871b4e0db78ee9eab520a1fbb02e14",
      "parents": [
        "abbaccda4c364815b8b1a82c45a94f60760e13e1"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Feb 12 11:13:43 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 12 11:13:43 2007 -0800"
      },
      "message": "[NETFILTER]: nf_conntrack: fix invalid conntrack statistics RCU assumption\n\nNF_CT_STAT_INC assumes rcu_read_lock in nf_hook_slow disables\npreemption as well, making it legal to use __get_cpu_var without\ndisabling preemption manually. The assumption is not correct anymore\nwith preemptable RCU, additionally we need to protect against softirqs\nwhen not holding nf_conntrack_lock.\n\nAdd NF_CT_STAT_INC_ATOMIC macro, which disables local softirqs,\nand use where necessary.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "923f4902fefdf4e89b0fb32c4e069d4f57d704f5",
      "tree": "2fad9f83c0e6da178f5167f6efb2b75cbe28c68e",
      "parents": [
        "642d628b2c92e5283bbd3c849c7099c64ab68856"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Feb 12 11:12:57 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 12 11:12:57 2007 -0800"
      },
      "message": "[NETFILTER]: nf_conntrack: properly use RCU API for nf_ct_protos/nf_ct_l3protos arrays\n\nReplace preempt_{enable,disable} based RCU by proper use of the\nRCU API and add missing rcu_read_lock/rcu_read_unlock calls in\nall paths not obviously only used within packet process context\n(nfnetlink_conntrack).\n  \nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "540473208f8ac71c25a87e1a2670c3c18dd4d6db",
      "tree": "716c6b412ebf3e232bd85da785315f888283d991",
      "parents": [
        "f59e5e82096f81a2cb7d7833001956d81e9fa6fb"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:28 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:44 2007 -0800"
      },
      "message": "[PATCH] mark struct file_operations const 1\n\nMany struct file_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e19e02ca0c5e33ea73a25127dbe6c3b8fcaac4b",
      "tree": "23afba2945a9e09b137b094a868ea176c1e1c800",
      "parents": [
        "0c195c3fc4e95a06b0c0017506f074c94af99c35"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Feb 09 16:26:55 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Feb 10 23:20:45 2007 -0800"
      },
      "message": "[NET]: Reorder fields of struct dst_entry\n\nThis last patch (but not least :) ) finally moves the next pointer at\nthe end of struct dst_entry. This permits to perform route cache\nlookups with a minimal cost of one cache line per entry, instead of\ntwo.\n\nBoth 32bits and 64bits platforms benefit from this new layout.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c195c3fc4e95a06b0c0017506f074c94af99c35",
      "tree": "dbe840f236a5c67a6ffd02f70ce62102f4a86345",
      "parents": [
        "7cc482634f1f1e1db5401007658c8e8d6cf1617d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Feb 09 16:25:52 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Feb 10 23:20:43 2007 -0800"
      },
      "message": "[DECNET]: Convert decnet route to use the new dst_entry \u0027next\u0027 pointer\n\nThis patch removes the next pointer from \u0027struct dn_route.u\u0027 union,\nand renames u.rt_next to u.dst.dn_next.\n\nIt also moves \u0027struct flowi\u0027 right after \u0027struct dst_entry\u0027 to prepare\nspeedup lookups.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7cc482634f1f1e1db5401007658c8e8d6cf1617d",
      "tree": "c79f22adc08cd76c2c211a0120fe19d726b8c225",
      "parents": [
        "093c2ca4167cf66f69020329d14138da0da8599b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Feb 09 16:22:57 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Feb 10 23:20:40 2007 -0800"
      },
      "message": "[IPV6]: Convert ipv6 route to use the new dst_entry \u0027next\u0027 pointer\n\nThis patch removes the next pointer from \u0027struct rt6_info.u\u0027 union,\nand renames u.next to u.dst.rt6_next.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "093c2ca4167cf66f69020329d14138da0da8599b",
      "tree": "7bae584ac848923867037324197068c869b62a46",
      "parents": [
        "75ce7ceaa1221858c0163e75d19eb8a423a212ff"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Feb 09 16:19:26 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Feb 10 23:20:38 2007 -0800"
      },
      "message": "[IPV4]: Convert ipv4 route to use the new dst_entry \u0027next\u0027 pointer\n\nThis patch removes the rt_next pointer from \u0027struct rtable.u\u0027 union,\nand renames u.rt_next to u.dst_rt_next.\n\nIt also moves \u0027struct flowi\u0027 right after \u0027struct dst_entry\u0027 to prepare\nthe gain on lookups.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "75ce7ceaa1221858c0163e75d19eb8a423a212ff",
      "tree": "8314e9997683d74767f6c1290bc946fb4cde424c",
      "parents": [
        "f7b14315faf62935a791dd67969c4289563058f0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Feb 09 16:14:24 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Feb 10 23:20:36 2007 -0800"
      },
      "message": "[NET]: Introduce union in struct dst_entry to hold \u0027next\u0027 pointer\n\nThis patch introduces an anonymous union to nicely express the fact that all\nobjects inherited from struct dst_entry should access to the generic \u0027next\u0027\npointer but with appropriate type verification.\n\nThis patch is a prereq before following patches.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dbca9b2750e3b1ee6f56a616160ccfc12e8b161f",
      "tree": "bf84c0acb5495fc95bc616d32b8af946f2e3bca9",
      "parents": [
        "eac3731bd04c7131478722a3c148b78774553116"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Feb 08 14:16:46 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 08 14:16:46 2007 -0800"
      },
      "message": "[NET]: change layout of ehash table\n\nehash table layout is currently this one :\n\nFirst half of this table is used by sockets not in TIME_WAIT state\nSecond half of it is used by sockets in TIME_WAIT state.\n\nThis is non optimal because of for a given hash or socket, the two chain heads \nare located in separate cache lines.\nMoreover the locks of the second half are never used.\n\nIf instead of this halving, we use two list heads in inet_ehash_bucket instead \nof only one, we probably can avoid one cache miss, and reduce ram usage, \nparticularly if sizeof(rwlock_t) is big (various CONFIG_DEBUG_SPINLOCK, \nCONFIG_DEBUG_LOCK_ALLOC settings). So we still halves the table but we keep \ntogether related chains to speedup lookups and socket state change.\n\nIn this patch I did not try to align struct inet_ehash_bucket, but a future \npatch could try to make this structure have a convenient size (a power of two \nor a multiple of L1_CACHE_SIZE).\nI guess rwlock will just vanish as soon as RCU is plugged into ehash :) , so \nmaybe we dont need to scratch our heads to align the bucket...\n\nNote : In case struct inet_ehash_bucket is not a power of two, we could \nprobably change alloc_large_system_hash() (in case it use __get_free_pages()) \nto free the unused space. It currently allocates a big zone, but the last \nquarter of it could be freed. Again, this should be a temporary \u0027problem\u0027.\n\nPatch tested on ipv4 tcp only, but should be OK for IPV6 and DCCP.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eac3731bd04c7131478722a3c148b78774553116",
      "tree": "66c1ce279bbd586e3fcf417cfd6057db3df296ae",
      "parents": [
        "5da5e658debb7deddbfe5c133c76db3be0a3e12c"
      ],
      "author": {
        "name": "Jennifer Hunt",
        "email": "jenhunt@us.ibm.com",
        "time": "Thu Feb 08 13:51:54 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 08 13:51:54 2007 -0800"
      },
      "message": "[S390]: Add AF_IUCV socket support\n\nFrom: Jennifer Hunt \u003cjenhunt@us.ibm.com\u003e\n\nThis patch adds AF_IUCV socket support.\n\nSigned-off-by: Frank Pavlic \u003cfpavlic@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2356f4cb191100a5e92d537f13e5efdbc697e9cb",
      "tree": "2c39e250658886dbac8208573e52dd5df300226b",
      "parents": [
        "33a67fe898dbbe25589d2fca805cb68cfd7d311f"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Feb 08 13:37:42 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 08 13:37:42 2007 -0800"
      },
      "message": "[S390]: Rewrite of the IUCV base code, part 2\n\nAdd rewritten IUCV base code to net/iucv.\n\nSigned-off-by: Frank Pavlic \u003cfpavlic@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "39e21c0d34fe769d06839679fa920217359a58b0",
      "tree": "954c04db643a0f4d9fb7e4dc686981a6b207ed57",
      "parents": [
        "95a9dc4390c8215d922e0ca2ebb95279261fe795"
      ],
      "author": {
        "name": "Andrew Hendry",
        "email": "andrew.hendry@gmail.com",
        "time": "Thu Feb 08 13:34:36 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 08 13:34:36 2007 -0800"
      },
      "message": "[X.25]: Adds /proc/sys/net/x25/x25_forward to control forwarding.\n\necho \"1\" \u003e /proc/sys/net/x25/x25_forward \nTo turn on x25_forwarding, defaults to off\nRequires the previous patch.\n\nSigned-off-by: Andrew Hendry \u003candrew.hendry@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "95a9dc4390c8215d922e0ca2ebb95279261fe795",
      "tree": "8b4be0c3a672ebd30d2777227e9a466819483ab8",
      "parents": [
        "e610e679dd0057403c96cd31f8739792780732ee"
      ],
      "author": {
        "name": "Andrew Hendry",
        "email": "andrew.hendry@gmail.com",
        "time": "Thu Feb 08 13:34:02 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 08 13:34:02 2007 -0800"
      },
      "message": "[X.25]: Add call forwarding\n\nAdds call forwarding to X.25, allowing it to operate like an X.25 router.\nUseful if one needs to manipulate X.25 traffic with tools like tc.\nThis is an update/cleanup based off a patch submitted by Daniel Ferenci a few years ago.\n\nThanks Alan for the feedback.\nAdded the null check to the clones.\nMoved the skb_clone\u0027s into the forwarding functions.\n\nWorked ok with Cisco XoT, linux X.25 back to back, and some old NTUs/PADs.\n\nSigned-off-by: Andrew Hendry \u003candrew.hendry@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "80c9abaabf4283f7cf4a0b3597cd302506635b7f",
      "tree": "7dd4270a22e039c827114d182c2071a84826f563",
      "parents": [
        "9934e81c8c4981342dab3e386aff5d4499bea0d2"
      ],
      "author": {
        "name": "Shinta Sugimoto",
        "email": "shinta.sugimoto@ericsson.com",
        "time": "Thu Feb 08 13:11:42 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 08 13:11:42 2007 -0800"
      },
      "message": "[XFRM]: Extension for dynamic update of endpoint address(es)\n\nExtend the XFRM framework so that endpoint address(es) in the XFRM\ndatabases could be dynamically updated according to a request (MIGRATE\nmessage) from user application. Target XFRM policy is first identified\nby the selector in the MIGRATE message. Next, the endpoint addresses\nof the matching templates and XFRM states are updated according to\nthe MIGRATE message.\n\nSigned-off-by: Shinta Sugimoto \u003cshinta.sugimoto@ericsson.com\u003e\nSigned-off-by: Masahide NAKAMURA \u003cnakam@linux-ipv6.org\u003e\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "41f4689a7c8cd76b77864461b3c58fde8f322b2c",
      "tree": "29be7597bc02158ca41261f365ebcbd8047dd56f",
      "parents": [
        "cdd289a2f833b93e65b9a09a02c37f47a58140a8"
      ],
      "author": {
        "name": "Eric Leblond",
        "email": "eric@inl.fr",
        "time": "Wed Feb 07 15:10:09 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Feb 08 12:39:17 2007 -0800"
      },
      "message": "[NETFILTER]: NAT: optional source port randomization support\n\nThis patch adds support to NAT to randomize source ports.\n\nSigned-off-by: Eric Leblond \u003ceric@inl.fr\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6fecd1985116fb08bdee3b9db6719e159fe5e43d",
      "tree": "5348319657ec1cdfa8cdf9fba4e6bbad046dc811",
      "parents": [
        "719647e2131585ea0a82b05d3745b36be32975d8"
      ],
      "author": {
        "name": "Michal Schmidt",
        "email": "mschmidt@redhat.com",
        "time": "Wed Feb 07 15:05:12 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Feb 08 12:39:09 2007 -0800"
      },
      "message": "[NETFILTER]: Add SANE connection tracking helper\n\nThis is nf_conntrack_sane, a netfilter connection tracking helper module\nfor the SANE protocol used by the \u0027saned\u0027 daemon to make scanners available\nvia network. The SANE protocol uses separate control \u0026 data connections,\nsimilar to passive FTP. The helper module is needed to recognize the data\nconnection as RELATED to the control one.\n\nSigned-off-by: Michal Schmidt \u003cmschmidt@redhat.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cdca72652adf597f7fef821a27595fd0dd5eea19",
      "tree": "4a11752d72f70b2248aa811c165cc95007d21a8f",
      "parents": [
        "243cb4e56061c3f4cb76312c5527840344d57c3b"
      ],
      "author": {
        "name": "Miika Komu",
        "email": "miika@iki.fi",
        "time": "Tue Feb 06 14:24:56 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Feb 08 12:39:00 2007 -0800"
      },
      "message": "[IPSEC]: exporting xfrm_state_afinfo\n\nThis patch exports xfrm_state_afinfo.\n\nSigned-off-by: Miika Komu \u003cmiika@iki.fi\u003e\nSigned-off-by: Diego Beltrami \u003cDiego.Beltrami@hiit.fi\u003e\nSigned-off-by: Kazunori Miyazawa \u003cmiyazawa@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8eb9086f21c73b38b5ca27558db4c91d62d0e70b",
      "tree": "1fa2694f1e5eac966cc8db2fb8d5f3d684b09803",
      "parents": [
        "ba7808eac17360dda459f82222859b0e3879854b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Feb 08 02:09:21 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Feb 08 12:38:45 2007 -0800"
      },
      "message": "[IPV4/IPV6]: Always wait for IPSEC SA resolution in socket contexts.\n\nDo this even for non-blocking sockets.  This avoids the silly -EAGAIN\nthat applications can see now, even for non-blocking sockets in some\ncases (f.e. connect()).\n\nWith help from Venkat Tekkirala.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ba7808eac17360dda459f82222859b0e3879854b",
      "tree": "b9774fb03694e7e019d57c6f0b306cdd1232d4d2",
      "parents": [
        "a0d78ebf3a0e33a1aeacf2fc518ad9273d6a1c2f"
      ],
      "author": {
        "name": "Frederik Deweerdt",
        "email": "frederik.deweerdt@gmail.com",
        "time": "Sun Feb 04 20:15:27 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Feb 08 12:38:44 2007 -0800"
      },
      "message": "[TCP]: remove tcp header from tcp_v4_check (take #2)\n\nThe tcphdr struct passed to tcp_v4_check is not used, the following\npatch removes it from the parameter list.\n\nThis adds the netfilter modifications missing in the patch I sent\nfor rc3-mm1.\n\nSigned-off-by: Frederik Deweerdt \u003cfrederik.deweerdt@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e89862f4c5b3c4ac9afcd8cb1365d2f1e16ddc3b",
      "tree": "f402fe7326021a371e11c2c59b7aaf1b12d300d3",
      "parents": [
        "d5e76b0a280f71b20bdd20d1c1b4d6812ceb8c3a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jan 26 01:04:55 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jan 26 01:04:55 2007 -0800"
      },
      "message": "[TCP]: Restore SKB socket owner setting in tcp_transmit_skb().\n\nRevert 931731123a103cfb3f70ac4b7abfc71d94ba1f03\n\nWe can\u0027t elide the skb_set_owner_w() here because things like certain\nnetfilter targets (such as owner MATCH) need a socket to be set on the\nSKB for correct operation.\n\nThanks to Jan Engelhardt and other netfilter list members for\npointing this out.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "610ab73ac4cc8912fc253bbdc6d1f74bad3c8e3a",
      "tree": "311593c67bcc70b1cc298543a74c6ae25632ef1a",
      "parents": [
        "d023f629451ace6f37eb5d2cf29ddd24497c91dc"
      ],
      "author": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Jan 15 19:18:30 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 23 20:25:46 2007 -0800"
      },
      "message": "[SCTP]: Correctly handle unexpected INIT-ACK chunk.\n\nConsider the chunk as Out-of-the-Blue if we don\u0027t have\nan endpoint.  Otherwise discard it as before.\n\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nSigned-off-by: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "16d807988ffaf9b7cbb1966955aa8f738c32e740",
      "tree": "f0b1d92af0bf30bd520753673cf7b2d83e2c98be",
      "parents": [
        "c54ea3b95ac504ed81e0ec3acfaa26d0f55bdfa4"
      ],
      "author": {
        "name": "Mikael Pettersson",
        "email": "mikpe@it.uu.se",
        "time": "Mon Jan 15 17:17:31 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 23 20:25:43 2007 -0800"
      },
      "message": "[NETFILTER]: fix xt_state compile failure\n\nIn file included from net/netfilter/xt_state.c:13:\ninclude/net/netfilter/nf_conntrack_compat.h: In function \u0027nf_ct_l3proto_try_module_get\u0027:\ninclude/net/netfilter/nf_conntrack_compat.h:70: error: \u0027PF_INET\u0027 undeclared (first use in this function)\ninclude/net/netfilter/nf_conntrack_compat.h:70: error: (Each undeclared identifier is reported only once\ninclude/net/netfilter/nf_conntrack_compat.h:70: error: for each function it appears in.)\ninclude/net/netfilter/nf_conntrack_compat.h:71: warning: control reaches end of non-void function\nmake[2]: *** [net/netfilter/xt_state.o] Error 1\nmake[1]: *** [net/netfilter] Error 2\nmake: *** [net] Error 2\n\nA simple fix is to have nf_conntrack_compat.h #include \u003clinux/socket.h\u003e.\n\nSigned-off-by: Mikael Pettersson \u003cmikpe@it.uu.se\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "11897539a967059a817175ea57ad586a1faadd80",
      "tree": "67dfb1a5608a9439d0d263dde37be27eee1ad83b",
      "parents": [
        "80b02e595c308a5deb2ad49bd6aa3ab1da9cdbdb",
        "fe5f8e2a1c5c040209c598a28e19c55f30e1040d"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Jan 07 22:44:56 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Jan 07 22:44:56 2007 -0500"
      },
      "message": "Merge branch \u0027upstream-fixes\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6 into upstream-fixes\n"
    },
    {
      "commit": "0d630cc0a6cb8ad544b5913a26ff1349ed7c8587",
      "tree": "b57945e7c6fa865dcf549822b6888b88cbc0c820",
      "parents": [
        "44f9a2fdc48ccb8bb510b6e1210bf15b3e10afdb"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Jan 04 12:25:16 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 04 12:25:16 2007 -0800"
      },
      "message": "[TCP]: Use old definition of before\n\nThis reverts the new (unambiguous) definition of the TCP `before\u0027\nrelation. As pointed out in an example by Herbert Xu, there is \nexisting code which implicitly requires the old definition in order\nto work correctly.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7f18ba6248625a587559ed1206d12ccaa3ad045e",
      "tree": "4f48a5a6e167d5da2fe9a58dff76b443a99f64f6",
      "parents": [
        "5e7c001c6279f38b15fef5369496fe1043765727"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Jan 03 18:48:13 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 03 18:48:13 2007 -0800"
      },
      "message": "[X25]: proper prototype for x25_init_timers()\n\nThis patch adds a proper prototype for x25_init_timers() in \ninclude/net/x25.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3eb546057dd65ec75c900c9948684ffd5e617630",
      "tree": "3916421649606f92a4b0e28d31db249f4a4f624b",
      "parents": [
        "669df1b478803f49a356528d290af7bf442eb3be"
      ],
      "author": {
        "name": "Zhu Yi",
        "email": "yi.zhu@intel.com",
        "time": "Mon Dec 18 17:26:13 2006 +0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 02 20:56:26 2007 -0500"
      },
      "message": "[PATCH] ieee80211: WLAN_GET_SEQ_SEQ fix (select correct region)\n\nThe WLAN_GET_SEQ_SEQ(seq) macro in ieee80211 is selecting the wrong region.\n\nSigned-off-by: Zhu Yi \u003cyi.zhu@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b23e3536667373e44f52a907f63cb55f75969490",
      "tree": "97710f966f31be6406ab389dbbd08d69dd7c0786",
      "parents": [
        "24123186fa271e7ad34a40f815782e6205f34ff7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 21 13:15:18 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Dec 22 11:12:07 2006 -0800"
      },
      "message": "[IPV6]: Dumb typo in generic csum_ipv6_magic()\n\n... duh\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "24123186fa271e7ad34a40f815782e6205f34ff7",
      "tree": "5db803011d88a66eb52a37a30a0e7aa4a8f76e1f",
      "parents": [
        "0f3fffd8ab1db7658c97c167e8ab001cc814e1f4"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Dec 20 16:08:22 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Dec 22 11:12:05 2006 -0800"
      },
      "message": "[SCTP]: make 2 functions static\n\nThis patch makes the following needlessly global functions static:\n- ipv6.c: sctp_inet6addr_event()\n- protocol.c: sctp_inetaddr_event()\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0f3fffd8ab1db7658c97c167e8ab001cc814e1f4",
      "tree": "e8531868627f2b9ac71800fd408969e025c2051a",
      "parents": [
        "a3f7f142f73ed4cb23826bee84afc31d10377e39"
      ],
      "author": {
        "name": "Ivan Skytte Jorgensen",
        "email": "isj-sctp@i1.dk",
        "time": "Wed Dec 20 16:07:04 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Dec 22 11:12:04 2006 -0800"
      },
      "message": "[SCTP]: Fix typo adaption -\u003e adaptation as per the latest API draft.\n\nSigned-off-by: Ivan Skytte Jorgensen \u003cisj-sctp@i1.dk\u003e\nSigned-off-by: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9a036b9c33f74c989c4c8ac0abe05e0ed88f1f25",
      "tree": "7eadf26579e996975e35a5f34298937f7bd114e8",
      "parents": [
        "1f8a5fb80e63aab63de81169ab749d73e7509e3f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 20 10:25:55 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Dec 22 11:12:01 2006 -0800"
      },
      "message": "[TCP]: Fix ambiguity in the `before\u0027 relation.\n\nWhile looking at DCCP sequence numbers, I stumbled over a problem with\nthe following definition of before in tcp.h:\n\nstatic inline int before(__u32 seq1, __u32 seq2)\n{\n        return (__s32)(seq1-seq2) \u003c 0;\n}\n\nProblem: This definition suffers from an an ambiguity, i.e. always\n\n           before(a, (a + 2^31) % 2^32)) \u003d 1\n           before((a + 2^31) % 2^32), a) \u003d 1\n\n         In text: when the difference between a and b amounts to 2^31,\n         a is always considered `before\u0027 b, the function can not decide.\n         The reason is that implicitly 0 is `before\u0027 1 ... 2^31-1 ... 2^31\n\nSolution: There is a simple fix, by defining before in such a way that\n          0 is no longer `before\u0027 2^31, i.e. 0 `before\u0027 1 ... 2^31-1\n          By not using the middle between 0 and 2^32, before can be made\n          unambiguous.\n          This is achieved by testing whether seq2-seq1 \u003e 0 (using signed\n          32-bit arithmetic).\n\nI attach a patch to codify this. Also the `after\u0027 relation is basically\na redefinition of `before\u0027, it is now defined as a macro after before.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a3d384029aa304f8f3f5355d35f0ae274454f7cd",
      "tree": "6bdb628b439cde292317fa5e89e14977899855a5",
      "parents": [
        "a159aaa328a02b0189774c58ae7d917b25d26852"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Dec 14 15:52:13 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Dec 17 21:59:14 2006 -0800"
      },
      "message": "[AX.25]: Fix unchecked rose_add_loopback_neigh uses\n\nrose_add_loopback_neigh uses kmalloc and the callers were ignoring the\nerror value.  Rewrite to let the caller deal with the allocation.  This\nallows the use of static allocation of kmalloc use entirely.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a4282717c102aef2bfab1d947c392de4d8abc0ec",
      "tree": "ef178b6eea8cd9a8790ae58a6c19ff2aa877bcc1",
      "parents": [
        "58bc57471514be9206ebcda90b1076f6be41d1c7"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Dec 14 15:51:23 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Dec 17 21:59:11 2006 -0800"
      },
      "message": "[AX.25]: Fix unchecked ax25_linkfail_register uses\n\nax25_linkfail_register uses kmalloc and the callers were ignoring the\nerror value.  Rewrite to let the caller deal with the allocation.  This\nallows the use of static allocation of kmalloc use entirely.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d5cf596d10d740b69b5f4bbdb54b85abf75810d",
      "tree": "f0fd6a296f1b90d5fb1898ce1932c6ec5d245465",
      "parents": [
        "c9266b99e2def0a456766220df09713f8e765891"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Dec 14 15:50:01 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Dec 17 21:59:08 2006 -0800"
      },
      "message": "[AX.25]: Fix unchecked ax25_protocol_register uses.\n\nReplace ax25_protocol_register by ax25_register_pid which assumes the\ncaller has done the memory allocation.  This allows replacing the\nkmalloc allocations entirely by static allocations.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c9266b99e2def0a456766220df09713f8e765891",
      "tree": "4685070018632e00437fbb368b28d6cc1ebc467e",
      "parents": [
        "bd2b334378530f6dbe03f6325b8c885524e298a3"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Dec 14 15:49:28 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Dec 17 21:59:07 2006 -0800"
      },
      "message": "[AX.25]: Mark all kmalloc users __must_check\n\nThe recent fix 0506d4068bad834aab1141b5dc5e748eb175c6b3 made obvious that\nerror values were not being propagated through the AX.25 stack.  To help\nwith that this patch marks all kmalloc users in the AX.25, NETROM and\nROSE stacks as __must_check.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8bce65b95ac167693ae2d706b5341409dca0062d",
      "tree": "d73baf0f20809543a09a2c9cb27c54003af2d460",
      "parents": [
        "6ab792f577012312a760a3a1e679ae8fae012442"
      ],
      "author": {
        "name": "Kim Nordlund",
        "email": "kim.nordlund@nokia.com",
        "time": "Wed Dec 13 16:38:29 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Dec 13 16:48:31 2006 -0800"
      },
      "message": "[IPV6]: Make fib6_node subtree depend on IPV6_SUBTREES\n\nMake fib6_node \u0027subtree\u0027 depend on IPV6_SUBTREES.\n\nSigned-off-by: Kim Nordlund \u003ckim.nordlund@nokia.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ab792f577012312a760a3a1e679ae8fae012442",
      "tree": "7d60307266f3d81afdf06ec14e646d2f7a1b4ef7",
      "parents": [
        "882a382c3e0b432fa91672e1c2754cac3f5a6b4f"
      ],
      "author": {
        "name": "Ivan Skytte Jorgensen",
        "email": "isj-sctp@i1.dk",
        "time": "Wed Dec 13 16:34:22 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Dec 13 16:48:29 2006 -0800"
      },
      "message": "[SCTP]: Add support for SCTP_CONTEXT socket option.\n\nSigned-off-by: Ivan Skytte Jorgensen \u003cisj-sctp@i1.dk\u003e\nSigned-off-by: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "29c7cf96186ac14ce7380633f690fc39732ff03a"
}
