)]}'
{
  "log": [
    {
      "commit": "37b607c5ac3b7c92a6a3624bb29f1cdcdcf7044a",
      "tree": "ac2ecd6b61ea290748b6d33e41637e24d962f05b",
      "parents": [
        "c9503e0fe052020e0294cd07d0ecd982eb7c9177"
      ],
      "author": {
        "name": "Mike Rapoport",
        "email": "mike@compulab.co.il",
        "time": "Mon Apr 27 05:45:54 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 27 05:45:54 2009 -0700"
      },
      "message": "net: Fix typo in net_device_ops description.\n\nSigned-off-by: Mike Rapoport \u003cmike@compulab.co.il\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c759a6b4e1cae6aff71f58c9c85404ebcd81b6e0",
      "tree": "0c91cc3b8b06534f1c169867baa0c1061a8f6663",
      "parents": [
        "785a0982eaaeae2fbe3372d1c9c769e8156a7a5a"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Apr 27 02:36:20 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 27 02:36:20 2009 -0700"
      },
      "message": "net: Fix LL_MAX_HEADER for CONFIG_TR_MODULE\n\nUnless I miss anything this should fix a bug.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d54b3538b0bfb31351d02d1669d4a978d2abfc5f",
      "tree": "5ce539ecba525b30bbfb1c46c55487099264947e",
      "parents": [
        "5d80f8e5a9dc9c9a94d4aeaa567e219a808b8a4a",
        "af50bb993dfa673cf21ab812efe620d7e0c36319"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 13:30:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 13:30:43 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (119 commits)\n  [SCSI] scsi_dh_rdac: Retry for NOT_READY check condition\n  [SCSI] mpt2sas: make global symbols unique\n  [SCSI] sd: Make revalidate less chatty\n  [SCSI] sd: Try READ CAPACITY 16 first for SBC-2 devices\n  [SCSI] sd: Refactor sd_read_capacity()\n  [SCSI] mpt2sas v00.100.11.15\n  [SCSI] mpt2sas: add MPT2SAS_MINOR(221) to miscdevice.h\n  [SCSI] ch: Add scsi type modalias\n  [SCSI] 3w-9xxx: add power management support\n  [SCSI] bsg: add linux/types.h include to bsg.h\n  [SCSI] cxgb3i: fix function descriptions\n  [SCSI] libiscsi: fix possbile null ptr session command cleanup\n  [SCSI] iscsi class: remove host no argument from session creation callout\n  [SCSI] libiscsi: pass session failure a session struct\n  [SCSI] iscsi lib: remove qdepth param from iscsi host allocation\n  [SCSI] iscsi lib: have lib create work queue for transmitting IO\n  [SCSI] iscsi class: fix lock dep warning on logout\n  [SCSI] libiscsi: don\u0027t cap queue depth in iscsi modules\n  [SCSI] iscsi_tcp: replace scsi_debug/tcp_debug logging with iscsi conn logging\n  [SCSI] libiscsi_tcp: replace tcp_debug/scsi_debug logging with session/conn logging\n  ...\n"
    },
    {
      "commit": "cc0be3227df9146968311308a9d19db1469ce1db",
      "tree": "9f8979ecea86e3cae10af7f4bfaf05262f660ba2",
      "parents": [
        "5b28beaf88436fa44fc25ee27a2fadffb75f222e"
      ],
      "author": {
        "name": "Dmitri Vorobiev",
        "email": "dmitri.vorobiev@movial.com",
        "time": "Fri Mar 27 15:55:36 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 27 15:55:36 2009 -0700"
      },
      "message": "net: Add missing include into include/linux/netdevice.h\n\nThe inline function skb_gro_mac_header defined in include/linux/netdevice.h\nmakes use of page_address(). Depending on configuration options, the latter\nis either defined as a macro or is declared as a function in another header\nfile, namely include/linux/mm.h. However, include/linux/netdevice.h does not\ninclude include/linux/mm.h.\n\nOn MIPS, this has produced the following build error:\n\n  CC      kernel/sysctl_check.o\nIn file included from include/linux/icmpv6.h:173,\n                 from include/linux/ipv6.h:208,\n                 from include/net/ip_vs.h:26,\n                 from kernel/sysctl_check.c:6:\ninclude/linux/netdevice.h: In function \u0027skb_gro_mac_header\u0027:\ninclude/linux/netdevice.h:1132: error: implicit declaration of function\n\u0027page_address\u0027\ninclude/linux/netdevice.h:1133: warning: pointer/integer type mismatch\nin conditional expression\nmake[1]: *** [kernel/sysctl_check.o] Error 1\nmake: *** [kernel] Error 2\n\nThe patch adds the missing include and fixes the build error.\n\nSigned-off-by: Dmitri Vorobiev \u003cdmitri.vorobiev@movial.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d1c76af9e2434fac3add561e26c61b06503de986",
      "tree": "cbedc7c96c4b7db3d7a5a8300117804c5e0230d9",
      "parents": [
        "afece1c6587010cc81d1a43045c855774e8234a3"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Mar 16 10:50:02 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 16 10:50:02 2009 -0700"
      },
      "message": "GRO: Move netpoll checks to correct location\n\nAs my netpoll fix for net doesn\u0027t really work for net-next, we\nneed this update to move the checks into the right place.  As it\nstands we may pass freed skbs to netpoll_receive_skb.\n\nThis patch also introduces a netpoll_rx_on function to avoid GRO\ncompletely if we\u0027re invoked through netpoll.  This might seem\nparanoid but as netpoll may have an external receive hook it\u0027s\nbetter to be safe than sorry.  I don\u0027t think we need this for\n2.6.29 though since there\u0027s nothing immediately broken by it.\n\nThis patch also moves the GRO_* return values to netdevice.h since\nVLAN needs them too (I tried to avoid this originally but alas\nthis seems to be the easiest way out).  This fixes a bug in VLAN\nwhere it continued to use the old return value 2 instead of the\ncorrect GRO_DROP.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4d288d5767f853bfca25adc7b6030dc95518cb2e",
      "tree": "c48c34dd06d6f269d7118bbe96f7ffa4cae8071b",
      "parents": [
        "1c8dbcf6496c2612d883a8bc6bccc38000e14866"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Fri Feb 27 14:06:59 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 13 15:12:12 2009 -0500"
      },
      "message": "[SCSI] net: add FCoE offload support through net_device\n\nThis adds support to provide Fiber Channel over Ethernet (FCoE) offload\nthrough net_device\u0027s net_device_ops struct. The offload through net_device\nfor FCoE is enabled in kernel as built-in or module driver.\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "01d5b2fca1fa58ed5039239fd531e9f658971ace",
      "tree": "7b1c89ee47110b9581f10797a24d5f12d46e081a",
      "parents": [
        "43eb99c5b349b188f82725652f3d1018c619d682"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Fri Feb 27 14:06:49 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 13 15:11:07 2009 -0500"
      },
      "message": "[SCSI] net: define feature flags for FCoE offloads\n\nDefine feature flags for FCoE offloads.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "43eb99c5b349b188f82725652f3d1018c619d682",
      "tree": "b34aa54b7d54d2ed691fc7fd05e56ffa5b690c93",
      "parents": [
        "211c738d86f3f423f1b218ab3a356c9538e38047"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Fri Feb 27 14:06:43 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 13 15:10:23 2009 -0500"
      },
      "message": "[SCSI] net: reclaim 8 upper bits of the netdev-\u003efeatures from GSO\n\nReclaim 8 upper bits of netdev-\u003efeatures from GSO.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "508827ff0ac3981d420edac64a70de7f4e304d38",
      "tree": "b0cee8ddef9f0ceab68c388e4ae46b7295eb2cb5",
      "parents": [
        "2c3c3d02f28801d7ad2da4952b2c7ca6621ef221",
        "72e2240f181871675d3a979766330c91d48a1673"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 05 02:06:47 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 05 02:06:47 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/tokenring/tmspci.c\n\tdrivers/net/ucc_geth_mii.c\n"
    },
    {
      "commit": "9d40bbda599def1e1d155d7f7dca14fe8744bd2b",
      "tree": "d246fbaec294830ecab0bb4b3b38d925abb5ffd8",
      "parents": [
        "54acd0efab072cb70e87206329d561b297f93bbb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 04 23:46:25 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 04 23:46:25 2009 -0800"
      },
      "message": "vlan: Fix vlan-in-vlan crashes.\n\nAs analyzed by Patrick McHardy, vlan needs to reset it\u0027s\nnetdev_ops pointer in it\u0027s -\u003einit() function but this\nleaves the compat method pointers stale.\n\nAdd a netdev_resync_ops() and call it from the vlan code.\n\nAny other driver which changes -\u003enetdev_ops after register_netdevice()\nwill need to call this new function after doing so too.\n\nWith help from Patrick McHardy.\n\nTested-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f3a7c66b5ce0b75a9774a50b5dcce93e5ba28370",
      "tree": "441f02ac10cb109cbb80fbd0d964af3638541f06",
      "parents": [
        "35c26c2cf6a6a2d1c48add732d8ba002bd90784c"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Sat Feb 14 22:58:35 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 14 22:58:35 2009 -0800"
      },
      "message": "net: replace __constant_{endian} uses in net headers\n\nBase versions handle constant folding now.  For headers exposed to\nuserspace, we must only expose the __ prefixed versions.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aa4b9f533ed5a22952e038b9fac2447ccc682124",
      "tree": "91722b13a63dcd0e49695388e633cfa91b856b80",
      "parents": [
        "4ae5544f9a33e4ae306e337f96951eb3ff2df6d9"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Feb 08 18:00:37 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 08 20:22:18 2009 -0800"
      },
      "message": "gro: Optimise Ethernet header comparison\n\nThis patch optimises the Ethernet header comparison to use 2-byte\nand 4-byte xors instead of memcmp.  In order to facilitate this,\nthe actual comparison is now carried out by the callers of the\nshared dev_gro_receive function.\n\nThis has a significant impact when receiving 1500B packets through\n10GbE.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4ae5544f9a33e4ae306e337f96951eb3ff2df6d9",
      "tree": "4ca5e02345cb3a680db5ac1016e6e857ccb4a767",
      "parents": [
        "d6301d3dd1c287b32132dda15272a50c11e92a14"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Feb 08 18:00:36 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 08 20:22:17 2009 -0800"
      },
      "message": "gro: Remember number of held packets instead of counting every time\n\nThis patch prepares for the move of the same_flow checks out of\ndev_gro_receive.  As such we need to remember the number of held\npackets since doing a loop just to count them every time is silly.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fe2918b098cdbf55b69ba8762bd3de0ae64f33ff",
      "tree": "210abd000a7fbb399d6ade02e71db1cfaf398a58",
      "parents": [
        "33dccbb050bbe35b88ca8cf1228dcf3e4d4b3554"
      ],
      "author": {
        "name": "Graf Yang",
        "email": "graf.yang@analog.com",
        "time": "Thu Feb 05 21:26:19 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 05 21:26:19 2009 -0800"
      },
      "message": "net: fix some trailing whitespaces\n\nSigned-off-by: Graf Yang \u003cgraf.yang@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "86911732d3996a9da07914b280621450111bb6da",
      "tree": "e787240d5ba869ddf4d0adfc3f9c69e0372e96ef",
      "parents": [
        "5d0d9be8ef456afc6c3fb5f8aad06ef19b704b05"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jan 29 14:19:50 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 29 16:33:03 2009 -0800"
      },
      "message": "gro: Avoid copying headers of unmerged packets\n\nUnfortunately simplicity isn\u0027t always the best.  The fraginfo\ninterface turned out to be suboptimal.  The problem was quite\nobvious.  For every packet, we have to copy the headers from\nthe frags structure into skb-\u003ehead, even though for 99% of the\npackets this part is immediately thrown away after the merge.\n\nLRO didn\u0027t have this problem because it directly read the headers\nfrom the frags structure.\n\nThis patch attempts to address this by creating an interface\nthat allows GRO to access the headers in the first frag without\nhaving to copy it.  Because all drivers that use frags place the\nheaders in the first frag this optimisation should be enough.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5d0d9be8ef456afc6c3fb5f8aad06ef19b704b05",
      "tree": "9fc987d5c6850800a83465105af43af4ce9c76a4",
      "parents": [
        "7019298a2a5058c4e324494d6c8d0598214c28f4"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jan 29 14:19:48 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 29 16:33:02 2009 -0800"
      },
      "message": "gro: Move common completion code into helpers\n\nCurrently VLAN still has a bit of common code handling the aftermath\nof GRO that\u0027s shared with the common path.  This patch moves them\ninto shared helpers to reduce code duplication.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "288379f050284087578b77e04f040b57db3db3f8",
      "tree": "ac5f5c83e2778a1966327d87316fc94067363b45",
      "parents": [
        "627af770c63acddc2402dd19fec70df5c3ad8ab7"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Mon Jan 19 16:43:59 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 21 14:33:50 2009 -0800"
      },
      "message": "net: Remove redundant NAPI functions\n\nFollowing the removal of the unused struct net_device * parameter from\nthe NAPI functions named *netif_rx_* in commit 908a7a1, they are\nexactly equivalent to the corresponding *napi_* functions and are\ntherefore redundant.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "937f1ba56b4be37d9e2ad77412f95048662058d2",
      "tree": "154e0c5ce11b5afe25816d667c76b19ac679d530",
      "parents": [
        "2950e952920811be465ec95c6b56f03dc66a05c0"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Jan 14 21:05:05 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 14 21:05:05 2009 -0800"
      },
      "message": "net: Add init_dummy_netdev() and fix EMAC driver using it\n\nThis adds an init_dummy_netdev() function that gets a network device\nstructure (allocation and lifetime entirely under caller\u0027s control) and\ninitialize the minimum amount of fields so it can be used to schedule\nNAPI polls without registering a full blown interface. This is to be\nused by drivers that need to tie several hardware interfaces to a single\nNAPI poll scheduler due to HW limitations.\n\nIt also updates the ibm_newemac driver to use that, this fixing the\noops on 2.6.29 due to passing NULL as \"dev\" to netif_napi_add()\n\nSymbol is exported GPL only a I don\u0027t think we want binary drivers doing\nthat sort of acrobatics (if we want them at all).\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nTested-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "985ebdb5ed54151eba734aa1b307460e8e4267ba",
      "tree": "06ac06ae1af29aa880ed96de3be71ac1f01dded3",
      "parents": [
        "d9736749f581abd80c2831244e2659e2e833b0e3"
      ],
      "author": {
        "name": "Krzysztof Hałasa",
        "email": "khc@pm.waw.pl",
        "time": "Mon Jan 12 16:32:13 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 12 21:18:32 2009 -0800"
      },
      "message": "net: Fix a comment in include/linux/netdevice.h.\n\nFix a comment in include/linux/netdevice.h.\n\nSigned-off-by: Krzysztof Hałasa \u003ckhc@pm.waw.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d9e8a3a5b8298a3c814ed37ac5756e6f67b6be41",
      "tree": "ffa1cf8b367b3f32155f6336d7b86b781a368019",
      "parents": [
        "2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f",
        "b9bdcbba010c2e49c8f837ea7a49fe006b636f41"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 11:52:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 11:52:14 2009 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (22 commits)\n  ioat: fix self test for multi-channel case\n  dmaengine: bump initcall level to arch_initcall\n  dmaengine: advertise all channels on a device to dma_filter_fn\n  dmaengine: use idr for registering dma device numbers\n  dmaengine: add a release for dma class devices and dependent infrastructure\n  ioat: do not perform removal actions at shutdown\n  iop-adma: enable module removal\n  iop-adma: kill debug BUG_ON\n  iop-adma: let devm do its job, don\u0027t duplicate free\n  dmaengine: kill enum dma_state_client\n  dmaengine: remove \u0027bigref\u0027 infrastructure\n  dmaengine: kill struct dma_client and supporting infrastructure\n  dmaengine: replace dma_async_client_register with dmaengine_get\n  atmel-mci: convert to dma_request_channel and down-level dma_slave\n  dmatest: convert to dma_request_channel\n  dmaengine: introduce dma_request_channel and private channels\n  net_dma: convert to dma_find_channel\n  dmaengine: provide a common \u0027issue_pending_all\u0027 implementation\n  dmaengine: centralize channel allocation, introduce dma_find_channel\n  dmaengine: up-level reference counting to the module level\n  ...\n"
    },
    {
      "commit": "96e93eab20337d063c70d537bd7bc70d90e04fa3",
      "tree": "6b50a8d19e6c4d99f035dbede3b7836eed5a7d44",
      "parents": [
        "ff5bfc3584efdadf826a21bc76ef42bdfcf3f612"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Jan 06 10:49:34 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 06 10:49:34 2009 -0800"
      },
      "message": "gro: Add internal interfaces for VLAN\n\nPreviously GRO\u0027s only entry point from the outside is through\nnapi_gro_receive and napi_gro_frags.  These interfaces are for\ndevice drivers.\n\nThis patch rearranges things to provide a new set of interfaces\nfor VLANs.  These interfaces are for internal use only.  The\nVLAN code itself can then provide a set of entry points for\ndevice drivers.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f67b45999205164958de4ec0658d51fa4bee066d",
      "tree": "2fc3c2e833fdfea2f029dca05d5401ba9ae63229",
      "parents": [
        "2ba05622b8b143b0c95968ba59bddfbd6d2f2559"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 06 11:38:15 2009 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 06 11:38:15 2009 -0700"
      },
      "message": "net_dma: convert to dma_find_channel\n\nUse the general-purpose channel allocation provided by dmaengine.\n\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n\n\n"
    },
    {
      "commit": "5d38a079ce3971f932bbdc0dc5b887806fabd5dc",
      "tree": "79d948098add1f6c52ecd42c151ce6b6fa1dbc5a",
      "parents": [
        "b530256d2e0f1a75fab31f9821129fff1bb49faa"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Jan 04 16:13:40 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 04 16:13:40 2009 -0800"
      },
      "message": "gro: Add page frag support\n\nThis patch allows GRO to merge page frags (skb_shinfo(skb)-\u003efrags)\nin one skb, rather than using the less efficient frag_list.\n\nIt also adds a new interface, napi_gro_frags to allow drivers\nto inject page frags directly into the stack without allocating\nan skb.  This is intended to be the GRO equivalent for LRO\u0027s\nlro_receive_frags interface.\n\nThe existing GSO interface can already handle page frags with\nor without an appended frag_list so nothing needs to be changed\nthere.\n\nThe merging itself is rather simple.  We store any new frag entries\nafter the last existing entry, without checking whether the first\nnew entry can be merged with the last existing entry.  Making this\ncheck would actually be easy but since no existing driver can\nproduce contiguous frags anyway it would just be mental masturbation.\n\nIf the total number of entries would exceed the capacity of a\nsingle skb, we simply resort to using frag_list as we do now.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "908a7a16b852ffd618a9127be8d62432182d81b4",
      "tree": "a0b509227e26bef7edd347575761e0dbeb5756e7",
      "parents": [
        "889bd9b6dbcd426b8698c4a779dd7dbf247f57b8"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Mon Dec 22 20:43:12 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 22 20:43:12 2008 -0800"
      },
      "message": "net: Remove unused netdev arg from some NAPI interfaces.\n\nWhen the napi api was changed to separate its 1:1 binding to the net_device\nstruct, the netif_rx_[prep|schedule|complete] api failed to remove the now\nvestigual net_device structure parameter.  This patch cleans up that api by\nproperly removing it..\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d565b0a1a9b6ee7dff46e1f68b26b526ac11ae50",
      "tree": "3526815ab2b60c37f474c25ad1d8fb207644efcc",
      "parents": [
        "1a881f27c50b4fbd6858a8696a189263621136b0"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Dec 15 23:38:52 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 15 23:38:52 2008 -0800"
      },
      "message": "net: Add Generic Receive Offload infrastructure\n\nThis patch adds the top-level GRO (Generic Receive Offload) infrastructure.\nThis is pretty similar to LRO except that this is protocol-independent.\nInstead of holding packets in an lro_mgr structure, they\u0027re now held in\nnapi_struct.\n\nFor drivers that intend to use this, they can set the NETIF_F_GRO bit and\ncall napi_gro_receive instead of netif_receive_skb or just call netif_rx.\nThe latter will call napi_receive_skb automatically.  When napi_gro_receive\nis used, the driver must either call napi_complete/napi_rx_complete, or\ncall napi_gro_flush in softirq context if the driver uses the primitives\n__napi_complete/__napi_rx_complete.\n\nProtocols will set the gro_receive and gro_complete function pointers in\norder to participate in this scheme.\n\nIn addition to the packet, gro_receive will get a list of currently held\npackets.  Each packet in the list has a same_flow field which is non-zero\nif it is a potential match for the new packet.  For each packet that may\nmatch, they also have a flush field which is non-zero if the held packet\nmust not be merged with the new packet.\n\nOnce gro_receive has determined that the new skb matches a held packet,\nthe held packet may be processed immediately if the new skb cannot be\nmerged with it.  In this case gro_receive should return the pointer to\nthe existing skb in gro_list.  Otherwise the new skb should be merged into\nthe existing packet and NULL should be returned, unless the new skb makes\nit impossible for any further merges to be made (e.g., FIN packet) where\nthe merged skb should be returned.\n\nWhenever the skb is merged into an existing entry, the gro_receive\nfunction should set NAPI_GRO_CB(skb)-\u003esame_flow.  Note that if an skb\nmerely matches an existing entry but can\u0027t be merged with it, then\nthis shouldn\u0027t be set.\n\nIf gro_receive finds it pointless to hold the new skb for future merging,\nit should set NAPI_GRO_CB(skb)-\u003eflush.\n\nHeld packets will be flushed by napi_gro_flush which is called by\nnapi_complete and napi_rx_complete.\n\nCurrently held packets are stored in a singly liked list just like LRO.\nThe list is limited to a maximum of 8 entries.  In future, this may be\nexpanded to use a hash table to allow more flows to be held for merging.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1a881f27c50b4fbd6858a8696a189263621136b0",
      "tree": "ca0327e3543a0535cfd855beedb1b171f6aebf06",
      "parents": [
        "89319d3801d1d3ac29c7df1f067038986f267d29"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Dec 15 23:27:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 15 23:27:47 2008 -0800"
      },
      "message": "net: Add frag_list support to GSO\n\nThis patch allows GSO to handle frag_list in a limited way for the\npurposes of allowing packets merged by GRO to be refragmented on\noutput.\n\nMost hardware won\u0027t (and aren\u0027t expected to) support handling GRO\nfrag_list packets directly.  Therefore we will perform GSO in\nsoftware for those cases.\n\nHowever, for drivers that can support it (such as virtual NICs) we\nmay not have to segment the packets at all.\n\nWhether the added overhead of GRO/GSO is worthwhile for bridges\nand routers when weighed against the benefit of potentially\nincreasing the MTU within the host is still an open question.\nHowever, for the case of host nodes this is undoubtedly a win.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eb14f019597cd86c21a6c601d7e900f40030c2e7",
      "tree": "36fb2f36a1747f98988f87215db1eef3a71d45eb",
      "parents": [
        "9a4a84294b0d60b8c287131478f743ba2bc68949",
        "a3dd15444baa9c7522c8457ab564c41219dfb44c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 15 20:03:50 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 15 20:03:50 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/e1000e/ich8lan.c\n"
    },
    {
      "commit": "7b363e440021a1cf9ed76944b2685f48dacefb3e",
      "tree": "973e674ab7bfd29807075316489f357327fcf2e8",
      "parents": [
        "24fc7b86dc0470616803be2f921c8cd5c459175d"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Tue Dec 09 23:22:26 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 09 23:22:26 2008 -0800"
      },
      "message": "netpoll: fix race on poll_list resulting in garbage entry\n\n\tA few months back a race was discused between the netpoll napi service\npath, and the fast path through net_rx_action:\nhttp://kerneltrap.org/mailarchive/linux-netdev/2007/10/16/345470\n\nA patch was submitted for that bug, but I think we missed a case.\n\nConsider the following scenario:\n\nINITIAL STATE\nCPU0 has one napi_struct A on its poll_list\nCPU1 is calling netpoll_send_skb and needs to call poll_napi on the same\nnapi_struct A that CPU0 has on its list\n\n\n\nCPU0\t\t\t\t\t\tCPU1\nnet_rx_action\t\t\t\t\tpoll_napi\n!list_empty (returns true)\t\t\tlocks poll_lock for A\n\t\t\t\t\t\t poll_one_napi\n\t\t\t\t\t\t  napi-\u003epoll\n\t\t\t\t\t\t   netif_rx_complete\n\t\t\t\t\t\t    __napi_complete\n\t\t\t\t\t\t    (removes A from poll_list)\nlist_entry(list-\u003enext)\n\n\nIn the above scenario, net_rx_action assumes that the per-cpu poll_list is\nexclusive to that cpu.  netpoll of course violates that, and because the netpoll\npath can dequeue from the poll list, its possible for CPU0 to detect a non-empty\nlist at the top of the while loop in net_rx_action, but have it become empty by\nthe time it calls list_entry.  Since the poll_list isn\u0027t surrounded by any other\nstructure, the returned data from that list_entry call in this situation is\ngarbage, and any number of crashes can result based on what exactly that garbage\nis.\n\nGiven that its not fasible for performance reasons to place exclusive locks\narround each cpus poll list to provide that mutal exclusion, I think the best\nsolution is modify the netpoll path in such a way that we continue to guarantee\nthat the poll_list for a cpu is in fact exclusive to that cpu.  To do this I\u0027ve\nimplemented the patch below.  It adds an additional bit to the state field in\nthe napi_struct.  When executing napi-\u003epoll from the netpoll_path, this bit will\nbe set. When a driver calls netif_rx_complete, if that bit is set, it will not\nremove the napi_struct from the poll_list.  That work will be saved for the next\niteration of net_rx_action.\n\nI\u0027ve tested this and it seems to work well.  About the biggest drawback I can\nsee to it is the fact that it might result in an extra loop through\nnet_rx_action in the event that the device is actually contended for (i.e. the\nnetpoll path actually preforms all the needed work no the device, and the call\nto net_rx_action winds up doing nothing, except removing the napi_struct from\nthe poll_list.  However I think this is probably a small price to pay, given\nthat the alternative is a crash.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b74ca3a896b9ab5f952bc440154758e708c48884",
      "tree": "cc67fc67ddd6ac20e25b1060ab633a4d5c4e6ee8",
      "parents": [
        "5a001a070e032bea1be563b13ebf9819cd5e54d4"
      ],
      "author": {
        "name": "Wang Chen",
        "email": "wangchen@cn.fujitsu.com",
        "time": "Mon Dec 08 01:14:16 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 08 01:14:16 2008 -0800"
      },
      "message": "netdevice: Kill netdev-\u003epriv\n\nThis is the last shoot of this series.\nAfter I removing all directly reference of netdev-\u003epriv, I am killing\n\"priv\" of \"struct net_device\" and fixing relative comments/docs.\n\nAnyone will not be allowed to reference netdev-\u003epriv directly.\nIf you want to reference the memory of private data, use netdev_priv()\ninstead.\nIf the private data is not allocted when alloc_netdev(), use\nnetdev-\u003eml_priv to point that memory after you creating that private\ndata.\n\nSigned-off-by: Wang Chen \u003cwangchen@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.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": "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": "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": "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": "505d4f73dda9e20d59da05008f1f5eb432613e71",
      "tree": "a30032d6474ce1d8dea1853c1907f4c3bdd8a19c",
      "parents": [
        "5d6d480908300a0c0b3be8b58567dfcef62c83a5"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@maxwell.aristanetworks.com",
        "time": "Fri Nov 07 22:54:20 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 07 22:54:20 2008 -0800"
      },
      "message": "net: Guaranetee the proper ordering of the loopback device. v2\n\nI was recently hunting a bug that occurred in network namespace\ncleanup.  In looking at the code it became apparrent that we have\nand will continue to have cases where if we have anything going\non in a network namespace there will be assumptions that the\nloopback device is present.   Things like sending igmp unsubscribe\nmessages when we bring down network devices invokes the routing\ncode which assumes that at least the loopback driver is present.\n\nTherefore to avoid magic initcall ordering hackery that is hard\nto follow and hard to get right insert a call to register the\nloopback device directly from net_dev_init().    This guarantes\nthat the loopback device is the first device registered and\nthe last network device to go away.\n\nBut do it carefully so we register the loopback device after\nwe clear dev_boot_phase.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@maxwell.aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3d8160b1493bcadca74fbb635d79b3928b8999cf",
      "tree": "901a01cd2170f4eddaba38e05b17683acb9cc0de",
      "parents": [
        "167c6274c30d17c41742096d1a12c32bd3b7e366"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 07 22:52:14 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 07 22:52:14 2008 -0800"
      },
      "message": "Revert \"net: Guaranetee the proper ordering of the loopback device.\"\n\nThis reverts commit ae33bc40c0d96d02f51a996482ea7e41c5152695.\n"
    },
    {
      "commit": "ae33bc40c0d96d02f51a996482ea7e41c5152695",
      "tree": "ab250ee1d4eac70ac77a4f40ed303373c41d9213",
      "parents": [
        "d0c082cea6dfb9b674b4f6e1e84025662dbd24e8"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 05 16:00:02 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 05 16:00:02 2008 -0800"
      },
      "message": "net: Guaranetee the proper ordering of the loopback device.\n\nI was recently hunting a bug that occurred in network namespace\ncleanup.  In looking at the code it became apparrent that we have\nand will continue to have cases where if we have anything going\non in a network namespace there will be assumptions that the\nloopback device is present.   Things like sending igmp unsubscribe\nmessages when we bring down network devices invokes the routing\ncode which assumes that at least the loopback driver is present.\n\nTherefore to avoid magic initcall ordering hackery that is hard\nto follow and hard to get right insert a call to register the\nloopback device directly from net_dev_init().    This guarantes\nthat the loopback device is the first device registered and\nthe last network device to go away.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6cf3f41e6c08bca6641a695449791c38a25f35ff",
      "tree": "a4e173960afe6712c112b3ddea1f229a695b7089",
      "parents": [
        "24f8b2385e03a4f4c8dac513d03b5eaa475822b9"
      ],
      "author": {
        "name": "Jay Vosburgh",
        "email": "fubar@us.ibm.com",
        "time": "Mon Nov 03 18:16:50 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 03 18:16:50 2008 -0800"
      },
      "message": "bonding, net: Move last_rx update into bonding recv logic\n\n\tThe only user of the net_device-\u003elast_rx field is bonding.\nThis patch adds a conditional update of last_rx to the bonding special\nlogic in skb_bond_should_drop, causing last_rx to only be updated when\nthe ARP monitor is running.\n\n\tThis frees network device drivers from the necessity of\nupdating last_rx, which can have cache line thrash issues.\n\nSigned-off-by: Jay Vosburgh \u003cfubar@us.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ad1d967c88e349c7e822ad75dd3247a2a50d2ea3",
      "tree": "4564a715df604f9e8816f60f7bc6ab0d211c848c",
      "parents": [
        "194dcdba5a11a0238aef7ed91f32df77cb31505b"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Oct 30 23:54:35 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 30 23:54:35 2008 -0700"
      },
      "message": "net: delete excess kernel-doc notation\n\nRemove excess kernel-doc function parameters from networking header\n\u0026 driver files:\n\nWarning(include/net/sock.h:946): Excess function parameter or struct member \u0027sk\u0027 description in \u0027sk_filter_release\u0027\nWarning(include/linux/netdevice.h:1545): Excess function parameter or struct member \u0027cpu\u0027 description in \u0027netif_tx_lock\u0027\nWarning(drivers/net/wan/z85230.c:712): Excess function parameter or struct member \u0027regs\u0027 description in \u0027z8530_interrupt\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b63365a2d60268a3988285d6c3c6003d7066f93a",
      "tree": "85bd8f91f3de954c697aa44544b4adf191e7f5aa",
      "parents": [
        "2e3f92dad6bdbee796274bae5c1c50a6ddd31cbb"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Oct 23 01:11:29 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 23 01:11:29 2008 -0700"
      },
      "message": "net: Fix disjunct computation of netdev features\n\nMy change\n\n    commit e2a6b85247aacc52d6ba0d9b37a99b8d1a3e0d83\n    net: Enable TSO if supported by at least one device\n\ndidn\u0027t do what was intended because the netdev_compute_features\nfunction was designed for conjunctions.  So what happened was that\nit would simply take the TSO status of the last constituent device.\n\nThis patch extends it to support both conjunctions and disjunctions\nunder the new name of netdev_increment_features.\n\nIt also adds a new function netdev_fix_features which does the\nsanity checking that usually occurs upon registration.  This ensures\nthat the computation doesn\u0027t result in an illegal combination\nsince this checking is absent when the change is initiated via\nethtool.\n\nThe two users of netdev_compute_features have been converted.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "113aa838ec3a235d883f8357d31d90e16c47fc89",
      "tree": "4e25254fb0402aea01074244879f574e213a9f31",
      "parents": [
        "510149e31974fdbb2c00c9bee6c0e2a688e61c85"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 19:01:08 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 13 19:01:08 2008 -0700"
      },
      "message": "net: Rationalise email address: Network Specific Parts\n\nClean up the various different email addresses of mine listed in the code\nto a single current and valid address. As Dave says his network merges\nfor 2.6.28 are now done this seems a good point to send them in where\nthey won\u0027t risk disrupting real changes.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "396138f03f4521c55ecc3a5dd75d4c56e6323244",
      "tree": "61dc43e540c861a4b05753da56a9fe2a19bea206",
      "parents": [
        "2e5f032095ff101274dfb03d5fd5e06d9aeb83cd"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@wantstofly.org",
        "time": "Tue Oct 07 13:46:07 2008 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 08 17:24:16 2008 -0700"
      },
      "message": "dsa: add support for Trailer tagging format\n\nThis adds support for the Trailer switch tagging format.  This is\nanother tagging that doesn\u0027t explicitly mark tagged packets with a\ndistinct ethertype, so that we need to add a similar hack in the\nreceive path as for the Original DSA tagging format.\n\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nTested-by: Byron Bradley \u003cbyron.bbradley@gmail.com\u003e\nTested-by: Tim Ellis \u003ctim.ellis@mac.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf85d08fdf4548ee46657ccfb7f9949a85145db5",
      "tree": "583e251b0d772c23ca931a207e9ac0995d679f44",
      "parents": [
        "91da11f870f00a3322b81c73042291d7f0be5a17"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@wantstofly.org",
        "time": "Tue Oct 07 13:45:02 2008 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 08 17:19:56 2008 -0700"
      },
      "message": "dsa: add support for original DSA tagging format\n\nMost of the DSA switches currently in the field do not support the\nEthertype DSA tagging format that one of the previous patches added\nsupport for, but only the original DSA tagging format.\n\nThe original DSA tagging format carries the same information as the\nEthertype DSA tagging format, but with the difference that it does not\nhave an ethertype field.  In other words, when receiving a packet that\nis tagged with an original DSA tag, there is no way of telling in\neth_type_trans() that this packet is in fact a DSA-tagged packet.\n\nThis patch adds a hook into eth_type_trans() which is only compiled in\nif support for a switch chip that doesn\u0027t support Ethertype DSA is\nselected, and which checks whether there is a DSA switch driver\ninstance attached to this network device which uses the old tag format.\nIf so, it sets the protocol field to ETH_P_DSA without looking at the\npacket, so that the packet ends up in the right place.\n\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nTested-by: Nicolas Pitre \u003cnico@marvell.com\u003e\nTested-by: Peter van Valderen \u003clinux@ddcrew.com\u003e\nTested-by: Dirk Teurlings \u003cdirk@upexia.nl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "91da11f870f00a3322b81c73042291d7f0be5a17",
      "tree": "670fedb54ee3c8fa403e9095f6d7e95ee560f346",
      "parents": [
        "176eaa589b3d242f25f24e472883fcce5f196777"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@wantstofly.org",
        "time": "Tue Oct 07 13:44:02 2008 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 08 17:15:19 2008 -0700"
      },
      "message": "net: Distributed Switch Architecture protocol support\n\nDistributed Switch Architecture is a protocol for managing hardware\nswitch chips.  It consists of a set of MII management registers and\ncommands to configure the switch, and an ethernet header format to\nsignal which of the ports of the switch a packet was received from\nor is intended to be sent to.\n\nThe switches that this driver supports are typically embedded in\naccess points and routers, and a typical setup with a DSA switch\nlooks something like this:\n\n\t+-----------+       +-----------+\n\t|           | RGMII |           |\n\t|           +-------+           +------ 1000baseT MDI (\"WAN\")\n\t|           |       |  6-port   +------ 1000baseT MDI (\"LAN1\")\n\t|    CPU    |       |  ethernet +------ 1000baseT MDI (\"LAN2\")\n\t|           |MIImgmt|  switch   +------ 1000baseT MDI (\"LAN3\")\n\t|           +-------+  w/5 PHYs +------ 1000baseT MDI (\"LAN4\")\n\t|           |       |           |\n\t+-----------+       +-----------+\n\nThe switch driver presents each port on the switch as a separate\nnetwork interface to Linux, polls the switch to maintain software\nlink state of those ports, forwards MII management interface\naccesses to those network interfaces (e.g. as done by ethtool) to\nthe switch, and exposes the switch\u0027s hardware statistics counters\nvia the appropriate Linux kernel interfaces.\n\nThis initial patch supports the MII management interface register\nlayout of the Marvell 88E6123, 88E6161 and 88E6165 switch chips, and\nsupports the \"Ethertype DSA\" packet tagging format.\n\n(There is no officially registered ethertype for the Ethertype DSA\npacket format, so we just grab a random one.  The ethertype to use\nis programmed into the switch, and the switch driver uses the value\nof ETH_P_EDSA for this, so this define can be changed at any time in\nthe future if the one we chose is allocated to another protocol or\nif Ethertype DSA gets its own officially registered ethertype, and\neverything will continue to work.)\n\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nTested-by: Nicolas Pitre \u003cnico@marvell.com\u003e\nTested-by: Byron Bradley \u003cbyron.bbradley@gmail.com\u003e\nTested-by: Tim Ellis \u003ctim.ellis@mac.com\u003e\nTested-by: Peter van Valderen \u003clinux@ddcrew.com\u003e\nTested-by: Dirk Teurlings \u003cdirk@upexia.nl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf04a4c764cd3e651a64b3e667bb6a673ead99e1",
      "tree": "61fc379e33ca08e68326b9f76577fd2a57435034",
      "parents": [
        "db4148da2cc84c31419b5e3ae3115ac6e11817a1"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Sep 30 02:22:14 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 30 02:22:14 2008 -0700"
      },
      "message": "netdev: use const for some name functions\n\ndev_change_name and netdev_drivername should use const char on\nparameters that are read-only input values. The strcpy to newname is\nnot needed since newname is not used later in function.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0b815a1a6d43ab498674b8430c8c35ab08487a16",
      "tree": "18ea2e50f36c1d38127c535f619e80209bfc4e07",
      "parents": [
        "83bfba5fca16d040bb78a24148da844db3de6a76"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Sep 22 21:28:11 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 22 21:28:11 2008 -0700"
      },
      "message": "net: network device name ifalias support\n\nThis patch add support for keeping an additional character alias\nassociated with an network interface. This is useful for maintaining\nthe SNMP ifAlias value which is a user defined value. Routers use this\nto hold information like which circuit or line it is connected to. It\nis just an arbitrary text label on the network device.\n\nThere are two exposed interfaces with this patch, the value can be\nread/written either via netlink or sysfs.\n\nThis could be maintained just by the snmp daemon, but it is more\ngenerally useful for other management tools, and the kernel is good\nplace to act as an agreed upon interface to store it.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cc6533e98a7f3cb7fce9d740da49195c7aa523a4",
      "tree": "23b1a33c9c6894f799808e7dcbcf3afeb1d71192",
      "parents": [
        "c27f339af90bb874a7a9c680b17abfd32d4a727b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 04 23:04:08 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 04 23:04:08 2008 -0700"
      },
      "message": "net: Kill plain NET_XMIT_BYPASS.\n\ndst_input() was doing something completely absurd, looping\non skb-\u003edst-\u003einput() if NET_XMIT_BYPASS was seen, but these\nfunctions never return such an error.\n\nAnd as a result plain ole\u0027 NET_XMIT_BYPASS has no more\nreferences and can be completely killed off.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "378a2f090f7a478704a372a4869b8a9ac206234e",
      "tree": "cf324a45a9dc21231d1d3225c51c9d5d2b57bbee",
      "parents": [
        "6e583ce5242f32e925dcb198f7123256d0798370"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Mon Aug 04 22:31:03 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 04 22:31:03 2008 -0700"
      },
      "message": "net_sched: Add qdisc __NET_XMIT_STOLEN flag\n\nPatrick McHardy \u003ckaber@trash.net\u003e noticed:\n\"The other problem that affects all qdiscs supporting actions is\nTC_ACT_QUEUED/TC_ACT_STOLEN getting mapped to NET_XMIT_SUCCESS\neven though the packet is not queued, corrupting upper qdiscs\u0027\nqlen counters.\"\n\nand later explained:\n\"The reason why it translates it at all seems to be to not increase\nthe drops counter. Within a single qdisc this could be avoided by\nother means easily, upper qdiscs would still increase the counter\nwhen we return anything besides NET_XMIT_SUCCESS though.\n\nThis means we need a new NET_XMIT return value to indicate this to\nthe upper qdiscs. So I\u0027d suggest to introduce NET_XMIT_STOLEN,\nreturn that to upper qdiscs and translate it to NET_XMIT_SUCCESS\nin dev_queue_xmit, similar to NET_XMIT_BYPASS.\"\n\nDavid Miller \u003cdavem@davemloft.net\u003e noticed:\n\"Maybe these NET_XMIT_* values being passed around should be a set of\nbits. They could be composed of base meanings, combined with specific\nattributes.\n\nSo you could say \"NET_XMIT_DROP | __NET_XMIT_NO_DROP_COUNT\"\n\nThe attributes get masked out by the top-level -\u003eenqueue() caller,\nsuch that the base meanings are the only thing that make their\nway up into the stack. If it\u0027s only about communication within the\nqdisc tree, let\u0027s simply code it that way.\"\n\nThis patch is trying to realize these ideas.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c3f26a269c2421f97f10cf8ed05d5099b573af4d",
      "tree": "d0602cbb48742b3e39ab6bdcaa08c342d4cd2cae",
      "parents": [
        "967ab999a090b1a4e7d3c7febfd6d89b42fb4cf4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 31 16:58:50 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 31 16:58:50 2008 -0700"
      },
      "message": "netdev: Fix lockdep warnings in multiqueue configurations.\n\nWhen support for multiple TX queues were added, the\nnetif_tx_lock() routines we converted to iterate over\nall TX queues and grab each queue\u0027s spinlock.\n\nThis causes heartburn for lockdep and it\u0027s not a healthy\nthing to do with lots of TX queues anyways.\n\nSo modify this to use a top-level lock and a \"frozen\"\nstate for the individual TX queues.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d29f749e252bcdbfe7a75a58f0ee92da16f127c0",
      "tree": "701734c2beed075d603d28cc4a343ecf1d4e475b",
      "parents": [
        "b32d13102d39ed411d152a7ffcc5f66d5b3b1b49"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Jul 22 14:09:06 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 22 14:09:06 2008 -0700"
      },
      "message": "net: Fix build failure with \u0027make mandocs\u0027.\n\nThe function header comments have to go with the functions\nthey are documenting, or things go horribly wrong when we\ntry to process them with the docbook tools.\n\nWarning(include/linux/netdevice.h:1006): No description found for parameter \u0027dev_queue\u0027\nWarning(include/linux/netdevice.h:1033): No description found for parameter \u0027dev_queue\u0027\nWarning(include/linux/netdevice.h:1067): No description found for parameter \u0027dev_queue\u0027\nWarning(include/linux/netdevice.h:1093): No description found for parameter \u0027dev_queue\u0027\nWarning(include/linux/netdevice.h:1474): No description found for parameter \u0027txq\u0027\nError(net/core/dev.c:1674): cannot understand prototype: \u0027u32 simple_tx_hashrnd; \u0027\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6579e57b31d79d31d9b806e41ba48774e73257dc",
      "tree": "03ba72024a1982ee76b8a891a443b0fdfb6d7c93",
      "parents": [
        "7943986ca1138ac99597b1aa4dc893012dcfdc08"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Jul 21 13:31:48 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 21 13:31:48 2008 -0700"
      },
      "message": "net: Print the module name as part of the watchdog message\n\nAs suggested by Dave:\n\nThis patch adds a function to get the driver name from a struct net_device,\nand consequently uses this in the watchdog timeout handler to print as \npart of the message. \n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3072367300aa8c779e3a14ee8e89de079e90f3ad",
      "tree": "7f74c5b8fdb300532fbbc83ba00d6d1d17af020e",
      "parents": [
        "72b25a913ed9b1ab49c7022adaf3f271a65ea219"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 22:50:15 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 22:50:15 2008 -0700"
      },
      "message": "pkt_sched: Manage qdisc list inside of root qdisc.\n\nIdea is from Patrick McHardy.\n\nInstead of managing the list of qdiscs on the device level, manage it\nin the root qdisc of a netdev_queue.  This solves all kinds of\nvisibility issues during qdisc destruction.\n\nThe way to iterate over all qdiscs of a netdev_queue is to visit\nthe netdev_queue-\u003eqdisc, and then traverse it\u0027s list.\n\nThe only special case is to ignore builting qdiscs at the root when\ndumping or doing a qdisc_lookup().  That was not needed previously\nbecause builtin qdiscs were not added to the device\u0027s qdisc_list.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "83874000929ed63aef30b44083a9f713135ff040",
      "tree": "7646fd185751cad8665eca19aa3f87d13c37eade",
      "parents": [
        "c7e4f3bbb4ba4e48ab3b529d5016e454cee1ccd6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 00:53:03 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:30 2008 -0700"
      },
      "message": "pkt_sched: Kill netdev_queue lock.\n\nWe can simply use the qdisc-\u003eq.lock for all of the\nqdisc tree synchronization.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ead81cc5fc6d996db6afb20f211241612610a07a",
      "tree": "5ffc3c7960f6ba755fe6e44eda0b82cdb8209180",
      "parents": [
        "15b458fa65cbba395724a99ab1b7d3785ca76c1c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 00:50:32 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:26 2008 -0700"
      },
      "message": "netdevice: Move qdisc_list back into net_device proper.\n\nAnd give it it\u0027s own lock.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "37437bb2e1ae8af470dfcd5b4ff454110894ccaf",
      "tree": "1795e78a7648252b0c92c972df12b776a28437d7",
      "parents": [
        "7698b4fcabcd790efc4f226bada1e7b5870653af"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 02:15:04 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:20 2008 -0700"
      },
      "message": "pkt_sched: Schedule qdiscs instead of netdev_queue.\n\nWhen we have shared qdiscs, packets come out of the qdiscs\nfor multiple transmit queues.\n\nTherefore it doesn\u0027t make any sense to schedule the transmit\nqueue when logically we cannot know ahead of time the TX\nqueue of the SKB that the qdisc-\u003edequeue() will give us.\n\nJust for sanity I added a BUG check to make sure we never\nget into a state where the noop_qdisc is scheduled.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e2627c8c2241bce45e368e150654d076b58a4595",
      "tree": "e3ad7d1867339f254a324ba1acd5d8bdac1aca76",
      "parents": [
        "d3b753db7c4f1f37a98b51974d484fda5d86dab5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 00:56:32 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:18 2008 -0700"
      },
      "message": "pkt_sched: Make QDISC_RUNNING a qdisc state.\n\nCurrently it is associated with a netdev_queue, but when we have\nqdisc sharing that no longer makes any sense.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d3b753db7c4f1f37a98b51974d484fda5d86dab5",
      "tree": "6596288854d9626f935ddf9c014471a4c38b5c74",
      "parents": [
        "b4c21639ab0f6df07ab7624a8c2f974936708ae5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 20:14:35 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:18 2008 -0700"
      },
      "message": "pkt_sched: Move gso_skb into Qdisc.\n\nWe liberate any dangling gso_skb during qdisc destruction.\n\nIt really only matters for the root qdisc.  But when qdiscs\ncan be shared by multiple netdev_queue objects, we can\u0027t\nhave the gso_skb in the netdev_queue any more.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "92831bc395ac8390bf759775c50cb6f90c6eb03d",
      "tree": "cd112263fde634090d10e53eb722eab5b03ee2ed",
      "parents": [
        "263ba3204a434d0ca851e1321b31cd58376b86cb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 03:48:01 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:16 2008 -0700"
      },
      "message": "netdev: Kill plain netif_schedule()\n\nNo more users.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eae792b722fef08dcf3aee88266ee7def9710757",
      "tree": "a864c90974a8e998d56ee9f04801eb3f81a6bacf",
      "parents": [
        "e3c50d5d25ac09efd9acbe2b2a3e365466de84ed"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 03:03:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:10 2008 -0700"
      },
      "message": "netdev: Add netdev-\u003eselect_queue() method.\n\nDevices or device layers can set this to control the queue selection\nperformed by dev_pick_tx().\n\nThis function runs under RCU protection, which allows overriding\nfunctions to have some way of synchronizing with things like dynamic\n-\u003ereal_num_tx_queues adjustments.\n\nThis makes the spinlock prefetch in dev_queue_xmit() a little bit\nless effective, but that\u0027s the price right now for correctness.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e3c50d5d25ac09efd9acbe2b2a3e365466de84ed",
      "tree": "dc5bc3322f9e4829c2143fc4fc60532fd84ab9a1",
      "parents": [
        "6b0fb1261a4655613bed5dac0e935e733969e999"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 02:58:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:09 2008 -0700"
      },
      "message": "netdev: netdev_priv() can now be sane again.\n\nThe private area of a netdev is now at a fixed offset once more.\n\nUnfortunately, some assumptions that netdev_priv() \u003d\u003d netdev-\u003epriv\ncrept back into the tree.  In particular this happened in the\nloopback driver.  Make it use netdev-\u003eml_priv.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6b0fb1261a4655613bed5dac0e935e733969e999",
      "tree": "2f6a57f1c0e674a0a56be42de2f6f9251472616b",
      "parents": [
        "fd2ea0a79faad824258af5dcec1927aa24d81c16"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 02:58:10 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:08 2008 -0700"
      },
      "message": "netdev: Kill struct net_device_subqueue and netdev-\u003eegress_subqueue*\n\nNo longer used.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fd2ea0a79faad824258af5dcec1927aa24d81c16",
      "tree": "644fd4ce92227cc319c7a54c63ea07a96b8c6b8d",
      "parents": [
        "24344d2600108b9b79a60c0e4c43b3c499856d14"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 01:56:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:07 2008 -0700"
      },
      "message": "net: Use queue aware tests throughout.\n\nThis effectively \"flips the switch\" by making the core networking\nand multiqueue-aware drivers use the new TX multiqueue structures.\n\nNon-multiqueue drivers need no changes.  The interfaces they use such\nas netif_stop_queue() degenerate into an operation on TX queue zero.\nSo everything \"just works\" for them.\n\nCode that really wants to do \"X\" to all TX queues now invokes a\nroutine that does so, such as netif_tx_wake_all_queues(),\nnetif_tx_stop_all_queues(), etc.\n\npktgen and netpoll required a little bit more surgery than the others.\n\nIn particular the pktgen changes, whilst functional, could be largely\nimproved.  The initial check in pktgen_xmit() will sometimes check the\nwrong queue, which is mostly harmless.  The thing to do is probably to\ninvoke fill_packet() earlier.\n\nThe bulk of the netpoll changes is to make the code operate solely on\nthe TX queue indicated by by the SKB queue mapping.\n\nSetting of the SKB queue mapping is entirely confined inside of\nnet/core/dev.c:dev_pick_tx().  If we end up needing any kind of\nspecial semantics (drops, for example) it will be implemented here.\n\nFinally, we now have a \"real_num_tx_queues\" which is where the driver\nindicates how many TX queues are actually active.\n\nWith IGB changes from Jeff Kirsher.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "09e83b5d7d1878065e2453239b49b684cd0fe4e5",
      "tree": "a08d06c81d7bcd47e432443e24b126101ea1f2b9",
      "parents": [
        "e8a0464cc950972824e2e128028ae3db666ec1ed"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 01:52:12 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:03 2008 -0700"
      },
      "message": "netdev: Kill NETIF_F_MULTI_QUEUE.\n\nThere is no need for a feature bit for something that\ncan be tested by simply checking the TX queue count.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e8a0464cc950972824e2e128028ae3db666ec1ed",
      "tree": "5022b95396c0f3b313531bc39b19543c03551b9a",
      "parents": [
        "070825b3840a743e21ebcc44f8279708a4fed977"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 00:34:19 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:00 2008 -0700"
      },
      "message": "netdev: Allocate multiple queues for TX.\n\nalloc_netdev_mq() now allocates an array of netdev_queue\nstructures for TX, based upon the queue_count argument.\n\nFurthermore, all accesses to the TX queues are now vectored\nthrough the netdev_get_tx_queue() and netdev_for_each_tx_queue()\ninterfaces.  This makes it easy to grep the tree for all\nthings that want to get to a TX queue of a net device.\n\nProblem spots which are not really multiqueue aware yet, and\nonly work with one queue, can easily be spotted by grepping\nfor all netdev_get_tx_queue() calls that pass in a zero index.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e308a5d806c852f56590ffdd3834d0df0cbed8d7",
      "tree": "294ff654e90950f5162737c26f4799b0b710b748",
      "parents": [
        "f1f28aa3510ddb84c966bac65611bb866c77a092"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 00:13:44 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 00:13:44 2008 -0700"
      },
      "message": "netdev: Add netdev-\u003eaddr_list_lock protection.\n\nAdd netif_addr_{lock,unlock}{,_bh}() helpers.\n\nUse them to protect operations that operate on or read\nthe network device unicast and multicast address lists.\n\nAlso use them in cases where the code simply wants to\nblock calls into the driver\u0027s -\u003eset_rx_mode() and\n-\u003eset_multicast_list() methods.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f1f28aa3510ddb84c966bac65611bb866c77a092",
      "tree": "dc8509a61667c52ee43df64bf69566569538b691",
      "parents": [
        "f66ac03d497c162c70cd0ccc802ce1777073cdf3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 00:08:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 00:08:33 2008 -0700"
      },
      "message": "netdev: Add addr_list_lock to struct net_device.\n\nThis will be used to protect the per-device unicast and multicast\naddress lists, as well as the callbacks into the drivers which\nconfigure such state such as -\u003eset_rx_mode() and -\u003eset_multicast_list().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bc1d0411b804ad190cdadabac48a10067f17b9e6",
      "tree": "0a38da614b6bb46f2ffa2378aca25043a2b33a7c",
      "parents": [
        "6aa895b047720f71ec4eb11452f7c3ce8426941f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jul 14 22:49:30 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 22:49:30 2008 -0700"
      },
      "message": "vlan: deliver packets received with VLAN acceleration to network taps\n\nWhen VLAN header stripping is used, packets currently bypass packet\nsockets (and other network taps) completely. For locally existing\nVLANs, they appear directly on the VLAN device, for unknown VLANs\nthey are silently dropped.\n\nAdd a new function netif_nit_deliver() to deliver incoming packets\nto all network interface taps and use it in __vlan_hwaccel_rx() to\nmake VLAN packets visible on the underlying device.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d8156534040996f6a93a24d3592d5d587f2587e5",
      "tree": "3b9528f1551560502af9d8686b4615551fe38795",
      "parents": [
        "d3352520273426e4c16e91d189aa8aa7ee5e96c5"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Tue Jul 08 15:13:05 2008 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jul 11 01:20:33 2008 -0400"
      },
      "message": "net: add netif_napi_del function to allow for removal of napistructs\n\nAdds netif_napi_del function which is used to remove the napi struct from\nthe netdev napi_list in cases where CONFIG_NETPOLL was enabled.\nThe motivation for adding this is to handle the case in which the number of\nqueues on a device changes due to a configuration change.  Previously the\nnapi structs for each queue would be left in the list until the netdev was\nfreed.\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: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "79d16385c7f287a33ea771c4dbe60ae43f791b49",
      "tree": "858bfe84e52d88356d5d0b49efc5148a0870ccf9",
      "parents": [
        "b19fa1fa91845234961c64dbd564671aa7c0fd27"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:14:46 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:14:46 2008 -0700"
      },
      "message": "netdev: Move atomic queue state bits into netdev_queue.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b19fa1fa91845234961c64dbd564671aa7c0fd27",
      "tree": "efb09da87299ef503b59396b69a7667f1650e378",
      "parents": [
        "c773e847ea8f6812804e40f52399c6921a00eab1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:14:24 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:14:24 2008 -0700"
      },
      "message": "net: Delete NETDEVICES_MULTIQUEUE kconfig option.\n\nMultiple TX queue support is a core networking feature.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c773e847ea8f6812804e40f52399c6921a00eab1",
      "tree": "952e0e262cc0b0f2136bc2a62938ae1d186f896a",
      "parents": [
        "eb6aafe3f843cb0e939546c03540a3b4911b6964"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:13:53 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:13:53 2008 -0700"
      },
      "message": "netdev: Move _xmit_lock and xmit_lock_owner into netdev_queue.\n\nAccesses are mostly structured such that when there are multiple TX\nqueues the code transformations will be a little bit simpler.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "86d804e10a37cd86f16bf72386c37e843a98a74b",
      "tree": "04483a937f11c752aea998298a27fc79e6851b2d",
      "parents": [
        "970565bbad0c7b98db0d14131a69e5a0f4445d49"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:11:25 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:11:25 2008 -0700"
      },
      "message": "netdev: Make netif_schedule() routines work with netdev_queue objects.\n\nOnly plain netif_schedule() remains taking a net_device, mostly as a\ncompatability item while we transition the rest of these interfaces.\n\nEverything else calls netif_schedule_queue() or __netif_schedule(),\nboth of which take a netdev_queue pointer.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "970565bbad0c7b98db0d14131a69e5a0f4445d49",
      "tree": "59ac641da5b22bb5ea6a0a333ceaa907f9959d10",
      "parents": [
        "c2aa288548a29d909ec875e81137fb0dbbb420b7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:10:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:10:33 2008 -0700"
      },
      "message": "netdev: Move gso_skb into netdev_queue.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee609cb36220d18c0cf476b066a5ab7e6f6d3a69",
      "tree": "7b6675143c304a82ffe52943cf94e6f822da303e",
      "parents": [
        "74d58a0c1d5b348a8d4ea9643b573a6ab455a3f3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 22:58:37 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 22:58:37 2008 -0700"
      },
      "message": "netdev: Move next_sched into struct netdev_queue.\n\nWe schedule queues, not the device, for output queue processing in BH.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "816f3258e70db38d6d92c8d871377179fd69160f",
      "tree": "7ab28132592c82e2ac40317733ea1dd7d6f4e5b5",
      "parents": [
        "b0e1e6462df3c5944010b3328a546d8fe5d932cd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 22:49:00 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 22:49:00 2008 -0700"
      },
      "message": "netdev: Kill qdisc_ingress, use netdev-\u003erx_queue.qdisc instead.\n\nNow that our qdisc management is bi-directional, per-queue, and fully\northogonal, there is no reason to have a special ingress qdisc pointer\nin struct net_device.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b0e1e6462df3c5944010b3328a546d8fe5d932cd",
      "tree": "37e3f86d09d8b37deb06cf1c142baeb8246bbf97",
      "parents": [
        "555353cfa1aee293de445bfa6de43276138ddd82"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 17:42:10 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 17:42:10 2008 -0700"
      },
      "message": "netdev: Move rest of qdisc state into struct netdev_queue\n\nNow qdisc, qdisc_sleeping, and qdisc_list also live there.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "555353cfa1aee293de445bfa6de43276138ddd82",
      "tree": "b5daba85806b8e36731c4a474aac97f1a0140a51",
      "parents": [
        "dc2b48475a0a36f8b3bbb2da60d3a006dc5c2c84"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 17:33:13 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 17:33:13 2008 -0700"
      },
      "message": "netdev: The ingress_lock member is no longer needed.\n\nEvery qdisc is assosciated with a queue, and in the case of ingress\nqdiscs that will now be netdev-\u003erx_queue so using that queue\u0027s lock is\nthe thing to do.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dc2b48475a0a36f8b3bbb2da60d3a006dc5c2c84",
      "tree": "b2421a338840bd1c675f4f91de7c7cf03863fb78",
      "parents": [
        "5ce2d488fe039ddd86a638496cf704df86c74eeb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 17:18:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 17:18:23 2008 -0700"
      },
      "message": "netdev: Move queue_lock into struct netdev_queue.\n\nThe lock is now an attribute of the device queue.\n\nOne thing to notice is that \"suspicious\" places\nemerge which will need specific training about\nmultiple queue handling.  They are so marked with\nexplicit \"netdev-\u003erx_queue\" and \"netdev-\u003etx_queue\"\nreferences.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bb949fbd1878973c3539d9aecff52f284482a937",
      "tree": "e8bde854b18be79723502167c16e2131914a75b7",
      "parents": [
        "e65d22e18038eed7307276e46810d884c402d57d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 16:55:56 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 16:55:56 2008 -0700"
      },
      "message": "netdev: Create netdev_queue abstraction.\n\nA netdev_queue is an entity managed by a qdisc.\n\nCurrently there is one RX and one TX queue, and a netdev_queue merely\ncontains a backpointer to the net_device.\n\nThe Qdisc struct is augmented with a netdev_queue pointer as well.\n\nEventually the \u0027dev\u0027 Qdisc member will go away and we will have the\nresulting hierarchy:\n\n\tnet_device --\u003e netdev_queue --\u003e Qdisc\n\nAlso, qdisc_alloc() and qdisc_create_dflt() now take a netdev_queue\npointer argument.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eca9ebac651f774d8b10fce7c5d173c3c3d3394f",
      "tree": "58b4117a0820dff43d4faa7fdcae5cd7723674c7",
      "parents": [
        "7c85fbf0657f216557b0c9c4a2e4e07f37d8bb8c"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 05 21:26:13 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 05 21:26:13 2008 -0700"
      },
      "message": "net: Add GARP applicant-only participant\n\nAdd an implementation of the GARP (Generic Attribute Registration Protocol)\napplicant-only participant. This will be used by the following patch to\nadd GVRP support to the VLAN code.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1b63ba8a86c85524a8d7e5953b314ce71ebcb9c9",
      "tree": "fe3dc41cbb47ae12b7c3faf6a88b097349e50d5a",
      "parents": [
        "e35c3269edba151e1c703d87068a28ce2cd65bb0",
        "d420895efb259a78dda50f95289571faa6e10e41"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 28 01:19:40 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 28 01:19:40 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/wireless/iwlwifi/iwl4965-base.c\n"
    },
    {
      "commit": "c88e6f51c2154c7606f7e281bcca2d1a2c89d7b2",
      "tree": "b26181f438bff08e6f63afe73c1b66ed240dcbec",
      "parents": [
        "ede16af4cdbd21fa15d4178beb7c6fcbcccd07e9"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jun 27 19:54:54 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 27 19:54:54 2008 -0700"
      },
      "message": "include/linux/netdevice.h: don\u0027t export MAX_HEADER to userspace\n\nDue to the CONFIG_\u0027s the value is anyway not correct in userspace.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0187bdfb05674147774ca79a79942537f3ad54bd",
      "tree": "43980261ce9e2b6ef76356dbbbc7efe3dbb60a02",
      "parents": [
        "2e3216cd54b142ba605e87522e15f42e0c4e3996"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Thu Jun 19 16:15:47 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 19 16:15:47 2008 -0700"
      },
      "message": "net: Disable LRO on devices that are forwarding\n\nLarge Receive Offload (LRO) is only appropriate for packets that are\ndestined for the host, and should be disabled if received packets may be\nforwarded.  It can also confuse the GSO on output.\n\nAdd dev_disable_lro() function which uses the appropriate ethtool ops to\ndisable LRO if enabled.\n\nAdd calls to dev_disable_lro() in br_add_if() and functions that enable\nIPv4 and IPv6 forwarding.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dad9b335c6940de2746a9788eb456d09cf102f81",
      "tree": "c74092de70d7c2c9ba88bf580bc404133b55c490",
      "parents": [
        "dd574dbfcc9e74e7dd8fd59ae0075d23e71a3da1"
      ],
      "author": {
        "name": "Wang Chen",
        "email": "wangchen@cn.fujitsu.com",
        "time": "Wed Jun 18 01:48:28 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 18 01:48:28 2008 -0700"
      },
      "message": "netdevice: Fix promiscuity and allmulti overflow\n\nMax of promiscuity and allmulti plus positive @inc can cause overflow.\nFox example: when allmulti\u003d0xFFFFFFFF, any caller give dev_set_allmulti() a\npositive @inc will cause allmulti be off.\nThis is not what we want, though it\u0027s rare case.\nThe fix is that only negative @inc will cause allmulti or promiscuity be off\nand when any caller makes the counters touch the roof, we return error.\n\nChange of v2:\nChange void function dev_set_promiscuity/allmulti to return int.\nSo callers can get the overflow error.\nCaller\u0027s fix will be done later.\n\nChange of v3:\n1. Since we return error to caller, we don\u0027t need to print KERN_ERROR,\nKERN_WARNING is enough.\n2. In dev_set_promiscuity(), if __dev_set_promiscuity() failed, we\nreturn at once.\n\nSigned-off-by: Wang Chen \u003cwangchen@cn.fujitsu.com\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5bbc1722d52ad3df062d5742a7e958276e57ebd7",
      "tree": "8aa544f9a8623fba2fae933819627ceb839eac1f",
      "parents": [
        "30902dc3cb0ea1cfc7ac2b17bcf478ff98420d74",
        "ae7b6487ec9c2e2a1551b9d291aa0dbbe0addf48"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 17 21:37:14 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 17 21:37:14 2008 -0700"
      },
      "message": "Merge branch \u0027davem-next\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6\n"
    },
    {
      "commit": "9d45abe1c2949183e5d9cb25721bf1c42c7b5e3b",
      "tree": "00bbbbcd31baaaf431b4cd2529542eb9db603fda",
      "parents": [
        "cb61cb9b8b5ef6c2697d84e5015e314626eb2fba"
      ],
      "author": {
        "name": "Wang Chen",
        "email": "wangchen@cn.fujitsu.com",
        "time": "Tue Jun 17 21:12:48 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 17 21:12:48 2008 -0700"
      },
      "message": "netdevice: change net_device-\u003epromiscuity/allmulti to unsigned int\n\nThe comments of dev_set_allmulti/promiscuity() is that \"While the count in\nthe device remains above zero...\". So negative count is useless.\nFix the type of the counter from \"int\" to \"unsigned int\".\n\nSigned-off-by: Wang Chen \u003cwangchen@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b8a9787eddb0e4665f31dd1d64584732b2b5d051",
      "tree": "08b7537e70b6a96bc04d231d31ccd644e1387e62",
      "parents": [
        "b59f9f74c4c0a569398f08c34a877f1b7b457496"
      ],
      "author": {
        "name": "Jay Vosburgh",
        "email": "fubar@us.ibm.com",
        "time": "Fri Jun 13 18:12:04 2008 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Jun 18 00:00:04 2008 -0400"
      },
      "message": "bonding: Allow setting max_bonds to zero\n\n\tPermit bonding to function rationally if max_bonds is set to\nzero.  This will load the module, but create no master devices (which can\nbe created via sysfs).\n\n\tRequires some change to bond_create_sysfs; currently, the\nnetdev sysfs directory is determined from the first bonding device created,\nbut this is no longer possible.  Instead, an interface from net/core is\ncreated to create and destroy files in net_class.\n\n\tBased on a patch submitted by Phil Oester \u003ckernel@linuxaces.com\u003e.\nModified by Jay Vosburgh to fix the sysfs issue mentioned above and to\nupdate the documentation.\n\nSigned-off-by: Phil Oester \u003ckernel@linuxace.com\u003e\nSigned-off-by: Jay Vosburgh \u003cfubar@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c1da4ac752b8b0411791d26c678fcf23d2eed242",
      "tree": "294fdfa9180e3094d0f3537255594feaf345bd8c",
      "parents": [
        "743d32ad3688a6035374885809e1e982adbf16b1"
      ],
      "author": {
        "name": "Or Gerlitz",
        "email": "ogerlitz@voltaire.com",
        "time": "Fri Jun 13 18:12:00 2008 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Jun 17 23:59:41 2008 -0400"
      },
      "message": "net/core: add NETDEV_BONDING_FAILOVER event\n\nAdd NETDEV_BONDING_FAILOVER event to be used in a successive patch\nby bonding to announce fail-over for the active-backup mode through the\nnetdev events notifier chain mechanism. Such an event can be of use for the\nRDMA CM (communication manager) to let native RDMA ULPs (eg NFS-RDMA, iSER)\nalways be aligned with the IP stack, in the sense that they use the same\nports/links as the stack does. More usages can be done to allow monitoring\ntools based on netlink events being aware to bonding fail-over.\n\nSigned-off-by: Or Gerlitz \u003cogerlitz@voltaire.com\u003e\nSigned-off-by: Jay Vosburgh \u003cfubar@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "289c79a4bd350e8a25065102563ad1a183d1b402",
      "tree": "2067cb054704c62c3debfe92a3f00dc551ff7162",
      "parents": [
        "7bece8155be133cd67c41eed2b31c60a310609de"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri May 23 00:22:04 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 23 00:27:50 2008 -0700"
      },
      "message": "vlan: Use bitmask of feature flags instead of seperate feature bits\n\nHerbert Xu points out that the use of seperate feature bits for features\nto be propagated to VLAN devices is going to get messy real soon.\nReplace the VLAN feature bits by a bitmask of feature flags to be\npropagated and restore the old GSO_SHIFT/MASK values.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5fb13570543f4ae022996c9d7c0c099c8abf22dd",
      "tree": "bf0f837d4b2dd778c32cf8fcf719913203f1cd39",
      "parents": [
        "7ff6e6f779960e1078a78b60a881571c04f52b9b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue May 20 14:54:50 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 20 14:54:50 2008 -0700"
      },
      "message": "[VLAN]: Propagate selected feature bits to VLAN devices\n\nPropagate feature bits from the NETDEV_FEAT_CHANGE notifier. For now\nonly TSO is propagated for devices that announce their ability to\nsupport TSO in combination with VLAN accel by setting the NETIF_F_VLAN_TSO\nflag.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f5184d267c1aedb9b7a8cc44e08ff6b8d382c3b5",
      "tree": "5ccce7558f9e1e53e5b189d6e2fe62a667988ac8",
      "parents": [
        "8388e3da34edb141362bb42811ee487dfec15525"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon May 12 20:48:31 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 12 20:48:31 2008 -0700"
      },
      "message": "net: Allow netdevices to specify needed head/tailroom\n\nThis patch adds needed_headroom/needed_tailroom members to struct\nnet_device and updates many places that allocate sbks to use them. Not\nall of them can be converted though, and I\u0027m sure I missed some (I\nmostly grepped for LL_RESERVED_SPACE)\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8388e3da34edb141362bb42811ee487dfec15525",
      "tree": "0d2eaece7f0eb72151d31276af0644bc913b5246",
      "parents": [
        "f403ede70518c131ba8bebbacaf182927a58a315"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 12 20:17:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 12 20:17:33 2008 -0700"
      },
      "message": "net: Set LL_MAX_HEADER properly for wireless.\n\nWireless networking, particularly with MESH enabled, has\nquite strong requirements for link-layer header space.\n\nBased upon some numbers and descriptions from Johannes Berg\nwe use 96 (same as AX25) for plain wireless, and with\nmesh enabled we use 128.\n\nIn the process, simplify the cpp conditional logic here by\nordering the cases by those needing the most space down\nto those needing the least case.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4951704b4e23d71b99ac933d8e6993bc6225ac13",
      "tree": "afcc69d6ec071f5d0bb19517635e9b3cf8f668ba",
      "parents": [
        "c4492586a618d18e8a5343a04bad0ec606064846"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 12 03:29:11 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 12 03:29:11 2008 -0700"
      },
      "message": "syncppp: Fix crashes.\n\nThe syncppp layer wants a mid-level netdev private pointer.\n\nIt was using netdev-\u003epriv but that only worked by accident,\nand thus this scheme was broken when the device private\nallocation strategy changed.\n\nAdd a proper mid-layer private pointer for uses like this,\nupdate syncppp and all users, and remove the HDLC_PPP broken\ntag from drivers/net/wan/Kconfig\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f3005d7f4abe03ad41af33b1548602cd086d86a2",
      "tree": "937c5b6ba6089f93fa4f0a11a37ab07a8564e398",
      "parents": [
        "3661a910836a509be65afc3c1e512d900e1280f9"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Wed Apr 16 02:02:18 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 16 02:02:18 2008 -0700"
      },
      "message": "[NETNS]: Add netns refcnt debug for network devices.\n\ndev_set_net is called for\n- just allocated devices\n- devices moving from one namespace to another\nrelease_net has proper check inside to distinguish these cases.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a4aa834a9165150252c5cd953faab4de29d51b87",
      "tree": "e96e20355057dfabd279b7b7c94fedeffed4e020",
      "parents": [
        "e1ec1b8ccdf0df6000faa8c2d985ca5f94157e5a"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Apr 03 13:04:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 03 13:04:33 2008 -0700"
      },
      "message": "[NETNS]: Declare init_net even without CONFIG_NET defined.\n\nThis does not look good, but there is no other choice. The compilation\nwithout CONFIG_NET is broken and can not be fixed with ease.\n\nAfter that there is no need for the following commits:\n1567ca7eec7664b8be3b07755ac59dc1b1ec76cb\n3edf8fa5ccf10688a9280b5cbca8ed3947c42866\n2d38f9a4f8d2ebdc799f03eecf82345825495711\n\nRevert them.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e1ec1b8ccdf0df6000faa8c2d985ca5f94157e5a",
      "tree": "4e1ca325dde22f1ac21c9da0be509e87e922e604",
      "parents": [
        "c0f39322c335412339dec16ebfd2a05ceba5ebcf",
        "802fb176d8c635ae42da31b80841c26e8c7338a0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 02 22:35:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 02 22:35:23 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/s2io.c\n"
    },
    {
      "commit": "3edf8fa5ccf10688a9280b5cbca8ed3947c42866",
      "tree": "800b92fde2349d42a7bf24175ce1190fd4406557",
      "parents": [
        "17eed249539a7b756ca65a5cb0940abc48ef553b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 31 00:28:14 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 31 00:28:14 2008 -0700"
      },
      "message": "[NET]: Fix allnoconfig build on powerpc and avr32\n\nAs reported by Haavard Skinnemoen and Stephen Rothwell:\n\n\u003e allnoconfig fails with\n\u003e\n\u003e include/linux/netdevice.h:843: error: implicit declaration of function \u0027dev_net\u0027\n\u003e\n\u003e which seems to be because the definition of dev_net is inside #ifdef\n\u003e CONFIG_NET, while next_net_device, which calls it, is not.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0ef4730927c54cac5006759fa0cf50fbeff9d191",
      "tree": "a52e975ce5060f0d25a5fb1db44cc08105469616",
      "parents": [
        "a5a04819c5740cb1aa217af2cc8f5ef26f33d744"
      ],
      "author": {
        "name": "Matti Linnanvuori",
        "email": "mattilinnanvuori@yahoo.com",
        "time": "Fri Mar 28 16:33:00 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 28 16:33:00 2008 -0700"
      },
      "message": "net: Comment dev_kfree_skb_irq and dev_kfree_skb_any better\n\nComment dev_kfree_skb_irq and dev_kfree_skb_any better.\n\nSigned-off-by: Matti Linnanvuori \u003cmattilinnanvuori@yahoo.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1567ca7eec7664b8be3b07755ac59dc1b1ec76cb",
      "tree": "8df2dcce884a6fee6d6cdb87ca9d3d7ad8b23675",
      "parents": [
        "0736ffc04eec239cce9fd3c6ae5dce54e14c25c7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 28 15:53:11 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 28 15:53:11 2008 -0700"
      },
      "message": "[NET]: Protect device namespace inlines with CONFIG_NET\n\nInclude sites should not be bothered by whether\nCONFIG_NET is set or not when trying to include\nbenign files like linux/etherdevice.h et al.\n\nFrom a report by Stephen Rothwell.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "8e8e43843ba3ced0c657cbc0fdb10644ec60f772"
}
