)]}'
{
  "log": [
    {
      "commit": "0f0ca340e57bd7446855fefd07a64249acf81223",
      "tree": "9a3af0f86f8bcce9eb86a38bf4dd5f4a2c5da2d1",
      "parents": [
        "914804b95caa61c633431262044034ab05c78ba4"
      ],
      "author": {
        "name": "Giuseppe Cavallaro",
        "email": "peppe.cavallaro@st.com",
        "time": "Fri Nov 28 16:24:56 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 28 16:24:56 2008 -0800"
      },
      "message": "phy: power management support\n\nThis patch adds the power management support into the physical\nabstraction layer.\n\nSuspend and resume functions respectively turns on/off the bit 11\ninto the PHY Basic mode control register.\nGeneric PHY device starts supporting PM.\n\nIn order to support the wake-on LAN and avoid to put in power down\nthe PHY device, the MDIO is aware of what the Ethernet device wants to do.\n\nVoluntary, no CONFIG_PM defines were added into the sources.\nAlso generic suspend/resume functions are exported to allow\nother drivers use them (such as genphy_config_aneg etc.).\n\nWithin the phy_driver_register function, we need to remove the\nmemset. It overrides the device driver owner and it is not good.\n\nSigned-off-by: Giuseppe Cavallaro \u003cpeppe.cavallaro@st.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed77a89c30fa03dcb234a84ddea710b3fb7b62da",
      "tree": "69f3e2c2bbf2fdd4f742e891441f01307d1d1f49",
      "parents": [
        "475ad8e2172d7f8b73af5532a8dad265b51339c2",
        "d6e8cc6cc7ac77b0f9118f78c453a2e834e62709"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 28 02:19:15 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 28 02:19:15 2008 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6\n\nConflicts:\n\n\tnet/netfilter/nf_conntrack_netlink.c\n"
    },
    {
      "commit": "475ad8e2172d7f8b73af5532a8dad265b51339c2",
      "tree": "f99d99118e8e8f4a514de9d14140474359438bc4",
      "parents": [
        "feea6a574d432e08cebf66d993a6ed1f310e0e5d"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu Nov 27 23:04:13 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 27 23:04:13 2008 -0800"
      },
      "message": "decnet: compile fix for removal of byteorder wrapper\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c4106aa88a440430d387e022f2ad6dc1e0d52e98",
      "tree": "09064e6e767301ca28357ed5125e99123f5beaca",
      "parents": [
        "5b9ab2ec04ec1e1e53939768805612ac191d7ba2"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu Nov 27 00:12:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 27 00:12:47 2008 -0800"
      },
      "message": "decnet: remove private wrappers of endian helpers\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nReviewed-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5b9ab2ec04ec1e1e53939768805612ac191d7ba2",
      "tree": "22d29905c148d2d743b3eccb585fbe60fb91e25a",
      "parents": [
        "851fd7bd88524bb4e20f3def3127cd9167d6d0cf",
        "3ec192559033ed457f0d7856838654c100fc659f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 26 23:48:40 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 26 23:48:40 2008 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/hp-plus.c\n\tdrivers/net/wireless/ath5k/base.c\n\tdrivers/net/wireless/ath9k/recv.c\n\tnet/wireless/reg.c\n"
    },
    {
      "commit": "b5ddedc9cc01b1d86015af08c5f1694191804530",
      "tree": "db08f24da9ef4dcec0976ee4de4d77e5e596057e",
      "parents": [
        "244e6c2d0724bc4908a1995804704bdee3b31528",
        "b235507cc5e552b9e75678d596727249e8fba01b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 26 15:28:40 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 26 15:28:40 2008 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6\n"
    },
    {
      "commit": "244e6c2d0724bc4908a1995804704bdee3b31528",
      "tree": "e208a765607733401302bf8582b37d1adab63c08",
      "parents": [
        "3d4cd60ed0533d3b33832e298530c7b021da982b"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Wed Nov 26 15:24:32 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 26 15:24:32 2008 -0800"
      },
      "message": "pkt_sched: gen_estimator: Optimize gen_estimator_active()\n\nSince all other gen_estimator functions use bstats and rate_est params\ntogether, and searching for them is optimized now, let\u0027s use this also\nin gen_estimator_active(). The return type of gen_estimator_active()\nis changed to bool, and gen_find_node() parameters to const, btw.\n\nIn tcf_act_police_locate() a check for ACT_P_CREATED is added before\ncalling gen_estimator_active().\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bf8c1ac6d81ba8c0e4dc2215f84f5e2a3c8227e8",
      "tree": "9ec81c268e2e16585a4b604237a36fc2728805fb",
      "parents": [
        "39d1ffee57c7ce02c90ec8e9272df8aa8ddf600f"
      ],
      "author": {
        "name": "Jouni Malinen",
        "email": "j@w1.fi",
        "time": "Sat Nov 22 22:00:31 2008 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 26 09:47:48 2008 -0500"
      },
      "message": "nl80211: Change max TX power to be in mBm instead of dBm\n\nIn order to be consistent with NL80211_ATTR_POWER_RULE_MAX_EIRP,\nchange NL80211_FREQUENCY_ATTR_MAX_TX_POWER to use mBm and U32 instead\nof dBm and U8. This is a userspace interface change, but the previous\nversion had not yet been pushed upstream and there are no userspace\nprograms using this yet, so there is justification to get this change in\nas long as it goes in before the previous version gets out.\n\nSigned-off-by: Jouni Malinen \u003cj@w1.fi\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f80b5e99c7dac5a9a0d72496cec5075a12cd1476",
      "tree": "493b11de9639655fbf2a9431f9def759ab3f6a27",
      "parents": [
        "5925d976fbe99859d636e7075e5304625503c5fe"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Fri Nov 21 20:40:09 2008 -0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 26 09:47:43 2008 -0500"
      },
      "message": "rfkill: preserve state across suspend\n\nThe rfkill class API requires that the driver connected to a class\ncall rfkill_force_state() on resume to update the real state of the\nrfkill controller, OR that it provides a get_state() hook.\n\nThis means there is potentially a hidden call in the resume code flow\nthat changes rfkill-\u003estate (i.e. rfkill_force_state()), so the\nprevious state of the transmitter was being lost.\n\nThe simplest and most future-proof way to fix this is to explicitly\nstore the pre-sleep state on the rfkill structure, and restore from\nthat on resume.\n\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nAcked-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nCc: Matthew Garrett \u003cmjg59@srcf.ucam.org\u003e\nCc: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e2f367f269fe19375f10e63efe0f2a6d3ddef8e6",
      "tree": "74cd1d3d89a9607159808a064c59684c7a962c45",
      "parents": [
        "1048643ea94d742bd409f343e284af430656fd6c"
      ],
      "author": {
        "name": "Jouni Malinen",
        "email": "j@w1.fi",
        "time": "Fri Nov 21 19:01:30 2008 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 26 09:47:41 2008 -0500"
      },
      "message": "nl80211: Report max TX power in NL80211_BAND_ATTR_FREQS\n\nThis is useful information to provide for userspace (e.g., hostapd needs\nthis to generate Country IE).\n\nSigned-off-by: Jouni Malinen \u003cjouni.malinen@atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "dd24c00191d5e4a1ae896aafe33c6b8095ab4bd1",
      "tree": "e955c09e0b288e50c706b6ee409229d5a930c80c",
      "parents": [
        "1748376b6626acf59c24e9592ac67b3fe2a0e026"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Nov 25 21:17:14 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 21:17:14 2008 -0800"
      },
      "message": "net: Use a percpu_counter for orphan_count\n\nInstead of using one atomic_t per protocol, use a percpu_counter\nfor \"orphan_count\", to reduce cache line contention on\nheavy duty network servers. \n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1748376b6626acf59c24e9592ac67b3fe2a0e026",
      "tree": "65a28205daf1ca92e31389440764fc407365014e",
      "parents": [
        "c1b56878fb68e9c14070939ea4537ad4db79ffae"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Nov 25 21:16:35 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 21:16:35 2008 -0800"
      },
      "message": "net: Use a percpu_counter for sockets_allocated\n\nInstead of using one atomic_t per protocol, use a percpu_counter\nfor \"sockets_allocated\", to reduce cache line contention on\nheavy duty network servers. \n\nNote : We revert commit (248969ae31e1b3276fc4399d67ce29a5d81e6fd9\nnet: af_unix can make unix_nr_socks visbile in /proc),\nsince it is not anymore used after sock_prot_inuse_add() addition\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1b56878fb68e9c14070939ea4537ad4db79ffae",
      "tree": "589f890f81e075380493905509244a0970d942f8",
      "parents": [
        "71bcb09a57894fa35591ce93dd972065eeecb63a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Nov 25 21:14:06 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 21:14:06 2008 -0800"
      },
      "message": "tc: policing requires a rate estimator\n\nFound that while trying average rate policing, it was possible to\nrequest average rate policing without a rate estimator. This results\nin no policing which is harmless but incorrect.\n\nSince policing could be setup in two steps, need to check\nin the kernel.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b27aeadb5948d400df83db4d29590fb9862ba49d",
      "tree": "f76cc43150164facbb890e4d5c619a99fe6ce303",
      "parents": [
        "c68cd1a01ba56995d85a4a62b195b2b3f6415c64"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 18:00:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 18:00:48 2008 -0800"
      },
      "message": "netns xfrm: per-netns sysctls\n\nMake\n\tnet.core.xfrm_aevent_etime\n\tnet.core.xfrm_acq_expires\n\tnet.core.xfrm_aevent_rseqth\n\tnet.core.xfrm_larval_drop\n\nsysctls per-netns.\n\nFor that make net_core_path[] global, register it to prevent two\n/proc/net/core antries and change initcall position -- xfrm_init() is called\nfrom fs_initcall, so this one should be fs_initcall at least.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c68cd1a01ba56995d85a4a62b195b2b3f6415c64",
      "tree": "69351005622aced7acf9085fa5c54134419286ba",
      "parents": [
        "59c9940ed0ef026673cac52f2eaed77af7d486da"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 18:00:14 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 18:00:14 2008 -0800"
      },
      "message": "netns xfrm: /proc/net/xfrm_stat in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "59c9940ed0ef026673cac52f2eaed77af7d486da",
      "tree": "d7d4e38e693178f16000eaa5ae03f415f3197f7a",
      "parents": [
        "4fb236bac9fc7d51e2267866de6d4c30e549d2f8"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:59:52 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:59:52 2008 -0800"
      },
      "message": "netns xfrm: per-netns MIBs\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fbda33b2b85941c1ae3a0d89522dec5c1b1bd98c",
      "tree": "f35036a6faf4fa549e45ff2b0407344e17cf9455",
      "parents": [
        "c5b3cf46eabe6e7459125fc6e2033b4222665017"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:56:49 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:56:49 2008 -0800"
      },
      "message": "netns xfrm: -\u003eget_saddr in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c5b3cf46eabe6e7459125fc6e2033b4222665017",
      "tree": "a968ad567906d7b45270b9e91d534493f8a1a38d",
      "parents": [
        "db983c1144884cab10d6397532f4bf05eb0c01d2"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:51:25 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:51:25 2008 -0800"
      },
      "message": "netns xfrm: -\u003edst_lookup in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "db983c1144884cab10d6397532f4bf05eb0c01d2",
      "tree": "ebb86abdaeb916191424407881d52635019502cf",
      "parents": [
        "7067802e262457a9737521e5669b622028b2283a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:51:01 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:51:01 2008 -0800"
      },
      "message": "netns xfrm: KM reporting in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7067802e262457a9737521e5669b622028b2283a",
      "tree": "f6f94b1429700979cb1407fc1f96de487f6bf085",
      "parents": [
        "fc34acd36eecdec95171b98ef2516e3d4daa5c41"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:50:36 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:50:36 2008 -0800"
      },
      "message": "netns xfrm: pass netns with KM notifications\n\nSA and SPD flush are executed with NULL SA and SPD respectively, for\nthese cases pass netns explicitly from userspace socket.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a6483b790f8efcd8db190c1c0ff93f9d9efe919a",
      "tree": "e05ba1d3e7014409a69d878bf9f24c5eb93365e4",
      "parents": [
        "bd235e3cfff617ff91677da553714051866ba55f"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:38:20 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:38:20 2008 -0800"
      },
      "message": "netns xfrm: per-netns NETLINK_XFRM socket\n\nStub senders to init_net\u0027s one temporarily.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ddcfd79680c1dc74eb5f24aa70785c11bf7eec8f",
      "tree": "f1d762f6b1cf6bcec289fe558a26dcb4e37ffb29",
      "parents": [
        "3dd0b4997a1d4f3a3666e400cc75b0279ce96849"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:37:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:37:23 2008 -0800"
      },
      "message": "netns xfrm: dst garbage-collecting in netns\n\nPass netns pointer to struct xfrm_policy_afinfo::garbage_collect()\n\n\t[This needs more thoughts on what to do with dst_ops]\n\t[Currently stub to init_net]\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "99a66657b2f62ae8b2b1e6ffc6abed051e4561ca",
      "tree": "ce3d720da709565e427ad805ba8b50a4bbb2b5d3",
      "parents": [
        "f6e1e25d703c0a9ba1863384a16851dec52f8e3a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:36:13 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:36:13 2008 -0800"
      },
      "message": "netns xfrm: xfrm_route_forward() in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6e1e25d703c0a9ba1863384a16851dec52f8e3a",
      "tree": "cd89a1a4f3d4f6c54448d922347f4054ea6e04a0",
      "parents": [
        "52479b623d3d41df84c499325b6a8c7915413032"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:35:44 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:35:44 2008 -0800"
      },
      "message": "netns xfrm: xfrm_policy_check in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "52479b623d3d41df84c499325b6a8c7915413032",
      "tree": "196f303f296b53dc89a05954d9c03226a9b4158b",
      "parents": [
        "cdcbca7c1f1946758cfacb69bc1c7eeaccb11e2d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:35:18 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:35:18 2008 -0800"
      },
      "message": "netns xfrm: lookup in netns\n\nPass netns to xfrm_lookup()/__xfrm_lookup(). For that pass netns\nto flow_cache_lookup() and resolver callback.\n\nTake it from socket or netdevice. Stub DECnet to init_net.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cdcbca7c1f1946758cfacb69bc1c7eeaccb11e2d",
      "tree": "1ee0f5edf7fb9e50f7f70c680044be33d41a0d41",
      "parents": [
        "8d1211a6aaea43ea36151c17b0193eb763ff2d7e"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:34:49 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:34:49 2008 -0800"
      },
      "message": "netns xfrm: policy walking in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d1211a6aaea43ea36151c17b0193eb763ff2d7e",
      "tree": "8e58601a897ec0e2afb3b2b1df695560b0d76ed4",
      "parents": [
        "33ffbbd52c327225a3e28485c39dc5746d81be03"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:34:20 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:34:20 2008 -0800"
      },
      "message": "netns xfrm: finding policy in netns\n\nAdd netns parameter to xfrm_policy_bysel_ctx(), xfrm_policy_byidx().\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "33ffbbd52c327225a3e28485c39dc5746d81be03",
      "tree": "ae11b5bbc1651fa5bb53c6c9764128ad7a8a574a",
      "parents": [
        "1121994c803f4a4f471d617443ff2a09515725e7"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:33:32 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:33:32 2008 -0800"
      },
      "message": "netns xfrm: policy flushing in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "284fa7da300adcb700b44df2f64a536b434d4650",
      "tree": "382f31cff91d68085b03bd4df639fd7ad3c78051",
      "parents": [
        "5447c5e401c49aba0c36bb1066f2d25b152553b7"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:32:14 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:32:14 2008 -0800"
      },
      "message": "netns xfrm: state walking in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5447c5e401c49aba0c36bb1066f2d25b152553b7",
      "tree": "5a5b4e0736368a70a266bd04075d174310aa5f80",
      "parents": [
        "12604d8aaa38ac4e24299c9803fefdb301a16421"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:31:51 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:31:51 2008 -0800"
      },
      "message": "netns xfrm: finding states in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "221df1ed33c9284fc7a6f6e47ca7f8d5f3665d43",
      "tree": "1961ab9f9061b595e10449a24e7275d91f422de2",
      "parents": [
        "0e6024519b4da2d9413b97be1de8122d5709ccc1"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:30:50 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:30:50 2008 -0800"
      },
      "message": "netns xfrm: state lookup in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0e6024519b4da2d9413b97be1de8122d5709ccc1",
      "tree": "169bb5b6b763dbb63ccb23decd36441daa8398ca",
      "parents": [
        "98806f75ba2afc716e4d2f915d3ac7687546f9c0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:30:18 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:30:18 2008 -0800"
      },
      "message": "netns xfrm: state flush in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "66caf628c3b634c57b14a1a104dcd57e4fab2e3b",
      "tree": "d5a967f7c22e55208bc536c540efb85f26b9b483",
      "parents": [
        "dc2caba7b321289e7d02e63d7216961ccecfa103"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:28:57 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:28:57 2008 -0800"
      },
      "message": "netns xfrm: per-netns policy hash resizing work\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dc2caba7b321289e7d02e63d7216961ccecfa103",
      "tree": "639c3da4e2a2b35af3b4dfe980994ce7f9a27c0e",
      "parents": [
        "a35f6c5de32664d82c072a7e2c7d5c5234de4158"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:24:15 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:24:15 2008 -0800"
      },
      "message": "netns xfrm: per-netns policy counts\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a35f6c5de32664d82c072a7e2c7d5c5234de4158",
      "tree": "4eae7591e4bacb4ce4700eae2399c5622f4f4ffa",
      "parents": [
        "8b18f8eaf9207d53ba3e69f2b98d7290f4dec227"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:23:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:23:48 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_policy_bydst hash\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8b18f8eaf9207d53ba3e69f2b98d7290f4dec227",
      "tree": "b4f323ac9aa6f1956c3ad4398a2230fc7a01d3e4",
      "parents": [
        "8100bea7d619e8496ad8e545d1b41f536e076cd5"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:23:26 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:23:26 2008 -0800"
      },
      "message": "netns xfrm: per-netns inexact policies\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8100bea7d619e8496ad8e545d1b41f536e076cd5",
      "tree": "f0f6163bcfec148cb32941bea908737486896bc0",
      "parents": [
        "93b851c1c93c7d5cd8d94cd3f3a268b2d5460e9e"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:22:58 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:22:58 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_policy_byidx hashmask\n\nPer-netns hashes are independently resizeable.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "93b851c1c93c7d5cd8d94cd3f3a268b2d5460e9e",
      "tree": "b641247bb4ca596de9c19ef6a785256902fc17b3",
      "parents": [
        "adfcf0b27e87d16a6a8c364daa724653d4d8930b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:22:35 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:22:35 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_policy_byidx hash\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "adfcf0b27e87d16a6a8c364daa724653d4d8930b",
      "tree": "568da73362373cf293e94eceddbfc4bebe43d2bb",
      "parents": [
        "0331b1f383e1fa4049f8e75cafeea8f006171c64"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:22:11 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:22:11 2008 -0800"
      },
      "message": "netns xfrm: per-netns policy list\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0331b1f383e1fa4049f8e75cafeea8f006171c64",
      "tree": "69409ab7c17e1527ed063bb4f2eda440e2cb4ea2",
      "parents": [
        "50a30657fd7ee77a94a6bf0ad86eba7c37c3032e"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:21:45 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:21:45 2008 -0800"
      },
      "message": "netns xfrm: add struct xfrm_policy::xp_net\n\nAgain, to avoid complications with passing netns when not necessary.\nAgain, -\u003exp_net is set-once field, once set it never changes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "50a30657fd7ee77a94a6bf0ad86eba7c37c3032e",
      "tree": "7eb9165881b9082588eb2c373e9ed2ebc013321e",
      "parents": [
        "c78371441c0d957f54c9f8a35b3ee5a378d14808"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:21:01 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:21:01 2008 -0800"
      },
      "message": "netns xfrm: per-netns km_waitq\n\nDisallow spurious wakeups in __xfrm_lookup().\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c78371441c0d957f54c9f8a35b3ee5a378d14808",
      "tree": "660b55bc3d85aa04a72bbff6c7d357f82dc5494d",
      "parents": [
        "b8a0ae20b0eecd4b86a113d2abe2fa5a582b30a6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:20:36 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:20:36 2008 -0800"
      },
      "message": "netns xfrm: per-netns state GC work\n\nState GC is per-netns, and this is part of it.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b8a0ae20b0eecd4b86a113d2abe2fa5a582b30a6",
      "tree": "7425a504250c79c86c69293772a4a4271ed74237",
      "parents": [
        "630827338585022b851ec0a6335df8e436c900e4"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:20:11 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:20:11 2008 -0800"
      },
      "message": "netns xfrm: per-netns state GC list\n\nkm_waitq is going to be made per-netns to disallow spurious wakeups\nin __xfrm_lookup().\n\nTo not wakeup after every garbage-collected xfrm_state (which potentially\ncan be from different netns) make state GC list per-netns.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "630827338585022b851ec0a6335df8e436c900e4",
      "tree": "d40fcd9a94157171f14b481e7571ae255c6aab8f",
      "parents": [
        "0bf7c5b019518d3fe9cb96b9c97bf44d251472c3"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:19:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:19:07 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_hash_work\n\nAll of this is implicit passing which netns\u0027s hashes should be resized.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0bf7c5b019518d3fe9cb96b9c97bf44d251472c3",
      "tree": "9deba01a0f6a5e3bbe88f568be2d984e08254af3",
      "parents": [
        "529983ecabeae3d8e61c9e27079154b1b8544dcd"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:18:39 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:18:39 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_state counts\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "529983ecabeae3d8e61c9e27079154b1b8544dcd",
      "tree": "eb440806ba098ed3abf629bcb57c53e5a61e7b17",
      "parents": [
        "b754a4fd8f58d245c9b5e92914cce09c4309cb67"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:18:12 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:18:12 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_state_hmask\n\nSince hashtables are per-netns, they can be independently resized.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b754a4fd8f58d245c9b5e92914cce09c4309cb67",
      "tree": "b4b98f60c8be664723106a6ef91cdab669c29657",
      "parents": [
        "d320bbb306f2085892bc958781e8fcaf5d491589"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:17:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:17:47 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_state_byspi hash\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d320bbb306f2085892bc958781e8fcaf5d491589",
      "tree": "b86290122569b7201be6df4632eeca4fd4483ef9",
      "parents": [
        "73d189dce486cd6693fa29169b1aac0872efbcea"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:17:24 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:17:24 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_state_bysrc hash\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "73d189dce486cd6693fa29169b1aac0872efbcea",
      "tree": "1c82e87feef2d99d3644f98b66bc90006259d86e",
      "parents": [
        "9d4139c76905833afcb77fe8ccc17f302a0eb9ab"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:16:58 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:16:58 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_state_bydst hash\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d4139c76905833afcb77fe8ccc17f302a0eb9ab",
      "tree": "40cb6b05eeffd0478f6d767effaa5d346aa3df82",
      "parents": [
        "673c09be457bb23aa0eaaa79804cbb342210d195"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:16:11 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:16:11 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_state_all list\n\nThis is done to get\na) simple \"something leaked\" check\nb) cover possible DoSes when other netns puts many, many xfrm_states\n   onto a list.\nc) not miss \"alien xfrm_state\" check in some of list iterators in future.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "673c09be457bb23aa0eaaa79804cbb342210d195",
      "tree": "9948d1859bbcd07316f5cea239b86845d6061570",
      "parents": [
        "d62ddc21b674b5ac1466091ff3fbf7baa53bc92c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:15:16 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:15:16 2008 -0800"
      },
      "message": "netns xfrm: add struct xfrm_state::xs_net\n\nTo avoid unnecessary complications with passing netns around.\n\n* set once, very early after allocating\n* once set, never changes\n\nFor a while create every xfrm_state in init_net.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d62ddc21b674b5ac1466091ff3fbf7baa53bc92c",
      "tree": "13e57abe023b5258b168e7f9108015a78493e481",
      "parents": [
        "c95839693d2a6612af7f75ad877012eba2f69757"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:14:31 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:14:31 2008 -0800"
      },
      "message": "netns xfrm: add netns boilerplate\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8eecaba900e89643029fd2c253ad8ebb60761165",
      "tree": "0b26268a6e0e97e9e859c25d2367cec0bff837f1",
      "parents": [
        "2f9889a20cd2854bc6305198255c617b0b4eb719"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Tue Nov 25 13:45:29 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 13:45:29 2008 -0800"
      },
      "message": "tcp: tcp_limit_reno_sacked can become static\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "14b9815af3f4fe0e171ee0c4325c31d2a2c1570b",
      "tree": "4666e3bac9367e0b3cd07d6237de44bcc27274df",
      "parents": [
        "3f2355cb9111ac04e7ae06a4d7044da2ae813863"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@atheros.com",
        "time": "Wed Nov 12 14:22:03 2008 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 25 16:41:27 2008 -0500"
      },
      "message": "cfg80211: add support for custom firmware regulatory solutions\n\nThis adds API to cfg80211 to allow wireless drivers to inform\nus if their firmware can handle regulatory considerations *and*\nthey cannot map these regulatory domains to an ISO / IEC 3166\nalpha2. In these cases we skip the first regulatory hint instead\nof expecting the driver to build their own regulatory structure,\nproviding us with an alpha2, or using the reg_notifier().\n\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nAcked-by: Zhu Yi \u003cyi.zhu@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3f2355cb9111ac04e7ae06a4d7044da2ae813863",
      "tree": "11f5594b7d48281a12a2116ad7af1d20d5947455",
      "parents": [
        "88dc1c3f7f9058cd5ceae1e4b53453484c7b0364"
      ],
      "author": {
        "name": "Luis R. Rodriguez",
        "email": "lrodriguez@atheros.com",
        "time": "Wed Nov 12 14:22:02 2008 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 25 16:41:26 2008 -0500"
      },
      "message": "cfg80211/mac80211: Add 802.11d support\n\nThis adds country IE parsing to mac80211 and enables its usage\nwithin the new regulatory infrastructure in cfg80211. We parse\nthe country IEs only on management beacons for the BSSID you are\nassociated to and disregard the IEs when the country and environment\n(indoor, outdoor, any) matches the already processed country IE.\n\nTo avoid following misinformed or outdated APs we build and use\na regulatory domain out of the intersection between what the AP\nprovides us on the country IE and what CRDA is aware is allowed\non the same country.\n\nA secondary device is allowed to follow only the same country IE\nas it make no sense for two devices on a system to be in two\ndifferent countries.\n\nIn the case the AP is using country IEs for an incorrect country\nthe user may help compliance further by setting the regulatory\ndomain before or after the IE is parsed and in that case another\nintersection will be performed.\n\nCONFIG_WIRELESS_OLD_REGULATORY is supported but requires CRDA\npresent.\n\nSigned-off-by: Luis R. Rodriguez \u003clrodriguez@atheros.com\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "65f233fb1669e6c990cd1d7fd308ac7dc66dc207",
      "tree": "85cd37f374d21873bc134952f2de4d20100296e6",
      "parents": [
        "9f40ac713c49fb6ca655550b620edc85c445d743"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 18:20:13 2008 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Nov 25 18:20:13 2008 +0100"
      },
      "message": "netfilter: fix warning in net/netfilter/nf_conntrack_proto_tcp.c\n\nfix this warning:\n\n  net/netfilter/nf_conntrack_proto_tcp.c: In function \\u2018tcp_in_window\\u2019:\n  net/netfilter/nf_conntrack_proto_tcp.c:491: warning: unused variable \\u2018net\\u2019\n  net/netfilter/nf_conntrack_proto_tcp.c: In function \\u2018tcp_packet\\u2019:\n  net/netfilter/nf_conntrack_proto_tcp.c:812: warning: unused variable \\u2018net\\u2019\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "7a6b6f515f77d1c62a2f383b6dce18cb0af0cf4f",
      "tree": "eed74f9344c3f65beb5386b93eca05526be8a914",
      "parents": [
        "411c41eea58bd3500cf897e2c27dd5330935a3a8"
      ],
      "author": {
        "name": "Jeff Kirsher",
        "email": "jeffrey.t.kirsher@intel.com",
        "time": "Tue Nov 25 01:02:08 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 01:02:08 2008 -0800"
      },
      "message": "DCB: fix kconfig option\n\nSince the netlink option for DCB is necessary to actually be useful,\nsimplified the Kconfig option.  In addition, added useful help text for the\nKconfig option.\n\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "47fd5b8373ecc6bf5473e4139b62b06425448252",
      "tree": "6ff48ec3ba5ccf149109bc990ff1ec90cde8e14f",
      "parents": [
        "0ace285605314c54339710484b54814945a60df8"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Nov 25 00:20:43 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 00:20:43 2008 -0800"
      },
      "message": "netdev: add HAVE_NET_DEVICE_OPS\n\nAs a concession to vendors who have to deal with one source for different\nkernel versions, add a HAVE_NET_DEVICE_OPS so they don\u0027t end up hard\ncoding ifdef against kernel version.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "111cc8b913b42ef07793648b1699288332f273e1",
      "tree": "f74fb48630319113247b5ee0c660b24f2af160d9",
      "parents": [
        "92ee76b6d99bfcdab6162816c9025541ef7248eb"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Nov 24 21:27:22 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 21:27:22 2008 -0800"
      },
      "message": "tcp: add some mibs to track collapsing\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "832d11c5cd076abc0aa1eaf7be96c81d1a59ce41",
      "tree": "95b22ad16d1ff414cab39578ed8c927c2ce08723",
      "parents": [
        "f58b22fd3c16444edc393a217a74208f1894b601"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Nov 24 21:20:15 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 21:20:15 2008 -0800"
      },
      "message": "tcp: Try to restore large SKBs while SACK processing\n\nDuring SACK processing, most of the benefits of TSO are eaten by\nthe SACK blocks that one-by-one fragment SKBs to MSS sized chunks.\nThen we\u0027re in problems when cleanup work for them has to be done\nwhen a large cumulative ACK comes. Try to return back to pre-split\nstate already while more and more SACK info gets discovered by\ncombining newly discovered SACK areas with the previous skb if\nthat\u0027s SACKed as well.\n\nThis approach has a number of benefits:\n\n1) The processing overhead is spread more equally over the RTT\n2) Write queue has less skbs to process (affect everything\n   which has to walk in the queue past the sacked areas)\n3) Write queue is consistent whole the time, so no other parts\n   of TCP has to be aware of this (this was not the case with\n   some other approach that was, well, quite intrusive all\n   around).\n4) Clean_rtx_queue can release most of the pages using single\n   put_page instead of previous PAGE_SIZE/mss+1 calls\n\nIn case a hole is fully filled by the new SACK block, we attempt\nto combine the next skb too which allows construction of skbs\nthat are even larger than what tso split them to and it handles\nhole per on every nth patterns that often occur during slow start\novershoot pretty nicely. Though this to be really useful also\na retransmission would have to get lost since cumulative ACKs\nadvance one hole at a time in the most typical case.\n\nTODO: handle upwards only merging. That should be rather easy\nwhen segment is fully sacked but I\u0027m leaving that as future\nwork item (it won\u0027t make very large difference anyway since\nthis current approach already covers quite a lot of normal\ncases).\n\nI was earlier thinking of some sophisticated way of tracking\ntimestamps of the first and the last segment but later on\nrealized that it won\u0027t be that necessary at all to store the\ntimestamp of the last segment. The cases that can occur are\nbasically either:\n  1) ambiguous \u003d\u003e no sensible measurement can be taken anyway\n  2) non-ambiguous is due to reordering \u003d\u003e having the timestamp\n     of the last segment there is just skewing things more off\n     than does some good since the ack got triggered by one of\n     the holes (besides some substle issues that would make\n     determining right hole/skb even harder problem). Anyway,\n     it has nothing to do with this change then.\n\nI choose to route some abnormal looking cases with goto noop,\nsome could be handled differently (eg., by stopping the\nwalking at that skb but again). In general, they either\nshouldn\u0027t happen at all or are rare enough to make no difference\nin practice.\n\nIn theory this change (as whole) could cause some macroscale\nregression (global) because of cache misses that are taken over\nthe round-trip time but it gets very likely better because of much\nless (local) cache misses per other write queue walkers and the\nbig recovery clearing cumulative ack.\n\nWorth to note that these benefits would be very easy to get also\nwithout TSO/GSO being on as long as the data is in pages so that\nwe can merge them. Currently I won\u0027t let that happen because\nDSACK splitting at fragment that would mess up pcounts due to\nsk_can_gso in tcp_set_skb_tso_segs. Once DSACKs fragments gets\navoided, we have some conditions that can be made less strict.\n\nTODO: I will probably have to convert the excessive pointer\npassing to struct sacktag_state... :-)\n\nMy testing revealed that considerable amount of skbs couldn\u0027t\nbe shifted because they were cloned (most likely still awaiting\ntx reclaim)...\n\n[The rest is considering future work instead since I got\nrepeatably EFAULT to tcpdump\u0027s recvfrom when I added\npskb_expand_head to deal with clones, so I separated that\ninto another, later patch]\n\n...To counter that, I gave up on the fifth advantage:\n\n5) When growing previous SACK block, less allocs for new skbs\n   are done, basically a new alloc is needed only when new hole\n   is detected and when the previous skb runs out of frags space\n\n...which now only happens of if reclaim is fast enough to dispose\nthe clone before the SACK block comes in (the window is RTT long),\notherwise we\u0027ll have to alloc some.\n\nWith clones being handled I got these numbers (will be somewhat\nworse without that), taken with fine-grained mibs:\n\n                  TCPSackShifted 398\n                   TCPSackMerged 877\n            TCPSackShiftFallback 320\n      TCPSACKCOLLAPSEFALLBACKGSO 0\n  TCPSACKCOLLAPSEFALLBACKSKBBITS 0\n  TCPSACKCOLLAPSEFALLBACKSKBDATA 0\n    TCPSACKCOLLAPSEFALLBACKBELOW 0\n    TCPSACKCOLLAPSEFALLBACKFIRST 1\n TCPSACKCOLLAPSEFALLBACKPREVBITS 318\n      TCPSACKCOLLAPSEFALLBACKMSS 1\n   TCPSACKCOLLAPSEFALLBACKNOHEAD 0\n    TCPSACKCOLLAPSEFALLBACKSHIFT 0\n          TCPSACKCOLLAPSENOOPSEQ 0\n  TCPSACKCOLLAPSENOOPSMALLPCOUNT 0\n     TCPSACKCOLLAPSENOOPSMALLLEN 0\n             TCPSACKCOLLAPSEHOLE 12\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e1aa680fa40e7492260a09cb57d94002245cc8fe",
      "tree": "67afc8d71c9de6f76036942cd442d628ae26a4f3",
      "parents": [
        "4a17fc3add594fcc1c778e93a95b6ecf47f630e5"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Nov 24 21:11:55 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 21:11:55 2008 -0800"
      },
      "message": "tcp: move tcp_simple_retransmit to tcp_input\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f79fca55f9a6fe54635ad32ddc8a38f92a94ec30",
      "tree": "15343dc8350f4e3f902c20c13b43a86e366f843f",
      "parents": [
        "b54ad409fd09a395b839fb81f300880d76861c0e"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Mon Nov 24 16:06:17 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 16:06:17 2008 -0800"
      },
      "message": "netfilter: xtables: add missing const qualifier to xt_tgchk_param\n\nWhen entryinfo was a standalone parameter to functions, it used to be\n\"const void *\". Put the const back in.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2e77d89b2fa8e3f8325b8ce7893ec3645f41aff5",
      "tree": "ae40aa75449f705bd166630f9bcb5f41373d8248",
      "parents": [
        "4db0acf3c0afbbbb2ae35a65f8896ca6655a47ec"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Mon Nov 24 15:52:46 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 15:52:46 2008 -0800"
      },
      "message": "net: avoid a pair of dst_hold()/dst_release() in ip_append_data()\n\nWe can reduce pressure on dst entry refcount that slowdown UDP transmit\npath on SMP machines. This pressure is visible on RTP servers when\ndelivering content to mediagateways, especially big ones, handling\nthousand of streams. Several cpus send UDP frames to the same\ndestination, hence use the same dst entry.\n\nThis patch makes ip_append_data() eventually steal the refcount its\ncallers had to take on the dst entry.\n\nThis doesnt avoid all refcounting, but still gives speedups on SMP,\non UDP/RAW transmit path\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1f87e235e6fb92c2968b52b9191de04f1aff8e77",
      "tree": "ab774d239c61b6c206ef07398828533cdd01915e",
      "parents": [
        "70eb1bfd52e97120eddf9b5aaabfe1ecdf4eb663"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Nov 23 23:24:32 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 23 23:24:32 2008 -0800"
      },
      "message": "eth: Declare an optimized compare_ether_addr_64bits() function\n\nLinus mentioned we could try to perform long word operations, even\non potentially unaligned addresses, on x86 at least. David mentioned\nthe HAVE_EFFICIENT_UNALIGNED_ACCESS test to handle this on all\narches that have efficient unailgned accesses.\n\nI tried this idea and got nice assembly on 32 bits:\n\n158:   33 82 38 01 00 00       xor    0x138(%edx),%eax\n15e:   33 8a 34 01 00 00       xor    0x134(%edx),%ecx\n164:   c1 e0 10                shl    $0x10,%eax\n167:   09 c1                   or     %eax,%ecx\n169:   74 0b                   je     176 \u003ceth_type_trans+0x87\u003e\n\nAnd very nice assembly on 64 bits of course (one xor, one shl)\n\nNice oprofile improvement in eth_type_trans(), 0.17 % instead of 0.41 %,\nexpected since we remove 8 instructions on a fast path.\n\nThis patch implements a compare_ether_addr_64bits() function, that\nuses the CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS ifdef to efficiently\nperform the 6 bytes comparison on all capable arches.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c25eb3bfb97294d0543a81230fbc237046b4b84c",
      "tree": "6c9deabfb12f4d31f280cfcfe7e7580a2089931c",
      "parents": [
        "8c862c23e2563e6aedfc6c4aa6827cadb83f2414"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Nov 23 17:22:55 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 23 17:22:55 2008 -0800"
      },
      "message": "net: Convert TCP/DCCP listening hash tables to use RCU\n\nThis is the last step to be able to perform full RCU lookups\nin __inet_lookup() : After established/timewait tables, we\nadd RCU lookups to listening hash table.\n\nThe only trick here is that a socket of a given type (TCP ipv4,\nTCP ipv6, ...) can now flight between two different tables\n(established and listening) during a RCU grace period, so we\nmust use different \u0027nulls\u0027 end-of-chain values for two tables.\n\nWe define a large value :\n\n#define LISTENING_NULLS_BASE (1U \u003c\u003c 29)\n\nSo that slots in listening table are guaranteed to have different\nend-of-chain values than slots in established table. A reader can\nstill detect it finished its lookup in the right chain.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b20a9c24d5c5d466d7e4a25c6f1bedbd2d16ad4f",
      "tree": "17789215657f693caf36e22d3e724cc1b1e07ba6",
      "parents": [
        "2c62ad7b56fa8e2658253c0256ef4c4de228a0b9"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Nov 23 16:02:31 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 23 16:02:31 2008 -0800"
      },
      "message": "dccp: Set per-connection CCIDs via socket options\n\nWith this patch, TX/RX CCIDs can now be changed on a per-connection\nbasis, which overrides the defaults set by the global sysctl variables\nfor TX/RX CCIDs.\n\nTo make full use of this facility, the remaining patches of this patch\nset are needed, which track dependencies and activate negotiated\nfeature values.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "72364706c3b7c09a658e356218a918c5f92dcad0",
      "tree": "3d03826adf0fdb2a049fa5af8018590883b533ad",
      "parents": [
        "e022c2f07ae52bfbd92faa273db0db2f34eb28e8"
      ],
      "author": {
        "name": "Krzysztof Hałasa",
        "email": "khc@pm.waw.pl",
        "time": "Thu Aug 14 19:18:17 2008 +0200"
      },
      "committer": {
        "name": "Krzysztof Hałasa",
        "email": "khc@pm.waw.pl",
        "time": "Sat Nov 22 02:49:48 2008 +0100"
      },
      "message": "WAN: syncppp.c is no longer used by any kernel code. Remove it.\n\nSigned-off-by: Krzysztof Hałasa \u003ckhc@pm.waw.pl\u003e\n"
    },
    {
      "commit": "6c0bce37ffc8f000a516fadf6dee84579c4c8f9b",
      "tree": "273af34d6f777b1ecb0fce7b2685e868064e6cf9",
      "parents": [
        "e243455d345ef62751723671bc2605a2f6032ceb",
        "a1eb5fe319beb9e181aa52c8adf75ad9aab56a89"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 21 17:05:11 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 21 17:05:11 2008 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6\n"
    },
    {
      "commit": "7e56b5d698707a9934833c47b24d78fb0bcaf764",
      "tree": "949d9320501fa64e3710acda83487d4c74e52247",
      "parents": [
        "33cf71cee14743185305c61625c4544885055733"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Nov 21 16:45:22 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 21 16:45:22 2008 -0800"
      },
      "message": "net: Fix memory leak in the proto_register function\n\nIf the slub allocator is used, kmem_cache_create() may merge two or more\nkmem_cache\u0027s into one but the cache name pointer is not updated and\nkmem_cache_name() is no longer guaranteed to return the pointer passed\nto the former function. This patch stores the kmalloc\u0027ed pointers in the\ncorresponding request_sock_ops and timewait_sock_ops structures.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2baf8a2daab65cdd3f20bfeb4676a2f6aff7c3bf",
      "tree": "957eb111fad4ce334ff8d49861a08d1fcf14e64a",
      "parents": [
        "f757fec4b0d45dfcb52f9a914a12225a6a0a3e05"
      ],
      "author": {
        "name": "Wang Chen",
        "email": "wangchen@cn.fujitsu.com",
        "time": "Fri Nov 21 16:34:18 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 21 16:34:18 2008 -0800"
      },
      "message": "netdevice hdlc: Convert directly reference of netdev-\u003epriv\n\nFor killing directly reference of netdev-\u003epriv, use netdev-\u003eml_priv to replace it.\nBecause the private pvc data comes from add_pvc() and can\u0027t be allocated in\nalloc_netdev().\n\nSigned-off-by: Wang Chen \u003cwangchen@cn.fujitsu.com\u003e\nAcked-by: Krzysztof Halasa \u003ckhc@pm.waw.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f757fec4b0d45dfcb52f9a914a12225a6a0a3e05",
      "tree": "d8fbf1095f723f8ad19014910a92a44ff2058c16",
      "parents": [
        "98aa9c80f1fee01e98dfdc484ab7316af45f8f17"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Nov 21 15:49:19 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 21 15:49:19 2008 -0800"
      },
      "message": "net: use net_eq() in INET_MATCH and INET_TW_MATCH\n\nWe can avoid some useless instructions if !CONFIG_NET_NS\n\nBecause of RCU, we use INET_MATCH or INET_TW_MATCH twice for the found\nsocket, so thats six instructions less per incoming TCP packet.\n\nYet another tbench speedup :)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a1eb5fe319beb9e181aa52c8adf75ad9aab56a89",
      "tree": "779aa91d24bd658b0e0e801462c49826c94f1cc7",
      "parents": [
        "3461fc12a423c09169c6bb350319808ca4ec4b86"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "roszenrami@gmail.com",
        "time": "Wed Nov 19 09:37:43 2008 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Nov 21 11:42:55 2008 -0500"
      },
      "message": "wireless: missing include in lib80211.h\n\nThis patch adds #include \u003clinux/timer.h\u003e in lib80211.h to avoid\nthese compilation erros.\n\n\u003e In file included from /work/src/wireless-testing/net/wireless/lib80211.c:24:\n\u003e /work/src/wireless-testing/include/net/lib80211.h:113: error: field\n\u003e \u0027crypt_deinit_timer\u0027 has incomplete type\n\u003e /work/src/wireless-testing/net/wireless/lib80211.c: In function\n\u003e \u0027lib80211_crypt_info_init\u0027:\n\u003e /work/src/wireless-testing/net/wireless/lib80211.c:83: error: implicit\n\u003e declaration of function \u0027setup_timer\u0027\n\u003e /work/src/wireless-testing/net/wireless/lib80211.c: In function\n\u003e \u0027lib80211_crypt_info_free\u0027:\n\u003e /work/src/wireless-testing/net/wireless/lib80211.c:95: error: implicit\n\u003e declaration of function \u0027del_timer_sync\u0027\n\u003e /work/src/wireless-testing/net/wireless/lib80211.c: In function\n\u003e \u0027lib80211_crypt_deinit_handler\u0027:\n\u003e /work/src/wireless-testing/net/wireless/lib80211.c:157: error:\n\u003e implicit declaration of function \u0027add_timer\u0027\n\u003e /work/src/wireless-testing/net/wireless/lib80211.c: In function\n\u003e \u0027lib80211_crypt_delayed_deinit\u0027:\n\u003e /work/src/wireless-testing/net/wireless/lib80211.c:182: error:\n\u003e implicit declaration of function \u0027timer_pending\u0027\n\u003e make[3]: *** [net/wireless/lib80211.o] Error 1\n\u003e make[2]: *** [net/wireless] Error 2\n\u003e make[1]: *** [net] Error 2\n\u003e make: *** [sub-make] Error 2\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "627271018df75c8861b9e75b39d5995842e6ec95",
      "tree": "9f77eecc9fa2093f0b114f00ee6356c1ececdb47",
      "parents": [
        "beb2a7f331361bfe81e71acdb0739eae570475a2"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 12 10:01:41 2008 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Nov 21 11:08:18 2008 -0500"
      },
      "message": "mac80211: add explicit padding in struct ieee80211_tx_info\n\nOtherwise, the BUILD_BUG_ON calls in ieee80211_tx_info_clear_status can\nfail on some architectures.\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "2ba4b32ecf748d5f45f298fc9677fa46d1dd9aff",
      "tree": "ebdf68be060014d9f5c799cf1cb54462bc896140",
      "parents": [
        "274bfb8dc5ffa16cb073801bebe76ab7f4e2e73d"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Nov 11 16:00:06 2008 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Nov 21 11:08:17 2008 -0500"
      },
      "message": "lib80211: consolidate crypt init routines\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "274bfb8dc5ffa16cb073801bebe76ab7f4e2e73d",
      "tree": "04cd3f6a062496911b56737daa6a0858b769ccd6",
      "parents": [
        "dfe1bafdbac1c7b48b636fb7ace799e78170e0d6"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Oct 29 11:35:05 2008 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Nov 21 11:08:17 2008 -0500"
      },
      "message": "lib80211: absorb crypto bits from net/ieee80211\n\nThese bits are shared already between ipw2x00 and hostap, and could\nprobably be shared both more cleanly and with other drivers.  This\ncommit simply relocates the code to lib80211 and adjusts the drivers\nappropriately.\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "0ed94eaaed618634f68197161203aac9f849471e",
      "tree": "daa650a6f9272f21c2dd5f3e6ed33fbd1a2e639c",
      "parents": [
        "e4e58cf8cc646d93de852f32f972448a95387c60"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri Nov 07 19:50:42 2008 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Nov 21 11:08:15 2008 -0500"
      },
      "message": "mac80211: remove more excess kernel-doc\n\nDelete kernel-doc struct descriptions for fields that don\u0027t exist:\n\nWarning(include/net/mac80211.h:1263): Excess struct/union/enum/typedef member \u0027conf_ht\u0027 description in \u0027ieee80211_ops\u0027\nWarning(net/mac80211/sta_info.h:309): Excess struct/union/enum/typedef member \u0027addr\u0027 description in \u0027sta_info\u0027\nWarning(net/mac80211/sta_info.h:309): Excess struct/union/enum/typedef member \u0027aid\u0027 description in \u0027sta_info\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\ncc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\ncc: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4821277f36e008b531728e359fbbedb229117f4b",
      "tree": "7e73197e8f5ae76133c84f8c6cd0bab3d97ad5f8",
      "parents": [
        "8b0162a3dc5c30e862b7a73da29e32de3170f5e4"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Mon Nov 03 21:05:01 2008 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Nov 21 11:06:05 2008 -0500"
      },
      "message": "mac80211: fix BUILD_BUG_ON() caused by misalignment on arm\n\nOn ARM alignment is done slightly different from other architectures.\nstruct ieee80211_tx_rate is aligned to word size, even though it only has 3\nsingle-byte members, which triggers the BUILD_BUG_ON in\nieee80211_tx_info_clear_status\n\nThis patch marks the struct ieee80211_tx_rate as packed, so that ARM\nbehaves like the other architectures.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "859ee3c43812051e21816c6d6d4cc04fb7ce9b2e",
      "tree": "ef3c3717038b5d4600065550f422fd8abf72de35",
      "parents": [
        "0eb3aa9bab20217fb42244ccdcb5bf8a002f504c"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Thu Nov 20 21:10:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 21:10:23 2008 -0800"
      },
      "message": "DCB: Add support for DCB BCN\n\nAdds an interface to configure the Backward Congestion Notification\n(BCN) feature.  In a BCN capabale network, congestion notifications\nfrom congested points out in the network can cause the end station\nlimit the rate of a given traffic flow.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0eb3aa9bab20217fb42244ccdcb5bf8a002f504c",
      "tree": "b7d5a846b674a4f26ce4c1aa3b90f72fe9ce83d0",
      "parents": [
        "33dbabc4a7f7bd72313c73a3c199f31f3900336f"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Thu Nov 20 21:09:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 21:09:23 2008 -0800"
      },
      "message": "DCB: Add interface to query the state of PFC feature.\n\nAdds a netlink interface for Data Center Bridging (DCB) to get and set\nthe enable state of the Priority Flow Control (PFC) feature.\nPrimarily, this is a way to turn off PFC in the driver while DCB\nremains enabled.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "33dbabc4a7f7bd72313c73a3c199f31f3900336f",
      "tree": "f56e24fec9369ca1d1ef12eb18e4000a09fb5c3e",
      "parents": [
        "46132188bf72e22ef097f16ed5c969ee8cea1e8b"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Thu Nov 20 21:08:19 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 21:08:19 2008 -0800"
      },
      "message": "DCB: Add interface to query # of TCs supported by device\n\nAdds interface for Data Center Bridging (DCB) to query (and set if\nsupported) the number of traffic classes currently supported by the\ndevice for the two (DCB) features: priority groups (PG) and priority\nflow control (PFC).\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "46132188bf72e22ef097f16ed5c969ee8cea1e8b",
      "tree": "e776ed8011b8314ff08abf4f3467c07d037fec4f",
      "parents": [
        "2f90b8657ec942d1880f720e0177ee71df7c8e3c"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Thu Nov 20 21:05:08 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 21:05:08 2008 -0800"
      },
      "message": "DCB: Add interface to query for the DCB capabilities of an device.\n\nAdds to the netlink interface for Data Center Bridging (DCB), allowing\nthe DCB capabilities supported by a device to be queried.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2f90b8657ec942d1880f720e0177ee71df7c8e3c",
      "tree": "844114b22c548fedbab67e53b09b2efcf170563a",
      "parents": [
        "9db66bdcc83749affe61c61eb8ff3cf08f42afec"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Thu Nov 20 20:52:10 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 20:52:10 2008 -0800"
      },
      "message": "ixgbe: this patch adds support for DCB to the kernel and ixgbe driver\n\nThis adds support for Data Center Bridging (DCB) features in the ixgbe\ndriver and adds an rtnetlink interface for configuring DCB to the\nkernel.  The DCB feature support included are Priority Grouping (PG) -\nwhich allows bandwidth guarantees to be allocated to groups to traffic\nbased on the 802.1q priority, and Priority Based Flow Control (PFC) -\nwhich introduces a new MAC control PAUSE frame which works at\ngranularity of the 802.1p priority instead of the link (IEEE 802.3x).\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9db66bdcc83749affe61c61eb8ff3cf08f42afec",
      "tree": "81bb20e4f569d3b44731498428277db9d77fa7a9",
      "parents": [
        "b8c26a33c8b6f0a150e9cb38ed80b890be55395c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Nov 20 20:39:09 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 20:39:09 2008 -0800"
      },
      "message": "net: convert TCP/DCCP ehash rwlocks to spinlocks\n\nNow TCP \u0026 DCCP use RCU lookups, we can convert ehash rwlocks to spinlocks.\n\n/proc/net/tcp and other seq_file \u0027readers\u0027 can safely be converted to \u0027writers\u0027.\n\nThis should speedup writers, since spin_lock()/spin_unlock()\nonly use one atomic operation instead of two for write_lock()/write_unlock()\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "748ff68fad9600593c6abe47856037602bd5d133",
      "tree": "96bc5e90ba9f66932562a7061f7403d17b316b61",
      "parents": [
        "fd8f4997e35f2c9a8bfc4d797ec09a6ae7858e04"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Nov 20 20:32:15 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 20:32:15 2008 -0800"
      },
      "message": "hippi: convert driver to net_device_ops\n\nConvert the HIPPI infrastructure for use with net_device_ops.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "145186a39570244aead77dc2efc559e5cac90548",
      "tree": "fbb9797afeccbc27578d43fcc51737e273f10027",
      "parents": [
        "007c3838d9fdcc8fdaea87e4879ec3759f016ed5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Nov 20 20:29:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 20:29:48 2008 -0800"
      },
      "message": "fddi: convert to new network device ops\n\nSimilar to ethernet. Convert infrastructure and the one lone FDDI\ndriver (for the one lone user of that hardware??). Compile tested only.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "008298231abbeb91bc7be9e8b078607b816d1a4a",
      "tree": "8cb0c17720086ef97c614b96241f06aa63ce8511",
      "parents": [
        "6ab33d51713d6d60c7677c0d020910a8cb37e513"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Nov 20 20:14:53 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 20:14:53 2008 -0800"
      },
      "message": "netdev: add more functions to netdevice ops\n\nThis patch moves neigh_setup and hard_start_xmit into the network device ops\nstructure. For bisection, fix all the previously converted drivers as well.\nBonding driver took the biggest hit on this.\n\nAdded a prefetch of the hard_start_xmit in the fast path to try and reduce\nany impact this would have.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ab33d51713d6d60c7677c0d020910a8cb37e513",
      "tree": "546c2ff099b2757e75cf34ddace874f1220f740e",
      "parents": [
        "7be6065b39c3f1cfa796667eac1a2170465acc91",
        "13d428afc007fcfcd6deeb215618f54cf9c0cae6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 16:44:00 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 16:44:00 2008 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/ixgbe/ixgbe_main.c\n\tinclude/net/mac80211.h\n\tnet/phonet/af_phonet.c\n"
    },
    {
      "commit": "4dd61d92d7204788b93b064a679c9068fc5b8a5f",
      "tree": "90dc522b71d06a336773f919def0fd99d59156c9",
      "parents": [
        "95763dd52b4b9b3578d3428001ece1e11b016ffc",
        "5ece6c2ddd6f7da9e95dc325c742c0f5afbcecbe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 20 13:12:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 20 13:12:14 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (23 commits)\n  net: fix tiny output corruption of /proc/net/snmp6\n  atl2: don\u0027t request irq on resume if netif running\n  ipv6: use seq_release_private for ip6mr.c /proc entries\n  pkt_sched: fix missing check for packet overrun in qdisc_dump_stab()\n  smc911x: Fix printf format typo in smc911x driver.\n  asix: Fix asix-based cards connecting to 10/100Mbs LAN.\n  mv643xx_eth: fix recycle check bound\n  mv643xx_eth: fix the order of mdiobus_{unregister, free}() calls\n  sh: sh_eth: Update to change of mii_bus\n  TPROXY: supply a struct flowi-\u003eflags argument in inet_sk_rebuild_header()\n  TPROXY: fill struct flowi-\u003eflags in udp_sendmsg()\n  net: ipg.c fix bracing on endian swapping\n  phylib: Fix auto-negotiation restart avoidance\n  net: jme.c rxdesc.flags is __le16, other missing endian swaps\n  phylib: fix phy name example in documentation\n  net: Do not fire linkwatch events until the device is registered.\n  phonet: fix compilation with gcc-3.4\n  ixgbe: fix compilation with gcc-3.4\n  pktgen: fix multiple queue warning\n  net: fix ip_mr_init() error path\n  ...\n"
    },
    {
      "commit": "018a7bf1e55000dd792194238c9043918d24d3dd",
      "tree": "0e7350bd020c7bc962373643c91cafbade8c4c48",
      "parents": [
        "56bc0f9603e45cf13db51e554e1541e289a7f8e9"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Thu Nov 20 15:59:56 2008 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Nov 20 15:59:56 2008 +0100"
      },
      "message": "netfilter: ip{,6}t_policy.h should include xp_policy.h\n\nIt seems that all of the include/netfilter_{ipv4,ipv6}/{ipt,ip6t}_*.h which\nshare constants include the corresponding include/netfilter/xp_*.h files.\nNeither ipt_policy.h not ip6t_policy.h do.  Make these consistant with\nthe norm.\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "13d2a1d2b032de08d7dcab6a1edcd47802681f96",
      "tree": "a60915e015f1dc7a9b5681ef5c5135c59167edb3",
      "parents": [
        "0c19b0adb8dd33dbd10ff48e41971231c486855c"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Nov 20 04:10:00 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 04:10:00 2008 -0800"
      },
      "message": "pkt_sched: add DRR scheduler\n\nAdd classful DRR scheduler as a more flexible replacement for SFQ.\n\nThe main difference to the algorithm described in \"Efficient Fair Queueing\nusing Deficit Round Robin\" is that this implementation doesn\u0027t drop packets\nfrom the longest queue on overrun because its classful and limits are\nhandled by each individual child qdisc.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c19b0adb8dd33dbd10ff48e41971231c486855c",
      "tree": "8cbc7b353824647f3662aeb23c3849324bffac28",
      "parents": [
        "c0103606b7e3db191dcbaf988f28fa26aa711230"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Nov 20 04:08:29 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 04:08:29 2008 -0800"
      },
      "message": "netlink: avoid memset of 0 bytes sparse warning\n\nA netlink attribute padding of zero triggers this sparse warning:\n\ninclude/linux/netlink.h:245:8: warning: memset with byte count of 0\n\nAvoid the memset when the size parameter is constant and requires no padding.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f7f65d1e8bfaa92c1a419c2a52faeca835659295",
      "tree": "b616a113bddb2728fca89ef3062c16b220cee620",
      "parents": [
        "eafdcb433f854c8cb06747a80fa3df7c72147be6",
        "4018517a1a69a85c3d61b20fa02f187b80773137"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 04:01:29 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 04:01:29 2008 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n"
    },
    {
      "commit": "d214c7537bbf2f247991fb65b3420b0b3d712c67",
      "tree": "11c26aa8c7c93d0bc15f206d65b3ddac3a6a8c33",
      "parents": [
        "68fd991020fdf51bc94327d288ae4ae5d0b8dced"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Nov 20 00:49:27 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 00:49:27 2008 -0800"
      },
      "message": "filter: add SKF_AD_NLATTR_NEST to look for nested attributes\n\nSKF_AD_NLATTR allows us to find the first matching attribute in a\nstream of netlink attributes from one offset to the end of the\nnetlink message. This is not suitable to look for a specific\nmatching inside a set of nested attributes.\n\nFor example, in ctnetlink messages, if we look for the CTA_V6_SRC\nattribute in a message that talks about an IPv4 connection,\nSKF_AD_NLATTR returns the offset of CTA_STATUS which has the same\nvalue of CTA_V6_SRC but outside the nest. To differenciate\nCTA_STATUS and CTA_V6_SRC, we would have to make assumptions on the\nsize of the attribute and the usual offset, resulting in horrible\nBSF code.\n\nThis patch adds SKF_AD_NLATTR_NEST, which is a variant of\nSKF_AD_NLATTR, that looks for an attribute inside the limits of\na nested attributes, but not further.\n\nThis patch validates that we have enough room to look for the\nnested attributes - based on a suggestion from Patrick McHardy.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5caea4ea7088e80ac5410d04660346094608b909",
      "tree": "fad95133683c002d24ff5de7fb756dad806b41ed",
      "parents": [
        "d8b83c57a7e497cba9b5cb156e63176323035785"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Nov 20 00:40:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 00:40:07 2008 -0800"
      },
      "message": "net: listening_hash get a spinlock per bucket\n\nThis patch prepares RCU migration of listening_hash table for\nTCP/DCCP protocols.\n\nlistening_hash table being small (32 slots per protocol), we add\na spinlock for each slot, instead of a single rwlock for whole table.\n\nThis should reduce hold time of readers, and writers concurrency.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ccad637b0c57de1825ffd34c311bf71487545ac2",
      "tree": "fa5e54d6a4d8a414754efb7904685e5a83bff601",
      "parents": [
        "eeda3fd64f75bcbfaa70ce946513abaf3f23b8e0"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Nov 19 22:42:31 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 19 22:42:31 2008 -0800"
      },
      "message": "netdev: expose ethernet address primitives\n\nWhen ethernet devices are converted, the function pointer setup\nby eth_setup() need to be done during intialization.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eeda3fd64f75bcbfaa70ce946513abaf3f23b8e0",
      "tree": "082d1921a5783ef5b07b4cf666804d6509f25f1a",
      "parents": [
        "d314774cf2cd5dfeb39a00d37deee65d4c627927"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Nov 19 21:40:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 19 21:40:23 2008 -0800"
      },
      "message": "netdev: introduce dev_get_stats()\n\nIn order for the network device ops get_stats call to be immutable, the handling\nof the default internal network device stats block has to be changed. Add a new\nhelper function which replaces the old use of internal_get_stats.\n\nNote: change return code to make it clear that the caller should not\ngo changing the returned statistics.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d314774cf2cd5dfeb39a00d37deee65d4c627927",
      "tree": "1c7778b509cea814aa2b7115949667941037d07c",
      "parents": [
        "6b41e7dd90c6a628ab5fb8d781302d60a243b2ce"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Nov 19 21:32:24 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 19 21:32:24 2008 -0800"
      },
      "message": "netdev: network device operations infrastructure\n\nThis patch changes the network device internal API to move adminstrative\noperations out of the network device structure and into a separate structure.\n\nThis patch involves some hackery to maintain compatablity between the\nnew and old model, so all 300+ drivers don\u0027t have to be changed at once.\nFor drivers that aren\u0027t converted yet, the netdevice_ops virt function list\nstill resides in the net_device structure. For old protocols, the new\nnet_device_ops are copied out to the old net_device pointers.\n\nAfter the transistion is completed the nag message can be changed to\nan WARN_ON, and the compatiablity code can be made configurable.\n\nSome function pointers aren\u0027t moved:\n* destructor can\u0027t be in net_device_ops because\n  it may need to be referenced after the module is unloaded.\n* neighbor setup is manipulated in a couple of places that need special\n  consideration\n* hard_start_xmit is in the fast path for transmit.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4f7dbc7ff4ec19b40ec083f7c54a87d3ece0089d",
      "tree": "c37f34eee23ae96c78f72e445ad20f8fbcab010e",
      "parents": [
        "9f92f4719764acf1c9185a5958200887a43e3483",
        "73f56c0d35e6427081a4eabd620d8b8d8a35bd09"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:51:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:51:56 2008 -0800"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: more general identifier for Phoenix BIOS\n  AMD IOMMU: check for next_bit also in unmapped area\n  AMD IOMMU: fix fullflush comparison length\n  AMD IOMMU: enable device isolation per default\n  AMD IOMMU: add parameter to disable device isolation\n  x86, PEBS/DS: fix code flow in ds_request()\n  x86: add rdtsc barrier to TSC sync check\n  xen: fix scrub_page()\n  x86: fix es7000 compiling\n  x86, bts: fix unlock problem in ds.c\n  x86, voyager: fix smp generic helper voyager breakage\n  x86: move iomap.h to the new include location\n"
    },
    {
      "commit": "f481891fdc49d3d1b8a9674a1825d183069a805f",
      "tree": "4f027a1321dcd06165394d0a23e49df51c8befc1",
      "parents": [
        "ac97b9f9a2d0b83488e0bbcb8517b229d5c9b142"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Nov 19 15:36:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:58 2008 -0800"
      },
      "message": "cpuset: update top cpuset\u0027s mems after adding a node\n\nAfter adding a node into the machine, top cpuset\u0027s mems isn\u0027t updated.\n\nBy reviewing the code, we found that the update function\n\n  cpuset_track_online_nodes()\n\nwas invoked after node_states[N_ONLINE] changes.  It is wrong because\nN_ONLINE just means node has pgdat, and if node has/added memory, we use\nN_HIGH_MEMORY.  So, We should invoke the update function after\nnode_states[N_HIGH_MEMORY] changes, just like its commit says.\n\nThis patch fixes it.  And we use notifier of memory hotplug instead of\ndirect calling of cpuset_track_online_nodes().\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nAcked-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Paul Menage \u003cmenage@google.com\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de11defebf00007677fb7ee91d9b089b78786fbb",
      "tree": "8219faf1b7992be77a612e778c2573c55f56cf19",
      "parents": [
        "cf7ee554f3a324e98181b0ea249d9d5be3a0acb8"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Nov 19 15:36:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:57 2008 -0800"
      },
      "message": "reintroduce accept4\n\nIntroduce a new accept4() system call.  The addition of this system call\nmatches analogous changes in 2.6.27 (dup3(), evenfd2(), signalfd4(),\ninotify_init1(), epoll_create1(), pipe2()) which added new system calls\nthat differed from analogous traditional system calls in adding a flags\nargument that can be used to access additional functionality.\n\nThe accept4() system call is exactly the same as accept(), except that\nit adds a flags bit-mask argument.  Two flags are initially implemented.\n(Most of the new system calls in 2.6.27 also had both of these flags.)\n\nSOCK_CLOEXEC causes the close-on-exec (FD_CLOEXEC) flag to be enabled\nfor the new file descriptor returned by accept4().  This is a useful\nsecurity feature to avoid leaking information in a multithreaded\nprogram where one thread is doing an accept() at the same time as\nanother thread is doing a fork() plus exec().  More details here:\nhttp://udrepper.livejournal.com/20407.html \"Secure File Descriptor Handling\",\nUlrich Drepper).\n\nThe other flag is SOCK_NONBLOCK, which causes the O_NONBLOCK flag\nto be enabled on the new open file description created by accept4().\n(This flag is merely a convenience, saving the use of additional calls\nfcntl(F_GETFL) and fcntl (F_SETFL) to achieve the same result.\n\nHere\u0027s a test program.  Works on x86-32.  Should work on x86-64, but\nI (mtk) don\u0027t have a system to hand to test with.\n\nIt tests accept4() with each of the four possible combinations of\nSOCK_CLOEXEC and SOCK_NONBLOCK set/clear in \u0027flags\u0027, and verifies\nthat the appropriate flags are set on the file descriptor/open file\ndescription returned by accept4().\n\nI tested Ulrich\u0027s patch in this thread by applying against 2.6.28-rc2,\nand it passes according to my test program.\n\n/* test_accept4.c\n\n  Copyright (C) 2008, Linux Foundation, written by Michael Kerrisk\n       \u003cmtk.manpages@gmail.com\u003e\n\n  Licensed under the GNU GPLv2 or later.\n*/\n#define _GNU_SOURCE\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n#include \u003csys/socket.h\u003e\n#include \u003cnetinet/in.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cstring.h\u003e\n\n#define PORT_NUM 33333\n\n#define die(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0)\n\n/**********************************************************************/\n\n/* The following is what we need until glibc gets a wrapper for\n  accept4() */\n\n/* Flags for socket(), socketpair(), accept4() */\n#ifndef SOCK_CLOEXEC\n#define SOCK_CLOEXEC    O_CLOEXEC\n#endif\n#ifndef SOCK_NONBLOCK\n#define SOCK_NONBLOCK   O_NONBLOCK\n#endif\n\n#ifdef __x86_64__\n#define SYS_accept4 288\n#elif __i386__\n#define USE_SOCKETCALL 1\n#define SYS_ACCEPT4 18\n#else\n#error \"Sorry -- don\u0027t know the syscall # on this architecture\"\n#endif\n\nstatic int\naccept4(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags)\n{\n   printf(\"Calling accept4(): flags \u003d %x\", flags);\n   if (flags !\u003d 0) {\n       printf(\" (\");\n       if (flags \u0026 SOCK_CLOEXEC)\n           printf(\"SOCK_CLOEXEC\");\n       if ((flags \u0026 SOCK_CLOEXEC) \u0026\u0026 (flags \u0026 SOCK_NONBLOCK))\n           printf(\" \");\n       if (flags \u0026 SOCK_NONBLOCK)\n           printf(\"SOCK_NONBLOCK\");\n       printf(\")\");\n   }\n   printf(\"\\n\");\n\n#if USE_SOCKETCALL\n   long args[6];\n\n   args[0] \u003d fd;\n   args[1] \u003d (long) sockaddr;\n   args[2] \u003d (long) addrlen;\n   args[3] \u003d flags;\n\n   return syscall(SYS_socketcall, SYS_ACCEPT4, args);\n#else\n   return syscall(SYS_accept4, fd, sockaddr, addrlen, flags);\n#endif\n}\n\n/**********************************************************************/\n\nstatic int\ndo_test(int lfd, struct sockaddr_in *conn_addr,\n       int closeonexec_flag, int nonblock_flag)\n{\n   int connfd, acceptfd;\n   int fdf, flf, fdf_pass, flf_pass;\n   struct sockaddr_in claddr;\n   socklen_t addrlen;\n\n   printf(\"\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\");\n\n   connfd \u003d socket(AF_INET, SOCK_STREAM, 0);\n   if (connfd \u003d\u003d -1)\n       die(\"socket\");\n   if (connect(connfd, (struct sockaddr *) conn_addr,\n               sizeof(struct sockaddr_in)) \u003d\u003d -1)\n       die(\"connect\");\n\n   addrlen \u003d sizeof(struct sockaddr_in);\n   acceptfd \u003d accept4(lfd, (struct sockaddr *) \u0026claddr, \u0026addrlen,\n                      closeonexec_flag | nonblock_flag);\n   if (acceptfd \u003d\u003d -1) {\n       perror(\"accept4()\");\n       close(connfd);\n       return 0;\n   }\n\n   fdf \u003d fcntl(acceptfd, F_GETFD);\n   if (fdf \u003d\u003d -1)\n       die(\"fcntl:F_GETFD\");\n   fdf_pass \u003d ((fdf \u0026 FD_CLOEXEC) !\u003d 0) \u003d\u003d\n              ((closeonexec_flag \u0026 SOCK_CLOEXEC) !\u003d 0);\n   printf(\"Close-on-exec flag is %sset (%s); \",\n           (fdf \u0026 FD_CLOEXEC) ? \"\" : \"not \",\n           fdf_pass ? \"OK\" : \"failed\");\n\n   flf \u003d fcntl(acceptfd, F_GETFL);\n   if (flf \u003d\u003d -1)\n       die(\"fcntl:F_GETFD\");\n   flf_pass \u003d ((flf \u0026 O_NONBLOCK) !\u003d 0) \u003d\u003d\n              ((nonblock_flag \u0026 SOCK_NONBLOCK) !\u003d0);\n   printf(\"nonblock flag is %sset (%s)\\n\",\n           (flf \u0026 O_NONBLOCK) ? \"\" : \"not \",\n           flf_pass ? \"OK\" : \"failed\");\n\n   close(acceptfd);\n   close(connfd);\n\n   printf(\"Test result: %s\\n\", (fdf_pass \u0026\u0026 flf_pass) ? \"PASS\" : \"FAIL\");\n   return fdf_pass \u0026\u0026 flf_pass;\n}\n\nstatic int\ncreate_listening_socket(int port_num)\n{\n   struct sockaddr_in svaddr;\n   int lfd;\n   int optval;\n\n   memset(\u0026svaddr, 0, sizeof(struct sockaddr_in));\n   svaddr.sin_family \u003d AF_INET;\n   svaddr.sin_addr.s_addr \u003d htonl(INADDR_ANY);\n   svaddr.sin_port \u003d htons(port_num);\n\n   lfd \u003d socket(AF_INET, SOCK_STREAM, 0);\n   if (lfd \u003d\u003d -1)\n       die(\"socket\");\n\n   optval \u003d 1;\n   if (setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, \u0026optval,\n                  sizeof(optval)) \u003d\u003d -1)\n       die(\"setsockopt\");\n\n   if (bind(lfd, (struct sockaddr *) \u0026svaddr,\n            sizeof(struct sockaddr_in)) \u003d\u003d -1)\n       die(\"bind\");\n\n   if (listen(lfd, 5) \u003d\u003d -1)\n       die(\"listen\");\n\n   return lfd;\n}\n\nint\nmain(int argc, char *argv[])\n{\n   struct sockaddr_in conn_addr;\n   int lfd;\n   int port_num;\n   int passed;\n\n   passed \u003d 1;\n\n   port_num \u003d (argc \u003e 1) ? atoi(argv[1]) : PORT_NUM;\n\n   memset(\u0026conn_addr, 0, sizeof(struct sockaddr_in));\n   conn_addr.sin_family \u003d AF_INET;\n   conn_addr.sin_addr.s_addr \u003d htonl(INADDR_LOOPBACK);\n   conn_addr.sin_port \u003d htons(port_num);\n\n   lfd \u003d create_listening_socket(port_num);\n\n   if (!do_test(lfd, \u0026conn_addr, 0, 0))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, SOCK_CLOEXEC, 0))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, 0, SOCK_NONBLOCK))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, SOCK_CLOEXEC, SOCK_NONBLOCK))\n       passed \u003d 0;\n\n   close(lfd);\n\n   exit(passed ? EXIT_SUCCESS : EXIT_FAILURE);\n}\n\n[mtk.manpages@gmail.com: rewrote changelog, updated test program]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nTested-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: \u003clinux-api@vger.kernel.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "07f0757a6808f2f36a0e58c3a54867ccffdb8dc9"
}
