)]}'
{
  "log": [
    {
      "commit": "4d9092bb41c8fdca45513461587d8b4ad3918f74",
      "tree": "38c8972be346a5f60b960acb61048e72808fc7cc",
      "parents": [
        "d7fcf1a5cae2c970e9afe7192fe0c13d931247e0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:20:05 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:20:05 2009 -0700"
      },
      "message": "ipv6: Use frag list abstraction interfaces.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d7fcf1a5cae2c970e9afe7192fe0c13d931247e0",
      "tree": "68cbfb556ac2828b7dd74f7bb6b8a25490a9aaf0",
      "parents": [
        "285e42802bb3da91102967f63fb9e28e61f7831e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:19:37 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:19:37 2009 -0700"
      },
      "message": "ipv4: Use frag list abstraction interfaces.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "285e42802bb3da91102967f63fb9e28e61f7831e",
      "tree": "5747dbb294f7136ad8ce105ce1a96adf0450b4e2",
      "parents": [
        "fbb398a832086c370bce47789e155bf5a08774e9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:19:10 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:19:10 2009 -0700"
      },
      "message": "net/core/user_dma.c: Use frag list abstraction interfaces.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fbb398a832086c370bce47789e155bf5a08774e9",
      "tree": "0c1e409adf4bee8c4e70ddc621c08ff37b8ac89c",
      "parents": [
        "4cf704fbea96075942bd033fd75aa4e76ae1c8a1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:18:59 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:18:59 2009 -0700"
      },
      "message": "net/core/skbuff.c: Use frag list abstraction interfaces.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4cf704fbea96075942bd033fd75aa4e76ae1c8a1",
      "tree": "f529e1d2f441125c48f81cebf076a29be4e5ac6f",
      "parents": [
        "5b1a002ade68173f21b2126a778278df72202ba6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:18:51 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:18:51 2009 -0700"
      },
      "message": "net/core/dev.c: Use frag list abstraction interfaces.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5b1a002ade68173f21b2126a778278df72202ba6",
      "tree": "aeafe74ad3df316bc6413e97e7f514a780e117ad",
      "parents": [
        "c32ba3f9b8aa2441c7cfcd065f79981cf8cfe9f4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:18:15 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:18:15 2009 -0700"
      },
      "message": "datagram: Use frag list abstraction interfaces.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c32ba3f9b8aa2441c7cfcd065f79981cf8cfe9f4",
      "tree": "1ceed3e63c6798eb5ae410ae9e6237fb00539c86",
      "parents": [
        "a5bd8a13e9e0322c7f76b34790ba34e2e0ce2ac5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:17:44 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:17:44 2009 -0700"
      },
      "message": "appletalk: Use frag list abstraction interfaces.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4e329972052c3649367b91de783f6293b8653cb2",
      "tree": "f1da15bbb95353c2b5184e0ef42693112cd9322d",
      "parents": [
        "f0a4d0e5b5bfd271e6737f7c095994835b70d450"
      ],
      "author": {
        "name": "Tilman Schmidt",
        "email": "tilman@imap.cc",
        "time": "Sun Jun 07 09:09:23 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 00:45:50 2009 -0700"
      },
      "message": "isdn: rename capi_ctr_reseted() to capi_ctr_down()\n\nChange the name of the Kernel CAPI exported function capi_ctr_reseted()\nto something representing its purpose better.\n\nImpact: renaming, no functional change\nSigned-off-by: Tilman Schmidt \u003ctilman@imap.cc\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1d0ebfe7c9621d43804e9ce9f2b898541a7d9652",
      "tree": "b13375888879581888bc4d773adcc55bf7d1e6ca",
      "parents": [
        "a5b19b635c39fdb819500b0a746b44fe40c9a303"
      ],
      "author": {
        "name": "Figo.zhang",
        "email": "figo1802@gmail.com",
        "time": "Mon Jun 08 00:40:35 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 00:40:35 2009 -0700"
      },
      "message": "net pkgen.c:fix no need for check\n\nvfree() does its own \u0027NULL\u0027 check, so no need for check before\ncalling it.\n\nSigned-off-by: Figo.zhang \u003cfigo1802@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2faef52b72958b8b1c08e927b9b0691c314cf6f4",
      "tree": "d23b72d99342dd067dd9753d8b1286236831f54e",
      "parents": [
        "d2d27bfd11659675fdd1c20b1c7f8f59873cad60"
      ],
      "author": {
        "name": "Sridhar Samudrala",
        "email": "sri@us.ibm.com",
        "time": "Fri Jun 05 09:35:44 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 00:25:39 2009 -0700"
      },
      "message": "net: Fix memcpy_toiovecend() to use the right offset\n\nIncrement the iovec base by the offset passed in for the initial\ncopy_to_user() in memcpy_to_iovecend().\n\nSigned-off-by: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d2d27bfd11659675fdd1c20b1c7f8f59873cad60",
      "tree": "20bda7f4a5a30067d793b2c84ba4dd2a41a13b90",
      "parents": [
        "042a53a9e437feaf2230dd2cadcecfae9c7bfe05"
      ],
      "author": {
        "name": "Sridhar Samudrala",
        "email": "sri@us.ibm.com",
        "time": "Fri Jun 05 09:35:40 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 00:25:38 2009 -0700"
      },
      "message": "net: Fix skb_copy_datagram_from_iovec() to pass the right offset\n\nI am working on enabling UFO between KVM guests using virtio-net and i have\nsome patches that i got working with 2.6.30-rc8. When i wanted to try them\nwith net-next-2.6, i noticed that virtio-net is not working with that tree.\n\nAfter some debugging, it turned out to be several bugs in the recent patches\nto fix aio with tun driver, specifically the following 2 commits.\n\nhttp://git.kernel.org/?p\u003dlinux/kernel/git/davem/net-next-2.6.git;a\u003dcommitdiff;h\u003d0a1ec07a67bd8b0033dace237249654d015efa21\nhttp://git.kernel.org/?p\u003dlinux/kernel/git/davem/net-next-2.6.git;a\u003dcommitdiff;h\u003d6f26c9a7555e5bcca3560919db9b852015077dae\n\nFix the call to memcpy_from_iovecend() in skb_copy_datagram_from_iovec\nto pass the right iovec offset.\n\nSigned-off-by: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "042a53a9e437feaf2230dd2cadcecfae9c7bfe05",
      "tree": "ae9078f61e390a3014aecb3fe80d3438ab25ee51",
      "parents": [
        "eae3f29cc73f83cc3f1891d3ad40021b5172c630"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Jun 05 04:04:16 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 00:21:48 2009 -0700"
      },
      "message": "net: skb_shared_info optimization\n\nskb_dma_unmap() is quite expensive for small packets,\nbecause we use two different cache lines from skb_shared_info.\n\nOne to access nr_frags, one to access dma_maps[0]\n\nInstead of dma_maps being an array of MAX_SKB_FRAGS + 1 elements,\nlet dma_head alone in a new dma_head field, close to nr_frags,\nto reduce cache lines misses.\n\nTested on my dev machine (bnx2 \u0026 tg3 adapters), nice speedup !\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eae3f29cc73f83cc3f1891d3ad40021b5172c630",
      "tree": "71c5555b3b67cae80c1aae8b9fd907e3be957e24",
      "parents": [
        "f957bcf0164e45bd77867e02412035e1c2fd7058"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Jun 05 04:03:35 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 00:20:23 2009 -0700"
      },
      "message": "net: num_dma_maps is not used\n\nGet rid of num_dma_maps in struct skb_shared_info, as it seems unused.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5ff8dda3035d95df5bf6979136eb82b0e301726b",
      "tree": "81e78b26cc50de421683cd896ed15aae4d6f107e",
      "parents": [
        "4909122fb8350e70c347f1201256908a92058044"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jun 04 01:22:01 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 00:20:19 2009 -0700"
      },
      "message": "net: Ensure partial checksum offset is inside the skb head\n\nOn Thu, Jun 04, 2009 at 09:06:00PM +1000, Herbert Xu wrote:\n\u003e\n\u003e tun: Optimise handling of bogus gso-\u003ehdr_len\n\u003e\n\u003e As all current versions of virtio_net generate a value for the\n\u003e header length that\u0027s too small, we should optimise this so that\n\u003e we don\u0027t copy it twice.  This can be done by ensuring that it is\n\u003e at least as large as the place where we\u0027ll write the checksum.\n\u003e\n\u003e Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nWith this applied we can strengthen the partial checksum check:\n\nIn skb_partial_csum_set we check to see if the checksum offset\nis within the packet.  However, we really should check that it\nis within the skb head as that\u0027s the only bit we can modify\nwithout copying.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b1bc81a0ef86b86fa410dd303d84c8c7bd09a64d",
      "tree": "a0d2e6dd179e5d057776edd0ed865bc744dfa54d",
      "parents": [
        "a93958ac980f0ce594ad90657ecbc595ff157a40",
        "0c0c9e7076b69f93678e4ec711e2bf237398e623"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 07 04:24:21 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 07 04:24:21 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6\n"
    },
    {
      "commit": "0c0c9e7076b69f93678e4ec711e2bf237398e623",
      "tree": "37c21120d157f54da5310569ad7ccff51e72e47c",
      "parents": [
        "2489e4ea6cfd1c0f3fe839f90363abccbbdb7745"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Jun 04 08:22:25 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Jun 04 10:58:15 2009 -0400"
      },
      "message": "wimax: depend on rfkill properly\n\nMy mistake, I should have added that when cleaning up\nrfkill and changing wimax.\n\nReported-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Inaky Perez-Gonzalez \u003cinaky@linux.intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "a8c617eae4dc2ea9f3d64472233f2d3dc3c9993c",
      "tree": "2a4bdf0b610c0bbdec5c1dd452b475a09b47d42f",
      "parents": [
        "2307f866f542f3397d24f78d0efd74f4ab214a96",
        "c6ba68a26645dbc5029a9faa5687ebe6fcfc53e4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 21:43:52 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 21:43:52 2009 -0700"
      },
      "message": "Merge branch \u0027net-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vxy/lksctp-dev\n"
    },
    {
      "commit": "2307f866f542f3397d24f78d0efd74f4ab214a96",
      "tree": "e1ff3575746fa19eed779c1d38b8ad995f4b28b0",
      "parents": [
        "278b2513f76161a9cf1ebddd620dc9d1714fe573"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Wed Jun 03 21:43:26 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 21:43:26 2009 -0700"
      },
      "message": "ipv4: remove ip_mc_drop_socket() declaration from af_inet.c.\n\nip_mc_drop_socket() method is declared in linux/igmp.h, which\nis included anyhow in af_inet.c. So there is no need for this declaration.\nThis patch removes it from af_inet.c.\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0aa8204b46e0fb155a98074d53f8b31ca04269b2",
      "tree": "16eba57cfaaa1c17d45364a747db419a946345e5",
      "parents": [
        "f71fea23a27ba8ec53375832aab6a80fc14622e0"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Jun 03 18:30:31 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:09:08 2009 -0400"
      },
      "message": "cfg80211: fix Kconfig for users of cfg80211\n\n * iwm doesn\u0027t depend on cfg80211 or wireless extensions\n * rndis wlan selects cfg80211 - needs to depend\n * mac80211 selects cfg80211 - needs to depend\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "2ec2c68c11af95075f29e370970eb97c89234e2e",
      "tree": "dd0749b38d54f41f1823a992815971b02b3e489f",
      "parents": [
        "72828b1b3cabecfce4321877aa526a2bd21acf0c"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Jun 03 09:55:29 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:06:15 2009 -0400"
      },
      "message": "rfkill: always init poll delayed work\n\nThe rfkill core didn\u0027t initialise the poll delayed work\nbecause it assumed that polling was always done by specifying\nthe poll function. cfg80211, however, would like to start\npolling only later, which is a valid use case and easy to\nsupport, so change rfkill to always initialise the poll\ndelayed work and thus allow starting polling by calling the\nrfkill_resume_polling() function after registration.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "894df1cbc376310163d41c50c891db41296056bf",
      "tree": "e46aa46f5b2fcb6593aa572f25f8fac9071672c9",
      "parents": [
        "7e189a12c246f55fe087efe345fe5f4cbe0be545"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@atheros.com",
        "time": "Tue Jun 02 15:43:25 2009 -0700"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:06:15 2009 -0400"
      },
      "message": "mac80211: removed unused variable in ieee80211_tx()\n\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7e189a12c246f55fe087efe345fe5f4cbe0be545",
      "tree": "d6b0e9618b34eea95e73bd22e6a3bc4eede0ab4f",
      "parents": [
        "60fd2b67014440091770ac5738301c7fa4c4159c"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@atheros.com",
        "time": "Tue Jun 02 18:38:14 2009 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:06:15 2009 -0400"
      },
      "message": "mac80211: extend sta kdoc - explain when they are added\n\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "60fd2b67014440091770ac5738301c7fa4c4159c",
      "tree": "5cbc58ee6993cb1153ada3db1aed40cb1c941fef",
      "parents": [
        "e03e5ffd8d3327d23d76be5d63cfbbb537b1af59"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@atheros.com",
        "time": "Tue Jun 02 16:31:10 2009 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:06:15 2009 -0400"
      },
      "message": "cfg80211: make ieee80211_get_mesh_hdrlen() static\n\nFixes spares warning:\nnet/wireless/util.c:261:5: warning:\nsymbol \u0027ieee80211_get_mesh_hdrlen\u0027 was not declared. Should it be static?\n\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "1f87f7d3a3b42b20f34cb03f0fd1a41c3d0e27f3",
      "tree": "642882153a48e910a415e6bb23bcfb79fadef6dd",
      "parents": [
        "6081162e2ed78dfcf149b076b047078ab1445cc2"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jun 02 13:01:41 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:06:14 2009 -0400"
      },
      "message": "cfg80211: add rfkill support\n\nTo be easier on drivers and users, have cfg80211 register an\nrfkill structure that drivers can access. When soft-killed,\nsimply take down all interfaces; when hard-killed the driver\nneeds to notify us and we will take down the interfaces\nafter the fact. While rfkilled, interfaces cannot be set UP.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "6081162e2ed78dfcf149b076b047078ab1445cc2",
      "tree": "aef1cf51ee0a8f77f562defe1fe8ec75812474b7",
      "parents": [
        "7643a2c3fcc13cd6fbd731f214463547383418ae"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jun 02 13:01:40 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:06:14 2009 -0400"
      },
      "message": "rfkill: add function to query state\n\nSometimes it is necessary to know how the state is,\nand it is easier to query rfkill than keep track of\nit somewhere else, so add a function for that. This\ncould later be expanded to return hard/soft block,\nbut so far that isn\u0027t necessary.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7643a2c3fcc13cd6fbd731f214463547383418ae",
      "tree": "e2e41315f0d38a8627456303820b5c1c2a9b54a6",
      "parents": [
        "c64fb01627e24725d1f9d535e4426475a4415753"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jun 02 13:01:39 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:06:14 2009 -0400"
      },
      "message": "cfg80211: move txpower wext from mac80211\n\nThis patch introduces new cfg80211 API to set the TX power\nvia cfg80211, puts the wext code into cfg80211 and updates\nmac80211 to use all that. The -ENETDOWN bits are a hack but\nwill go away soon.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c64fb01627e24725d1f9d535e4426475a4415753",
      "tree": "24b7e5caef5b1ddeaf479c98d56b2c38e25fca57",
      "parents": [
        "19d337dff95cbf76edd3ad95c0cee2732c3e1ec5"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jun 02 13:01:38 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:06:14 2009 -0400"
      },
      "message": "rfkill: create useful userspace interface\n\nThe new code added by this patch will make rfkill create\na misc character device /dev/rfkill that userspace can use\nto control rfkill soft blocks and get status of devices as\nwell as events when the status changes.\n\nUsing it is very simple -- when you open it you can read\na number of times to get the initial state, and every\nfurther read blocks (you can poll) on getting the next\nevent from the kernel. The same structure you read is\nalso used when writing to it to change the soft block of\na given device, all devices of a given type, or all\ndevices.\n\nThis also makes CONFIG_RFKILL_INPUT selectable again in\norder to be able to test without it present since its\nfunctionality can now be replaced by userspace entirely\nand distros and users may not want the input part of\nrfkill interfering with their userspace code. We will\nalso write a userspace daemon to handle all that and\nconsequently add the input code to the feature removal\nschedule.\n\nIn order to have rfkilld support both kernels with and\nwithout CONFIG_RFKILL_INPUT (or new kernels after its\neventual removal) we also add an ioctl (that only exists\nif rfkill-input is present) to disable rfkill-input.\nIt is not very efficient, but at least gives the correct\nbehaviour in all cases.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "19d337dff95cbf76edd3ad95c0cee2732c3e1ec5",
      "tree": "33326eeb09cb9664cc8427a5dc7cd2b08b5a57c3",
      "parents": [
        "0f6399c4c525b518644a9b09f8d6fb125a418c4d"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jun 02 13:01:37 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:06:13 2009 -0400"
      },
      "message": "rfkill: rewrite\n\nThis patch completely rewrites the rfkill core to address\nthe following deficiencies:\n\n * all rfkill drivers need to implement polling where necessary\n   rather than having one central implementation\n\n * updating the rfkill state cannot be done from arbitrary\n   contexts, forcing drivers to use schedule_work and requiring\n   lots of code\n\n * rfkill drivers need to keep track of soft/hard blocked\n   internally -- the core should do this\n\n * the rfkill API has many unexpected quirks, for example being\n   asymmetric wrt. alloc/free and register/unregister\n\n * rfkill can call back into a driver from within a function the\n   driver called -- this is prone to deadlocks and generally\n   should be avoided\n\n * rfkill-input pointlessly is a separate module\n\n * drivers need to #ifdef rfkill functions (unless they want to\n   depend on or select RFKILL) -- rfkill should provide inlines\n   that do nothing if it isn\u0027t compiled in\n\n * the rfkill structure is not opaque -- drivers need to initialise\n   it correctly (lots of sanity checking code required) -- instead\n   force drivers to pass the right variables to rfkill_alloc()\n\n * the documentation is hard to read because it always assumes the\n   reader is completely clueless and contains way TOO MANY CAPS\n\n * the rfkill code needlessly uses a lot of locks and atomic\n   operations in locked sections\n\n * fix LED trigger to actually change the LED when the radio state\n   changes -- this wasn\u0027t done before\n\nTested-by: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e [thinkpad]\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "0f6399c4c525b518644a9b09f8d6fb125a418c4d",
      "tree": "bf97ec5f107eca35b8c1de93847e5ee8cdff21b7",
      "parents": [
        "6bc61f4d8e2fa3d54017c29b58603e8771158a25"
      ],
      "author": {
        "name": "Bob Copeland",
        "email": "me@bobcopeland.com",
        "time": "Tue Jun 02 00:05:04 2009 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:06:13 2009 -0400"
      },
      "message": "nl80211: use GFP_ATOMIC for michael mic failure message\n\nnl80211_michael_mic_failure can be called in atomic context but\ndoes a GFP_KERNEL allocation.  Fixes the error below:\n\n[  126.793225] BUG: sleeping function called from invalid context at mm/slab.c:3055\n[  126.793234] in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper\n[  126.793241] 2 locks held by swapper/0:\n[  126.793246]  #0:  (\u0026sc-\u003erxbuflock){+.-.+.}, at: [\u003cf94e1b46\u003e] ath5k_tasklet_rx+0x34/0x55e [ath5k]\n[  126.793294]  #1:  (rcu_read_lock){.+.+.+}, at: [\u003cf92872f3\u003e] __ieee80211_rx+0x7e/0x563 [mac80211]\n[  126.793342] Pid: 0, comm: swapper Not tainted 2.6.30-rc7-wl #124\n[  126.793347] Call Trace:\n[  126.793361]  [\u003cc014499d\u003e] ? __debug_show_held_locks+0x1e/0x20\n[  126.793380]  [\u003cc011e9a3\u003e] __might_sleep+0x100/0x107\n[  126.793386]  [\u003cc018ea99\u003e] kmem_cache_alloc+0x35/0x170\n[  126.793393]  [\u003cc02e8bb1\u003e] ? __alloc_skb+0x2e/0x117\n[  126.793397]  [\u003cc014517d\u003e] ? mark_held_locks+0x43/0x5b\n[  126.793402]  [\u003cc02e8bb1\u003e] __alloc_skb+0x2e/0x117\n[  126.793419]  [\u003cf851a836\u003e] nl80211_michael_mic_failure+0x2a/0x1fa [cfg80211]\n[  126.793425]  [\u003cc01453b8\u003e] ? trace_hardirqs_on_caller+0xf6/0x130\n[  126.793430]  [\u003cc01453fd\u003e] ? trace_hardirqs_on+0xb/0xd\n[  126.793444]  [\u003cf851b2b8\u003e] cfg80211_michael_mic_failure+0x30/0x38 [cfg80211]\n[  126.793463]  [\u003cf928bf69\u003e] mac80211_ev_michael_mic_failure+0xfd/0x108 [mac80211]\n[  126.793480]  [\u003cf9279fbd\u003e] ieee80211_rx_h_michael_mic_verify+0xd4/0x117 [mac80211]\n[  126.793499]  [\u003cf9285ef3\u003e] ieee80211_invoke_rx_handlers+0xdde/0x1963 [mac80211]\n[  126.793505]  [\u003cc0107152\u003e] ? sched_clock+0x3f/0x64\n[  126.793511]  [\u003cc0107152\u003e] ? sched_clock+0x3f/0x64\n[  126.793516]  [\u003cc01445d7\u003e] ? trace_hardirqs_off+0xb/0xd\n[  126.793521]  [\u003cc0107152\u003e] ? sched_clock+0x3f/0x64\n[  126.793526]  [\u003cc0146454\u003e] ? __lock_acquire+0x62c/0x1271\n[  126.793545]  [\u003cf9286fbb\u003e] __ieee80211_rx_handle_packet+0x543/0x564 [mac80211]\n[  126.793564]  [\u003cf9287757\u003e] __ieee80211_rx+0x4e2/0x563 [mac80211]\n[  126.793577]  [\u003cf94e1ff6\u003e] ath5k_tasklet_rx+0x4e4/0x55e [ath5k]\n[  126.793583]  [\u003cc0102b54\u003e] ? restore_nocheck_notrace+0x0/0xe\n[  126.793589]  [\u003cc0129aa2\u003e] tasklet_action+0x92/0xe5\n[  126.793594]  [\u003cc0129f22\u003e] __do_softirq+0xb1/0x182\n[  126.793599]  [\u003cc012a023\u003e] do_softirq+0x30/0x48\n[  126.793603]  [\u003cc012a19b\u003e] irq_exit+0x3d/0x74\n[  126.793609]  [\u003cc0358016\u003e] do_IRQ+0x76/0x8c\n[  126.793613]  [\u003cc010312e\u003e] common_interrupt+0x2e/0x34\n[  126.793618]  [\u003cc014007b\u003e] ? timer_list_show+0x277/0x939\n[  126.793630]  [\u003cf88eb321\u003e] ? acpi_idle_enter_bm+0x266/0x291 [processor]\n[  126.793636]  [\u003cc02d00f6\u003e] cpuidle_idle_call+0x6a/0x9c\n[  126.793640]  [\u003cc0101cc8\u003e] cpu_idle+0x53/0x87\n[  126.793645]  [\u003cc0344510\u003e] rest_init+0x6c/0x6e\n[  126.793651]  [\u003cc04dd74d\u003e] start_kernel+0x286/0x28b\n[  126.793656]  [\u003cc04dd037\u003e] __init_begin+0x37/0x3c\n\nSigned-off-by: Bob Copeland \u003cme@bobcopeland.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "729e9c7663190d71fe5e29831634df80f38199c1",
      "tree": "f04635ca9440538e192789ad3cd3041b9b514764",
      "parents": [
        "3b8bcfd5d31ea0fec58681d035544ace707d2536"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@atheros.com",
        "time": "Sun May 31 18:24:34 2009 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:05:12 2009 -0400"
      },
      "message": "cfg80211: fix for duplicate userspace replies\n\nThis fixes an incorrect assumption (BUG_ON) made in\ncfg80211 when handling country IE regulatory requests.\nThe assumption was that we won\u0027t try to call_crda()\ntwice for the same event and therefore we will not\nrecieve two replies through nl80211 for the regulatory\nrequest. As it turns out it is true we don\u0027t call_crda()\ntwice for the same event, however, kobject_uevent_env()\n*might* send the udev event twice and/or userspace can\nsimply process the udev event twice. We remove the BUG_ON()\nand simply ignore the duplicate request.\n\nFor details refer to this thread:\n\nhttp://marc.info/?l\u003dlinux-wireless\u0026m\u003d124149987921337\u0026w\u003d2\n\nCc: stable@kernel.org\nReported-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3b8bcfd5d31ea0fec58681d035544ace707d2536",
      "tree": "cdb845275acea5a367bd9f17ce07c1a5ab4f19fa",
      "parents": [
        "bdf6d32f933bf28dfdca325281ee5266c753dc67"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sat May 30 01:39:53 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:05:12 2009 -0400"
      },
      "message": "net: introduce pre-up netdev notifier\n\nNETDEV_UP is called after the device is set UP, but sometimes\nit is useful to be able to veto the device UP. Introduce a\nnew NETDEV_PRE_UP notifier that can be used for exactly this.\nThe first use case will be cfg80211 denying interfaces to be\nset UP if the device is known to be rfkill\u0027ed.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "86ab04c8c1df51df7d6d3709da546e0163ac856b",
      "tree": "a9683cc31ed8b7f40b2ea8a066ef8619f37ee777",
      "parents": [
        "2c5b9e511fee1a856ffe6332e15c72a20d2c72f6"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@atheros.com",
        "time": "Wed May 27 22:56:05 2009 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:05:11 2009 -0400"
      },
      "message": "mac80211: handle -EALREADY on cfg80211 op assoc req\n\nWhen the SME requests to associate to an open AP\nieee80211_sta_set_extra_ie() can be called with zero IE\nlength. When this happens or when the extra IE has already\nbeen set -EALREADY is passed down and the supplicant will\ncomplain that the operation is already in progress and it will\nnot let us associate. We correct this by treating -EALREADY\nfrom ieee80211_sta_set_extra_ie() as a success just as we do\nfor wext.\n\nCc: Shan.Palanisamy@Atheros.com\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "034d655ee7b79a2f48ba4c2b620d2864a6e0aa14",
      "tree": "69d3231f9eb072f75129b9ae90d2d1b9ab63062f",
      "parents": [
        "7ba10a8efe501e26d995aa9b6dc13395518a87e4"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed May 27 10:35:29 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:05:10 2009 -0400"
      },
      "message": "cfg80211: disallow interfering with stations on non-AP (part 2)\n\nOn non-AP interfaces userspace has no business interfering with\nthe station management, this can confuse mac80211 (and other\ndrivers probably wouldn\u0027t support it anyway). Allow adding and\nremoving stations only on AP interfaces.\n\n(Reconcile this w/ previous version of patch posted with same\nsubject... -- JWL)\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7ba10a8efe501e26d995aa9b6dc13395518a87e4",
      "tree": "ae8cb7da2e916ff3f070cad24ed9419d0e58999b",
      "parents": [
        "1bb563334858f48f65b58bab6d10b54080f4ee42"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed May 27 09:41:06 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:05:10 2009 -0400"
      },
      "message": "mac80211: fix transposed min/max CW values\n\nI accidentally transposed these in the patch that \"fixed\" the defaults,\nleading to extremely low throughput because of the huge min CW.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8fc0fee09245fe740d81aded36f4af6db1054015",
      "tree": "f2093f0edbef526bd54bb1d5f8913f2dc6a7a4c8",
      "parents": [
        "362a415dce2130b0e4cebfc8f8fbd8128baff308"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun May 24 16:57:19 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:05:10 2009 -0400"
      },
      "message": "cfg80211: use key size constants\n\nInstead of hardcoding the key length for validation, use the\nconstants Zhu Yi recently added and add one for AES_CMAC too.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "362a415dce2130b0e4cebfc8f8fbd8128baff308",
      "tree": "6d93d638116b7083bc34a1ef15057024cacd6bf9",
      "parents": [
        "51b50fbeb574f581c0b112e035541f42fa3e604a"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun May 24 16:43:15 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:05:10 2009 -0400"
      },
      "message": "nl80211: bounce scan request back to userspace\n\nWhen a scan finishes only the program that asked for it\nknows what kind of scan it was; let\u0027s tell everybody else\nabout the scan parameters as well so they can evaluate\nthe result of the scan better. Also helps with debugging.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "51b50fbeb574f581c0b112e035541f42fa3e604a",
      "tree": "2e2b75a4863b7d9d9b8bcdd3cf56be66414d83bb",
      "parents": [
        "6b347bff145f9a8a0972ca8fc3c44dd1f91b0f16"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun May 24 16:42:30 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:05:10 2009 -0400"
      },
      "message": "cfg80211: validate AID of stations being added\n\nWe have some validation code in mac80211 but said code will\nforce an invalid AID to 0 which isn\u0027t a valid AID either;\ninstead require a valid AID (1-2007) to be passed in from\nuserspace in cfg80211 already. Also move the code before\nthe race comment since it can only be executed during STA\naddition and thus is not racy.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e535c7566e1318ccfa015e297f0309994f7bc078",
      "tree": "586e150edc49e9bf64f7fea728ce37b8cff4063a",
      "parents": [
        "2fa7a98fc96abe431e5d54d97104cdca197391fa"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sat May 23 11:18:45 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 03 14:05:09 2009 -0400"
      },
      "message": "mac80211: deprecate conf.beacon_int properly\n\nIvo has updated the driver to no longer use the change flag,\nso we can remove that, but rt2x00 and ath5k still use the\nactual value so let\u0027s mark it as deprecated too.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c6ba68a26645dbc5029a9faa5687ebe6fcfc53e4",
      "tree": "e47a8f343b7fd0ba0a5d3e49a740d5dbe73e430a",
      "parents": [
        "9919b455fc00c995ef8141848bdc0709ce50bf36"
      ],
      "author": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Mon Jun 01 12:41:15 2009 -0400"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Wed Jun 03 09:14:47 2009 -0400"
      },
      "message": "sctp: support non-blocking version of the new sctp_connectx() API\n\nPrior implementation of the new sctp_connectx() call that returns\nan association ID did not work correctly on non-blocking socket.\nThis is because we could not return both a EINPROGRESS error and\nan association id.  This is a new implementation that supports this.\n\nOriginally from Ivan Skytte Jørgensen \u003cisj-sctp@i1.dk\n\nSigned-off-by: Ivan Skytte Jørgensen \u003cisj-sctp@i1.dk\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "9919b455fc00c995ef8141848bdc0709ce50bf36",
      "tree": "ec700e8a9fe3dd9f1ed841e22f96c06476d484fb",
      "parents": [
        "d48e074dfdada552fa53f5eab807540f352e0d5d"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Tue May 12 21:52:51 2009 +0800"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Wed Jun 03 09:14:46 2009 -0400"
      },
      "message": "sctp: fix to choose alternate destination when retransmit ASCONF chunk\n\nRFC 5061 Section 5.1 ASCONF Chunk Procedures said:\n\nB4)  Re-transmit the ASCONF Chunk last sent and if possible choose an\n     alternate destination address (please refer to [RFC4960],\n     Section 6.4.1).  An endpoint MUST NOT add new parameters to this\n     chunk; it MUST be the same (including its Sequence Number) as\n     the last ASCONF sent.  An endpoint MAY, however, bundle an\n     additional ASCONF with new ASCONF parameters with the next\n     Sequence Number.  For details, see Section 5.5.\n\nThis patch fix to choose an alternate destination address when\nre-transmit the ASCONF chunk, with some dup codes cleanup.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "d48e074dfdada552fa53f5eab807540f352e0d5d",
      "tree": "006418720eae7a7f54aba39a2a4fc98fe0711c3b",
      "parents": [
        "10a43cea7da841cf85a778a1a4d367fb2de7cbce"
      ],
      "author": {
        "name": "Jean-Mickael Guerin",
        "email": "jean-mickael.guerin@6wind.com",
        "time": "Wed May 13 00:03:20 2009 +0200"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Wed Jun 03 09:14:46 2009 -0400"
      },
      "message": "sctp: fix sack_timeout sysctl min and max types\n\nsctp_sack_timeout is defined as int, but the sysctl\u0027s maxsize is set\nto sizeof(long) and the min/max are defined as long.\n\nSigned-off-by: jean-mickael.guerin@6wind.com\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "10a43cea7da841cf85a778a1a4d367fb2de7cbce",
      "tree": "9a2accb2150d3bfa7f2efc1a824b43ca654fb7ba",
      "parents": [
        "6345b19985e9f3ec31b61720de01806e3ef680fe"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Sun Apr 26 23:14:42 2009 +0800"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Wed Jun 03 09:14:46 2009 -0400"
      },
      "message": "sctp: fix panic when T4-rto timer expire on removed transport\n\nIf T4-rto timer is expired on a removed transport, kernel panic\nwill occur when we do failure management on that transport.\nYou can reproduce this use the following sequence:\n\nEndpoint A                           Endpoint B\n(ESTABLISHED)                        (ESTABLISHED)\n\n            \u003c-----------------      ASCONF\n                                    (SRC\u003dX)\nASCONF        -----------------\u003e\n(Delete IP Address \u003d X)\n            \u003c-----------------      ASCONF-ACK\n                                    (Success Indication)\n            \u003c-----------------      ASCONF\n                                    (T4-rto timer expire)\n\nThis patch fixed the problem.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "6345b19985e9f3ec31b61720de01806e3ef680fe",
      "tree": "bb34bf4a7c0bc539e405a68c6835bb40d6b91147",
      "parents": [
        "a2c395846cf6abfdda3c04a19a0982adbb6469c2"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Sun Apr 26 23:13:35 2009 +0800"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Wed Jun 03 09:14:46 2009 -0400"
      },
      "message": "sctp: fix panic when T2-shutdown timer expire on removed transport\n\nIf T2-shutdown timer is expired on a removed transport, kernel\npanic will occur when we do failure management on that transport.\nYou can reproduce this use the following sequence:\n\n  Endpoint A                           Endpoint B\n  (ESTABLISHED)                        (ESTABLISHED)\n\n                \u003c-----------------      SHUTDOWN\n                                        (SRC\u003dX)\n  ASCONF        -----------------\u003e\n  (Delete IP Address \u003d X)\n                \u003c-----------------      ASCONF-ACK\n                                        (Success Indication)\n                \u003c-----------------      SHUTDOWN\n                                        (T2-shutdown timer expire)\nThis patch fixed the problem.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "a2c395846cf6abfdda3c04a19a0982adbb6469c2",
      "tree": "61bd4a2939f686fffc8e9d2c2a29d3ec2456f436",
      "parents": [
        "4553e88d876e7eb29db3e8f632101398900d2194"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Tue Apr 07 16:35:11 2009 +0800"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Wed Jun 03 09:14:46 2009 -0400"
      },
      "message": "sctp: fix to only enable IPv6 address support on PF_INET6 socket\n\nIf socket is create by PF_INET type, it can not used IPv6 address\nto send/recv DATA. So only enable IPv6 address support on PF_INET6\nsocket.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "4553e88d876e7eb29db3e8f632101398900d2194",
      "tree": "fb29970170acb11f444d19e5bda2c702ff9adb2a",
      "parents": [
        "945e5abceef8bdb85d8455e7f9a3cd647dd8b156"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Tue Apr 07 16:36:14 2009 +0800"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Wed Jun 03 09:14:45 2009 -0400"
      },
      "message": "sctp: fix a typo in net/sctp/sm_statetable.c\n\nJust fix a typo in net/sctp/sm_statetable.c.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "945e5abceef8bdb85d8455e7f9a3cd647dd8b156",
      "tree": "92f9381837c9c4aa1c4ffcccbeebe80818822d4f",
      "parents": [
        "a987f762cafb25c0fedf88f15e328edd897210ed"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Thu Apr 16 14:21:02 2009 +0800"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Wed Jun 03 09:14:45 2009 -0400"
      },
      "message": "sctp: fix the error code when ASCONF is received with invalid address\n\nUse Unresolvable Address error cause instead of Invalid Mandatory\nParameter error cause when process ASCONF chunk with invalid address\nsince address parameters are not mandatory in the ASCONF chunk.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "a987f762cafb25c0fedf88f15e328edd897210ed",
      "tree": "0657be9f57f4d4ab647556d84039385b714de5e9",
      "parents": [
        "a84db7949eab7a42e715192f62c55c554e195e54"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Tue Apr 07 15:44:29 2009 +0800"
      },
      "committer": {
        "name": "Vlad Yasevich",
        "email": "vladislav.yasevich@hp.com",
        "time": "Wed Jun 03 09:14:45 2009 -0400"
      },
      "message": "sctp: fix report unrecognized parameter in ACSONF-ACK\n\nRFC5061 Section 5.2.  Upon Reception of an ASCONF Chunk\n\nV2)  In processing the chunk, the receiver should build a\n     response message with the appropriate error TLVs, as\n     specified in the Parameter type bits, for any ASCONF\n     Parameter it does not understand.  To indicate an\n     unrecognized parameter, Cause Type 8 should be used as\n     defined in the ERROR in Section 3.3.10.8, [RFC4960].  The\n     endpoint may also use the response to carry rejections for\n     other reasons, such as resource shortages, etc., using the\n     Error Cause TLV and an appropriate error condition.\n\nSo we should indicate an unrecognized parameter with error\nSCTP_ERROR_UNKNOWN_PARAM in ACSONF-ACK chunk, not\nSCTP_ERROR_INV_PARAM.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\n"
    },
    {
      "commit": "adf30907d63893e4208dfe3f5c88ae12bc2f25d5",
      "tree": "0f07542bb95de2ad537540868aba6cf87a86e17d",
      "parents": [
        "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:19:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:04 2009 -0700"
      },
      "message": "net: skb-\u003edst accessors\n\nDefine three accessors to get/set dst attached to a skb\n\nstruct dst_entry *skb_dst(const struct sk_buff *skb)\n\nvoid skb_dst_set(struct sk_buff *skb, struct dst_entry *dst)\n\nvoid skb_dst_drop(struct sk_buff *skb)\nThis one should replace occurrences of :\ndst_release(skb-\u003edst)\nskb-\u003edst \u003d NULL;\n\nDelete skb-\u003edst field\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a",
      "tree": "3e368d9a78f87eb9dd7ff9e57f4aab3f4a96e3b1",
      "parents": [
        "dfbf97f3ac980b69dfbc41c83a208211a38443e8"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:14:27 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:02 2009 -0700"
      },
      "message": "net: skb-\u003ertable accessor\n\nDefine skb_rtable(const struct sk_buff *skb) accessor to get rtable from skb\n\nDelete skb-\u003ertable field\n\nSetting rtable is not allowed, just set dst instead as rtable is an alias.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b2f8f7525c8aa1fdd8ad8c72c832dfb571d5f768",
      "tree": "71ae1801d264bca62efa0d22376b49de7f206e9a",
      "parents": [
        "d455e5b165a367a628110ec2d18807ea10052cd1",
        "12186be7d2e1106cede1cc728526e3d7998cbe94"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:43:41 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:43:41 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/forcedeth.c\n"
    },
    {
      "commit": "12186be7d2e1106cede1cc728526e3d7998cbe94",
      "tree": "a27e9c1cf720fbd31d67c27ea1426a0ae891733b",
      "parents": [
        "ea30e11970a96cfe5e32c03a29332554573b4a10"
      ],
      "author": {
        "name": "Minoru Usui",
        "email": "usui@mxm.nes.nec.co.jp",
        "time": "Tue Jun 02 02:17:34 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 02 02:17:34 2009 -0700"
      },
      "message": "net_cls: fix unconfigured struct tcf_proto keeps chaining and avoid kernel panic when we use cls_cgroup\n\nThis patch fixes a bug which unconfigured struct tcf_proto keeps\nchaining in tc_ctl_tfilter(), and avoids kernel panic in\ncls_cgroup_classify() when we use cls_cgroup.\n\nWhen we execute \u0027tc filter add\u0027, tcf_proto is allocated, initialized\nby classifier\u0027s init(), and chained.  After it\u0027s chained,\ntc_ctl_tfilter() calls classifier\u0027s change().  When classifier\u0027s\nchange() fails, tc_ctl_tfilter() does not free and keeps tcf_proto.\n\nIn addition, cls_cgroup is initialized in change() not in init().  It\naccesses unconfigured struct tcf_proto which is chained before\nchange(), then hits Oops.\n\nSigned-off-by: Minoru Usui \u003cusui@mxm.nes.nec.co.jp\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nTested-by: Minoru Usui \u003cusui@mxm.nes.nec.co.jp\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f771bef98004d9d141b085d987a77d06669d4f4f",
      "tree": "df9b7a353a8c28e71a8237d3ad65ba7f41ffab30",
      "parents": [
        "4d52cfbef6266092d535237ba5a4b981458ab171"
      ],
      "author": {
        "name": "Nivedita Singhvi",
        "email": "niv@us.ibm.com",
        "time": "Thu May 28 07:00:46 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 02 00:45:24 2009 -0700"
      },
      "message": "ipv4: New multicast-all socket option\n\nAfter some discussion offline with Christoph Lameter and David Stevens\nregarding multicast behaviour in Linux, I\u0027m submitting a slightly\nmodified patch from the one Christoph submitted earlier.\n\nThis patch provides a new socket option IP_MULTICAST_ALL.\n\nIn this case, default behaviour is _unchanged_ from the current\nLinux standard. The socket option is set by default to provide\noriginal behaviour. Sockets wishing to receive data only from\nmulticast groups they join explicitly will need to clear this\nsocket option.\n\nSigned-off-by: Nivedita Singhvi \u003cniv@us.ibm.com\u003e\nSigned-off-by: Christoph Lameter\u003ccl@linux.com\u003e\nAcked-by: David Stevens \u003cdlstevens@us.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4d52cfbef6266092d535237ba5a4b981458ab171",
      "tree": "c11674a1d89196008aeab321b42db4e2b0cd0b28",
      "parents": [
        "dae9de8e13a8a5154688e4c788e65399b4718707"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 00:42:16 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 02 00:42:16 2009 -0700"
      },
      "message": "net: ipv4/ip_sockglue.c cleanups\n\nPure cleanups\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dae9de8e13a8a5154688e4c788e65399b4718707",
      "tree": "1f3de9c37a148284de7cb9ef8cedfc5ec6a70b70",
      "parents": [
        "b61b8af0f3883b451bb9c3b3eaea4379aca9f36f"
      ],
      "author": {
        "name": "Brian Haley",
        "email": "brian.haley@hp.com",
        "time": "Tue Jun 02 00:20:26 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 02 00:20:26 2009 -0700"
      },
      "message": "IPv6: Print error value when skb allocation fails\n\nPrint-out the error value when sock_alloc_send_skb() fails in\nthe IPv6 neighbor discovery code - can be useful for debugging.\n\nSigned-off-by: Brian Haley \u003cbrian.haley@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bbd5898d39ab9f855c732f6f07e40e95b05cf52a",
      "tree": "383f8dc9aa4727269693d1442c83dd780161c177",
      "parents": [
        "c930a66220bac0815cca74eef94ada221377ffba"
      ],
      "author": {
        "name": "Rémi Denis-Courmont",
        "email": "remi.denis-courmont@nokia.com",
        "time": "Mon Jun 01 00:35:16 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 02 00:17:43 2009 -0700"
      },
      "message": "Phonet: fix accounting race between gprs_writeable() and gprs_xmit()\n\nIn the unlikely event that gprs_writeable() and gprs_xmit() check for\nwriteability at the same, we could stop the device queue forever.\n\nSigned-off-by: Rémi Denis-Courmont \u003cremi.denis-courmont@nokia.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc23ffe075365d2f21b1046048ad0d342bbb41be",
      "tree": "164889c120908fbfeae36790f7bbee0271a30873",
      "parents": [
        "cf9f6e21c155d5add733b969c695837ead79eeab",
        "4c713189485dbea875aecd1990daed74908e181d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 01 14:32:08 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 01 14:32:08 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6\n"
    },
    {
      "commit": "56d417b12e57dfe11c9b7ba4bea3882c62a55815",
      "tree": "5f7d6fedc4370333898ef7790711e0a9c73e323d",
      "parents": [
        "0220ff7fc35913dcd8cdf8fb3a0966caf4aed2f3"
      ],
      "author": {
        "name": "Brian Haley",
        "email": "brian.haley@hp.com",
        "time": "Mon Jun 01 03:07:33 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 01 03:07:33 2009 -0700"
      },
      "message": "IPv6: Add \u0027autoconf\u0027 and \u0027disable_ipv6\u0027 module parameters\n\nAdd \u0027autoconf\u0027 and \u0027disable_ipv6\u0027 parameters to the IPv6 module.\n\nThe first controls if IPv6 addresses are autoconfigured from\nprefixes received in Router Advertisements.  The IPv6 loopback\n(::1) and link-local addresses are still configured.\n\nThe second controls if IPv6 addresses are desired at all.  No\nIPv6 addresses will be added to any interfaces.\n\nSigned-off-by: Brian Haley \u003cbrian.haley@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ccffad25b5136958d4769ed6de5e87992dd9c65c",
      "tree": "cd5f36fe67f4deeae23d76436f7a032a201cba44",
      "parents": [
        "ae63e808f508c38fe65e23a1480c85d5bd00ecbd"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Fri May 22 23:22:17 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 29 22:12:32 2009 -0700"
      },
      "message": "net: convert unicast addr list\n\nThis patch converts unicast address list to standard list_head using\npreviously introduced struct netdev_hw_addr. It also relaxes the\nlocking. Original spinlock (still used for multicast addresses) is not\nneeded and is no longer used for a protection of this list. All\nreading and writing takes place under rtnl (with no changes).\n\nI also removed a possibility to specify the length of the address\nwhile adding or deleting unicast address. It\u0027s always dev-\u003eaddr_len.\n\nThe convertion touched especially e1000 and ixgbe codes when the\nchange is not so trivial.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\n\n drivers/net/bnx2.c               |   13 +--\n drivers/net/e1000/e1000_main.c   |   24 +++--\n drivers/net/ixgbe/ixgbe_common.c |   14 ++--\n drivers/net/ixgbe/ixgbe_common.h |    4 +-\n drivers/net/ixgbe/ixgbe_main.c   |    6 +-\n drivers/net/ixgbe/ixgbe_type.h   |    4 +-\n drivers/net/macvlan.c            |   11 +-\n drivers/net/mv643xx_eth.c        |   11 +-\n drivers/net/niu.c                |    7 +-\n drivers/net/virtio_net.c         |    7 +-\n drivers/s390/net/qeth_l2_main.c  |    6 +-\n drivers/scsi/fcoe/fcoe.c         |   16 ++--\n include/linux/netdevice.h        |   18 ++--\n net/8021q/vlan.c                 |    4 +-\n net/8021q/vlan_dev.c             |   10 +-\n net/core/dev.c                   |  195 +++++++++++++++++++++++++++-----------\n net/dsa/slave.c                  |   10 +-\n net/packet/af_packet.c           |    4 +-\n 18 files changed, 227 insertions(+), 137 deletions(-)\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2df9001edc382c331f338f45d259feeaa740c418",
      "tree": "eb92c3ef77973295469743a1087c551acf7ece67",
      "parents": [
        "5d4e039b2cb1ca4de9774344ea7b61ad7fa1b0a1"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri May 29 15:02:29 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 29 15:02:29 2009 -0700"
      },
      "message": "tcp: fix loop in ofo handling code and reduce its complexity\n\nSomewhat luckily, I was looking into these parts with very fine\ncomb because I\u0027ve made somewhat similar changes on the same\narea (conflicts that arose weren\u0027t that lucky though). The loop\nwas very much overengineered recently in commit 915219441d566\n(tcp: Use SKB queue and list helpers instead of doing it\nby-hand), while it basically just wants to know if there are\nskbs after \u0027skb\u0027.\n\nAlso it got broken because skb1 \u003d skb-\u003enext got translated into\nskb1 \u003d skb1-\u003enext (though abstracted) improperly. Note that\n\u0027skb1\u0027 is pointing to previous sk_buff than skb or NULL if at\nhead. Two things went wrong:\n- We\u0027ll kfree \u0027skb\u0027 on the first iteration instead of the\n  skbuff following \u0027skb\u0027 (it would require required SACK reneging\n  to recover I think).\n- The list head case where \u0027skb1\u0027 is NULL is checked too early\n  and the loop won\u0027t execute whereas it previously did.\n\nConclusion, mostly revert the recent changes which makes the\ncset very messy looking but using proper accessor in the\nprevious-like version.\n\nThe effective changes against the original can be viewed with:\n  git-diff 915219441d566f1da0caa0e262be49b666159e17^ \\\n\t\tnet/ipv4/tcp_input.c | sed -n -e \u002757,70 p\u0027\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "108bfa895cacd1a7c1767e85be105b213e5dce50",
      "tree": "4e1aebbe9ad638f36539278b98342edaab5f46df",
      "parents": [
        "a489e51c1a69c3aa7e7aea925f71c92be5cedbb1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu May 28 22:35:10 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 29 01:46:29 2009 -0700"
      },
      "message": "net: unset IFF_XMIT_DST_RELEASE in ipgre_tunnel_setup()\n\nipgre_tunnel_xmit() might need skb-\u003edst, so tell dev_hard_start_xmit()\nto no release it.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a489e51c1a69c3aa7e7aea925f71c92be5cedbb1",
      "tree": "adcb50b051329aa9f2cd98fef3c579bb18a5a938",
      "parents": [
        "28e72216d7e7af7050f171a87c1eecba93d01ea6"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu May 28 11:14:49 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 29 01:46:28 2009 -0700"
      },
      "message": "atm: unset IFF_XMIT_DST_RELEASE in clip_setup()\n\nclip_start_xmit() needs skb-\u003edst so tell dev_hard_start_xmit()\nto no release it.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "28e72216d7e7af7050f171a87c1eecba93d01ea6",
      "tree": "f29f63e75b5b3e9af58b043d7aa5b1b85dc15b4b",
      "parents": [
        "cdd0db058d64f2619b08e7d098ee0014aa0a5bc1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu May 28 10:44:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 29 01:46:27 2009 -0700"
      },
      "message": "net: unset IFF_XMIT_DST_RELEASE in ipip_tunnel_setup()\n\nipip_tunnel_xmit() might need skb-\u003edst, so tell dev_hard_start_xmit()\nto no release it.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3f1f39c42b24d5c20eb593ce80b9c4d5ec1e2148",
      "tree": "785e5d697e9c2e4b8fd012a7e9c8aac263c186a5",
      "parents": [
        "dfe9a837987aacaffbce020fbf54d8e0afa4bde1",
        "7481806dcfd07e9a636155554f6f4b4fbd976381"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 29 01:41:32 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 29 01:41:32 2009 -0700"
      },
      "message": "Merge branch \u0027linux-2.6.31.y\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/inaky/wimax\n"
    },
    {
      "commit": "dfe9a837987aacaffbce020fbf54d8e0afa4bde1",
      "tree": "2d5c148a8e19ab6d0e90fe0ba15e86594f9589a7",
      "parents": [
        "528be7ff823c3d0fc08c91f31b1e84c5f2681762"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 23:31:56 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 23:31:56 2009 -0700"
      },
      "message": "llc: Kill outdated and incorrect comment.\n\nThis comment suggested storing two pieces of state in the\nLLC skb control block, and in fact we do.  Someone did\nthe implementation but never killed this todo comment :-)\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "528be7ff823c3d0fc08c91f31b1e84c5f2681762",
      "tree": "d9fa74ab5d551968b5f9afd2e8d0d5ad40f571e1",
      "parents": [
        "915219441d566f1da0caa0e262be49b666159e17"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 23:26:33 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 23:26:33 2009 -0700"
      },
      "message": "irda: Use SKB queue and list helpers instead of doing it by-hand.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "915219441d566f1da0caa0e262be49b666159e17",
      "tree": "91d40271d6601bc7ae10c4ab0cff2a47bb38d4e3",
      "parents": [
        "de1033428baf1940bbbbf9e66b073ee0a577f5e0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 21:35:47 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 21:35:47 2009 -0700"
      },
      "message": "tcp: Use SKB queue and list helpers instead of doing it by-hand.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7f0333eb2f98bbfece4fbfe21076d0a3e49f0bb0",
      "tree": "6dcfd052fccde051f56600a7cea095a8f1479d74",
      "parents": [
        "a0a4c4c9e54ee4255f46eedb572ad69ee34c77b6"
      ],
      "author": {
        "name": "Paulius Zaleckas",
        "email": "paulius.zaleckas@teltonika.lt",
        "time": "Wed May 13 06:20:29 2009 -0700"
      },
      "committer": {
        "name": "Inaky Perez-Gonzalez",
        "email": "inaky@linux.intel.com",
        "time": "Thu May 28 18:02:20 2009 -0700"
      },
      "message": "wimax: Add netlink interface to get device state\n\nwimax connection manager / daemon has to know what is current\nstate of the device. Previously it was only possible to get\nnotification whet state has changed.\n\nNote:\n\n By mistake, the new generic netlink\u0027s number for\n WIMAX_GNL_OP_STATE_GET was declared inserting into the existing list\n of API calls, not appending; thus, it\u0027d break existing API.\n\n Fixed by Inaky Perez-Gonzalez \u003cinaky@linux.intel.com\u003e by moving to\n the tail, where we add to the interface, not modify the interface.\n\n Thanks to Stephen Hemminger \u003cshemminger@vyatta.com\u003e for catching this.\n\nSigned-off-by: Paulius Zaleckas \u003cpaulius.zaleckas@teltonika.lt\u003e\n"
    },
    {
      "commit": "52a8d9630890f2289354d03e8751bf0eba2b3376",
      "tree": "abac1de1d3eab2e1bbbced60cc304ed1337a0a7d",
      "parents": [
        "052991d7ac7f7b2c0319e6ccd2e8a48a71f2bd58"
      ],
      "author": {
        "name": "Inaky Perez-Gonzalez",
        "email": "inaky@linux.intel.com",
        "time": "Tue May 05 21:05:16 2009 -0700"
      },
      "committer": {
        "name": "Inaky Perez-Gonzalez",
        "email": "inaky@linux.intel.com",
        "time": "Thu May 28 18:02:04 2009 -0700"
      },
      "message": "wimax: document why wimax_msg_*() operations can be used in any state\n\nFuncion documentation for wimax_msg_alloc() and wimax_msg_send() needs\nto clarify that they can be used in the very early stages of a\nwimax_dev lifecycle.\n\nSigned-off-by: Inaky Perez-Gonzalez \u003cinaky@linux.intel.com\u003e\n"
    },
    {
      "commit": "de1033428baf1940bbbbf9e66b073ee0a577f5e0",
      "tree": "af7bde2123719b3618bacf06ce8e6f57c7804e49",
      "parents": [
        "bec571ec762a4cf855ad4446f833086fc154b60e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 16:46:29 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 16:46:29 2009 -0700"
      },
      "message": "econet: Use SKB queue and list helpers instead of doing it by-hand.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bec571ec762a4cf855ad4446f833086fc154b60e",
      "tree": "4ff3f63d60bd6a7735caebedf6e27c3e3a74efe4",
      "parents": [
        "b6211ae7f2e56837c6a4849316396d1535606e90"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 16:43:52 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 16:43:52 2009 -0700"
      },
      "message": "decnet: Use SKB queue and list helpers instead of doing it by-hand.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b6211ae7f2e56837c6a4849316396d1535606e90",
      "tree": "4145a71b4832290a70f5932b2b962f94b940b56a",
      "parents": [
        "46c37672d7fff0097385eb0cbd01aa0254dad0aa"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 16:36:47 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 16:36:47 2009 -0700"
      },
      "message": "atm: Use SKB queue and list helpers instead of doing it by-hand.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4d3383d0adb6d1047fb9ee3edd9dc05e4d2184f0",
      "tree": "b9eabfb61d9b74d87e75c073c79edc92d9612ed8",
      "parents": [
        "b63dc8fef7ca5c51d163295d824e78c770d48ccf",
        "eeff9beec3d2563c42cca41e66d4169592bb5475"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 15:51:25 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 15:51:25 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6\n"
    },
    {
      "commit": "2a91525c20d3aae15b33c189514b9e20e30ef8a8",
      "tree": "adf915fe9dc7dc28cdb2ef93c5494c694e2577da",
      "parents": [
        "553e2335625e6c96cb6d76c0d63cfc1034747614"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed May 27 11:30:05 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 15:47:07 2009 -0700"
      },
      "message": "net: net/core/sock.c cleanup\n\nPure style cleanup patch.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ce8e7b57b3a4527ef83da1c5c7bd8a6b9d87b56",
      "tree": "095536a47e40fdb621c1f959637fa63f57a4ccf2",
      "parents": [
        "0bb32417ff0f6ac385e4eec3ef6641950bbb3694"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed May 27 04:42:37 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 15:47:06 2009 -0700"
      },
      "message": "net: ALIGN/PTR_ALIGN cleanup in alloc_netdev_mq()/netdev_priv()\n\nUse ALIGN() and PTR_ALIGN() macros instead of handcoding them.\n\nGet rid of NETDEV_ALIGN_CONST ugly define\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0bb32417ff0f6ac385e4eec3ef6641950bbb3694",
      "tree": "5870508311a8b89b91ed24d197247a251f742ea2",
      "parents": [
        "824fb38e99cd5334629b340a2ae1ba0917cc35ab"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Wed May 27 00:55:08 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 15:46:54 2009 -0700"
      },
      "message": "bridge: avoid an extra space in br_fdb_update()\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eeff9beec3d2563c42cca41e66d4169592bb5475",
      "tree": "d727bae7008d9ec4a412f2aebc3bfd9f485c6f01",
      "parents": [
        "683a04cebc63819a36b1db19843bd17771f05b55"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Wed May 27 15:49:11 2009 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed May 27 15:49:11 2009 +0200"
      },
      "message": "netfilter: nfnetlink_log: fix wrong skbuff size\tcalculation\n\nThis problem was introduced in 72961ecf84d67d6359a1b30f9b2a8427f13e1e71\nsince no space was reserved for the new attributes NFULA_HWTYPE,\nNFULA_HWLEN and NFULA_HWHEADER.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "683a04cebc63819a36b1db19843bd17771f05b55",
      "tree": "1d8770a96cdb13de12e297a99d03c6063320030d",
      "parents": [
        "b38b1f616867c832301f24eaf259889494d495b3"
      ],
      "author": {
        "name": "Jesper Dangaard Brouer",
        "email": "hawk@comx.dk",
        "time": "Wed May 27 15:45:34 2009 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed May 27 15:45:34 2009 +0200"
      },
      "message": "netfilter: xt_hashlimit does a wrong SEQ_SKIP\n\nThe function dl_seq_show() returns 1 (equal to SEQ_SKIP) in case\na seq_printf() call return -1.  It should return -1.\n\nThis SEQ_SKIP behavior brakes processing the proc file e.g. via a\npipe or just through less.\n\nSigned-off-by: Jesper Dangaard Brouer \u003chawk@comx.dk\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "a2a804cddfe65f18f903985e8a8d04c7c9eec354",
      "tree": "93c81d1a672b52ff8ec38fefa227ab894b37ec62",
      "parents": [
        "9aaa156cf9b7e9d9ed899f254283b91c4e3c36c8"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:34 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:05 2009 -0700"
      },
      "message": "tcp: Do not check flush when comparing options for GRO\n\nThere is no need to repeatedly check flush when comparing TCP\noptions for GRO as it will be false 99% of the time where it\nmatters.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9aaa156cf9b7e9d9ed899f254283b91c4e3c36c8",
      "tree": "b96988e05acc737d97ec2a3f238344ec5bfb917f",
      "parents": [
        "66e92fcf1ded5dd0da30d016ed47882eb183ec71"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:33 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:05 2009 -0700"
      },
      "message": "gro: Store shinfo in local variable in skb_gro_receive\n\nThis patch stores the two shinfo pointers in local variables\nbecause they\u0027re used over and over again in skb_gro_receive.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "66e92fcf1ded5dd0da30d016ed47882eb183ec71",
      "tree": "be7f0fc2415ada8eb5030af53f3063375c381d47",
      "parents": [
        "cb18978cbf454c236db5e4191a12ef71eef9b3a0"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:32 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:04 2009 -0700"
      },
      "message": "gro: Nasty optimisations for page frags in skb_gro_receive\n\nThis patch reverses the direction of the frags array copy in\nskb_gro_receive in order simplify the loop conditional.  It\nalso avoids touching the first element of the original frags\narray.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cb18978cbf454c236db5e4191a12ef71eef9b3a0",
      "tree": "19677bb82c9e750efe4c735f31df50b5e82a5a6d",
      "parents": [
        "1075f3f65d0e0f49351b7d4310e9f94483972a51"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:31 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:02 2009 -0700"
      },
      "message": "gro: Open-code final pskb_may_pull\n\nAs we know the only packets which need the final pskb_may_pull\nare completely non-linear, and have all the required bits in\nfrag0, we can perform a straight memcpy instead of going through\npskb_may_pull and doing skb_copy_bits.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1075f3f65d0e0f49351b7d4310e9f94483972a51",
      "tree": "e5b4a0dbf4eef170da483ce5c52855b7b354e4e0",
      "parents": [
        "a5b1cf288d4200506ab62fbb86cc81ace948a306"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:29 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:02 2009 -0700"
      },
      "message": "ipv4: Use 32-bit loads for ID and length in GRO\n\nThis patch optimises the IPv4 GRO code by using 32-bit loads\n(instead of 16-bit ones) on the ID and length checks in the receive\nfunction.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a5b1cf288d4200506ab62fbb86cc81ace948a306",
      "tree": "c95339866f4d67220d111811a92e5c6b79de6ab4",
      "parents": [
        "7489594cb249aeb178287c9a43a9e4f366044259"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:28 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:01 2009 -0700"
      },
      "message": "gro: Avoid unnecessary comparison after skb_gro_header\n\nFor the overwhelming majority of cases, skb_gro_header\u0027s return\nvalue cannot be NULL.  Yet we must check it because of its current\nform.  This patch splits it up into multiple functions in order\nto avoid this.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7489594cb249aeb178287c9a43a9e4f366044259",
      "tree": "3989b000550aa061d6cd222a83c12c62c1cc0182",
      "parents": [
        "30a3ae30c775e2723f86ef70746ad3cb4404a4c9"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:27 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:01 2009 -0700"
      },
      "message": "gro: Optimise length comparison in skb_gro_header\n\nBy caching frag0_len, we can avoid checking both frag0 and the\nlength separately in skb_gro_header.  This helps as skb_gro_header\nis called four times per packet which amounts to a few million\ntimes at 10Gb/s.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "30a3ae30c775e2723f86ef70746ad3cb4404a4c9",
      "tree": "9a3365e4a2b611930f31674a0162126625adac10",
      "parents": [
        "4a9a2968a17eae42ef5dffca8b37534c864e30cc"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:26 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:00 2009 -0700"
      },
      "message": "tcp: Optimise len/mss comparison\n\nInstead of checking len \u003e mss || len \u003d\u003d 0, we can accomplish\nboth by checking (len - 1) \u003e mss using the unsigned wraparound.\nAt nearly a million times a second, this might just help.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4a9a2968a17eae42ef5dffca8b37534c864e30cc",
      "tree": "8fa6f421a04491546a25f18a30e2133d50d83c64",
      "parents": [
        "745898eaf0eb7a04a56dec1188d9148259510863"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:25 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:25:59 2009 -0700"
      },
      "message": "tcp: Remove unnecessary window comparisons for GRO\n\nThe window has already been checked as part of the flag word\nso there is no need to check it explicitly.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "745898eaf0eb7a04a56dec1188d9148259510863",
      "tree": "c4ad29d7bc6e8ceb5a96f68cee363f871b2bf17f",
      "parents": [
        "78d3fd0b7de844a6dad56e9620fc9d2271b32ab9"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:24 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:25:57 2009 -0700"
      },
      "message": "tcp: Optimise GRO port comparisons\n\nInstead of doing two 16-bit operations for the source/destination\nports, we can do one 32-bit operation to take care both.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "78d3fd0b7de844a6dad56e9620fc9d2271b32ab9",
      "tree": "e79c910646deccc50f5a108782f66cebffafa4d8",
      "parents": [
        "67147ba99aeb48f2863e03b68e090088a34c1b5d"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:23 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:25:57 2009 -0700"
      },
      "message": "gro: Only use skb_gro_header for completely non-linear packets\n\nCurrently skb_gro_header is used for packets which put the hardware\nheader in skb-\u003edata with the rest in frags.  Since the drivers that\nneed this optimisation all provide completely non-linear packets,\nwe can gain extra optimisations by only performing the frag0\noptimisation for completely non-linear packets.\n\nIn particular, we can simply test frag0 (instead of skb_headlen)\nto see whether the optimisation is in force.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "67147ba99aeb48f2863e03b68e090088a34c1b5d",
      "tree": "08bb9375134fe553c991f5f160957330de13f414",
      "parents": [
        "78a478d0efd9e86e5345b436e130497b4e5846e8"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:22 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:25:55 2009 -0700"
      },
      "message": "gro: Localise offset/headlen in skb_gro_offset\n\nThis patch stores the offset/headlen in local variables as they\u0027re\nused repeatedly in skb_gro_offset.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "78a478d0efd9e86e5345b436e130497b4e5846e8",
      "tree": "273e7565811add8216267f5893335bdb7928a6b7",
      "parents": [
        "42da6994ca6d20ad1d4e30255dee98047db454e7"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:21 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:25:55 2009 -0700"
      },
      "message": "gro: Inline skb_gro_header and cache frag0 virtual address\n\nThe function skb_gro_header is called four times per packet which\nquickly adds up at 10Gb/s.  This patch inlines it to allow better\noptimisations.\n\nSome architectures perform multiplication for page_address, which\nis done by each skb_gro_header invocation.  This patch caches that\nvalue in skb-\u003ecb to avoid the unnecessary multiplications.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "42da6994ca6d20ad1d4e30255dee98047db454e7",
      "tree": "0feb7e6d5d18c5534f080636e809e7df9934f2c6",
      "parents": [
        "0fb2787bf2fa5dbe02ffd61ca3ce842c50769573"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:19 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:25:54 2009 -0700"
      },
      "message": "gro: Open-code frags copy in skb_gro_receive\n\ngcc does a poor job at generating code for the memcpy of the frags\narray in skb_gro_receive, which is the primary purpose of that\nfunction when merging frags.  In particular, it can\u0027t utilise the\nalignment information of the source and destination.  This patch\nopen-codes the copy so we process words instead of bytes.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4c713189485dbea875aecd1990daed74908e181d",
      "tree": "848424eb6d47b136126f5beff3193774ba06eefa",
      "parents": [
        "7682455ec36fce70bdbad9f739de05060dedfa27"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Wed May 27 09:10:28 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed May 27 09:15:57 2009 +0200"
      },
      "message": "Bluetooth: Remove useless flush_work() causing lockdep warnings\n\nThe calls to flush_work() are pointless in a single thread workqueue\nand they are actually causing a lockdep warning.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible recursive locking detected ]\n2.6.30-rc6-02911-gbb803cf #16\n---------------------------------------------\nbluetooth/2518 is trying to acquire lock:\n (bluetooth){+.+.+.}, at: [\u003cc0130c14\u003e] flush_work+0x28/0xb0\n\nbut task is already holding lock:\n (bluetooth){+.+.+.}, at: [\u003cc0130424\u003e] worker_thread+0x149/0x25e\n\nother info that might help us debug this:\n2 locks held by bluetooth/2518:\n #0:  (bluetooth){+.+.+.}, at: [\u003cc0130424\u003e] worker_thread+0x149/0x25e\n #1:  (\u0026conn-\u003ework_del){+.+...}, at: [\u003cc0130424\u003e] worker_thread+0x149/0x25e\n\nstack backtrace:\nPid: 2518, comm: bluetooth Not tainted 2.6.30-rc6-02911-gbb803cf #16\nCall Trace:\n [\u003cc03d64d9\u003e] ? printk+0xf/0x11\n [\u003cc0140d96\u003e] __lock_acquire+0x7ce/0xb1b\n [\u003cc0141173\u003e] lock_acquire+0x90/0xad\n [\u003cc0130c14\u003e] ? flush_work+0x28/0xb0\n [\u003cc0130c2e\u003e] flush_work+0x42/0xb0\n [\u003cc0130c14\u003e] ? flush_work+0x28/0xb0\n [\u003cf8b84966\u003e] del_conn+0x1c/0x84 [bluetooth]\n [\u003cc0130469\u003e] worker_thread+0x18e/0x25e\n [\u003cc0130424\u003e] ? worker_thread+0x149/0x25e\n [\u003cf8b8494a\u003e] ? del_conn+0x0/0x84 [bluetooth]\n [\u003cc0133843\u003e] ? autoremove_wake_function+0x0/0x33\n [\u003cc01302db\u003e] ? worker_thread+0x0/0x25e\n [\u003cc013355a\u003e] kthread+0x45/0x6b\n [\u003cc0133515\u003e] ? kthread+0x0/0x6b\n [\u003cc01034a7\u003e] kernel_thread_helper+0x7/0x10\n\nBased on a report by Oliver Hartkopp \u003coliver@hartkopp.net\u003e\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nTested-by: Oliver Hartkopp \u003coliver@hartkopp.net\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "079e24ed80c8a91dd2884b88820bac6f340aaa83",
      "tree": "5b57e50254023c8f0bf4442bd42e3c01c969227b",
      "parents": [
        "0a372eb91f9d507701a901c2f62ed31ca67fd66c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 26 21:15:00 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 26 21:15:00 2009 -0700"
      },
      "message": "nl80211: Eliminate reference to BUS_ID_SIZE.\n\nIt\u0027s going away.  Just leave the constant \"20\" here so that\nbehavior doesn\u0027t change.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2b0cc7f78ba55e831c16fb8cb5c204d9d2ecc398",
      "tree": "a8fc2828879666dd6e98ebd1e82f589225759065",
      "parents": [
        "f21b75e9d6471d7f4e2110774819be7beafc86d5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 26 21:05:19 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 26 21:05:19 2009 -0700"
      },
      "message": "net: Remove bogus reference to BUS_ID_SIZE in sysfs code.\n\nBUS_ID_SIZE is really no more, and device names are dynamically\nallocated and thus can be any necessary size.\n\nSo remove the BUG check here making sure BUS_ID_SIZE is at least\nas large as IFNAMSIZ.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e65fcfd63a9a62baa5708484ff8edbe56eb3e7ec",
      "tree": "0d21a21c2b87ef1c8db600d6abed3ba3e22cdaef",
      "parents": [
        "7682455ec36fce70bdbad9f739de05060dedfa27"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue May 26 20:47:02 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 26 20:47:02 2009 -0700"
      },
      "message": "cls_cgroup: read classid atomically in classifier\n\nAvoid reading the unsynchronized value cs-\u003eclassid multiple times,\nsince it could change concurrently from non-zero to zero; this would\nresult in the classifier returning a positive result with a bogus\n(zero) classid.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "08baf561083bc27a953aa087dd8a664bb2b88e8e",
      "tree": "979d92224e21b69368a27bb684b74b3d4d744183",
      "parents": [
        "65ac8851490ec97a96759af729132c96f925a795"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon May 25 22:58:01 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 25 22:58:01 2009 -0700"
      },
      "message": "net: txq_trans_update() helper\n\nWe would like to get rid of netdev-\u003etrans_start \u003d jiffies; that about all net\ndrivers have to use in their start_xmit() function, and use txq-\u003etrans_start\ninstead.\n\nThis can be done generically in core network, as suggested by David.\n\nSome devices, (particularly loopback) dont need trans_start update, because\nthey dont have transmit watchdog. We could add a new device flag, or rely\non fact that txq-\u003etran_start can be updated is txq-\u003exmit_lock_owner is\ndifferent than -1. Use a helper function to hide our choice.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a1dcb6628b9489504a3be2515580fc4de891f94a",
      "tree": "b78b964c1264b43f1c2899a27c48daf1a254802d",
      "parents": [
        "dfa9264fe1a0c1b46e11c6a4cd3251cd5e1afb71"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Mon May 25 22:47:01 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 25 22:47:01 2009 -0700"
      },
      "message": "pkt_sched: gen_estimator: Fix signed integers right-shifts.\n\nRight-shifts of signed integers are implementation-defined so unportable.\n\nWith feedback from: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c80a5cdfc5ca6533cb893154f546370da1fdb8f0",
      "tree": "963fef5f697a5953469441d5eaafbbad99fc64a8",
      "parents": [
        "217cbfa856dc1cbc2890781626c4032d9e3ec59f"
      ],
      "author": {
        "name": "Doug Leith",
        "email": "doug.leith@nuim.ie",
        "time": "Mon May 25 22:44:59 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 25 22:44:59 2009 -0700"
      },
      "message": "tcp: tcp_vegas ssthresh bugfix\n\nThis patch fixes ssthresh accounting issues in tcp_vegas when cwnd decreases\n\nSigned-off-by: Doug Leith \u003cdoug.leith@nuim.ie\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b38b1f616867c832301f24eaf259889494d495b3",
      "tree": "6c1d5eebb768ac242cae86f165816a4915b662c5",
      "parents": [
        "bfcaa50270e18f35220a11d46e98fc6232c24606"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "Pablo Neira Ayuso",
        "time": "Mon May 25 17:29:43 2009 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon May 25 17:29:43 2009 +0200"
      },
      "message": "netfilter: nf_ct_dccp: add missing DCCP protocol changes in event cache\n\nThis patch adds the missing protocol state-change event reporting\nfor DCCP.\n\n$ sudo conntrack -E\n    [NEW] dccp     33 240 src\u003d192.168.0.2 dst\u003d192.168.1.2 sport\u003d57040 dport\u003d5001 [UNREPLIED] src\u003d192.168.1.2 dst\u003d192.168.1.100 sport\u003d5001 dport\u003d57040\n\nWith this patch:\n\n$ sudo conntrack -E\n    [NEW] dccp     33 240 REQUEST src\u003d192.168.0.2 dst\u003d192.168.1.2 sport\u003d57040 dport\u003d5001 [UNREPLIED] src\u003d192.168.1.2 dst\u003d192.168.1.100 sport\u003d5001 dport\u003d57040\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "bfcaa50270e18f35220a11d46e98fc6232c24606",
      "tree": "dd06bf91db9aff84adf442b6c8aa6be58c923ec0",
      "parents": [
        "fecc1133b66af6e0cd49115a248f34bbb01f180a"
      ],
      "author": {
        "name": "Jozsef Kadlecsik",
        "email": "kadlec@blackhole.kfki.hu",
        "time": "Mon May 25 17:23:15 2009 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon May 25 17:23:15 2009 +0200"
      },
      "message": "netfilter: nf_ct_tcp: fix accepting invalid RST segments\n\nRobert L Mathews discovered that some clients send evil TCP RST segments,\nwhich are accepted by netfilter conntrack but discarded by the\ndestination. Thus the conntrack entry is destroyed but the destination\nretransmits data until timeout.\n\nThe same technique, i.e. sending properly crafted RST segments, can easily\nbe used to bypass connlimit/connbytes based restrictions (the sample\nscript written by Robert can be found in the netfilter mailing list\narchives).\n\nThe patch below adds a new flag and new field to struct ip_ct_tcp_state so\nthat checking RST segments can be made more strict and thus TCP conntrack\ncan catch the invalid ones: the RST segment is accepted only if its\nsequence number higher than or equal to the highest ack we seen from the\nother direction. (The last_ack field cannot be reused because it is used\nto catch resent packets.)\n\nSigned-off-by: Jozsef Kadlecsik \u003ckadlec@blackhole.kfki.hu\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    }
  ],
  "next": "e3804cbebb67887879102925961d41b503f7fbe3"
}
