)]}'
{
  "log": [
    {
      "commit": "3cfc2c42c1cbc8e238bb9c0612c0df4565e3a8b4",
      "tree": "5adc1ff2eaf64d450bf28bb6b2ce890db2567288",
      "parents": [
        "5cf65713f87775c548e3eb48dbafa32e12f28000",
        "0ea6e61122196509af82cc4f36cbdaacbefb8227"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:31:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:31:02 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (48 commits)\n  Documentation: update broken web addresses.\n  fix comment typo \"choosed\" -\u003e \"chosen\"\n  hostap:hostap_hw.c Fix typo in comment\n  Fix spelling contorller -\u003e controller in comments\n  Kconfig.debug: FAIL_IO_TIMEOUT: typo Faul -\u003e Fault\n  fs/Kconfig: Fix typo Userpace -\u003e Userspace\n  Removing dead MACH_U300_BS26\n  drivers/infiniband: Remove unnecessary casts of private_data\n  fs/ocfs2: Remove unnecessary casts of private_data\n  libfc: use ARRAY_SIZE\n  scsi: bfa: use ARRAY_SIZE\n  drm: i915: use ARRAY_SIZE\n  drm: drm_edid: use ARRAY_SIZE\n  synclink: use ARRAY_SIZE\n  block: cciss: use ARRAY_SIZE\n  comment typo fixes: charater \u003d\u003e character\n  fix comment typos concerning \"challenge\"\n  arm: plat-spear: fix typo in kerneldoc\n  reiserfs: typo comment fix\n  update email address\n  ...\n"
    },
    {
      "commit": "6ba74014c1ab0e37af7de6f64b4eccbbae3cb9e7",
      "tree": "8f3892fc44f1e403675a6d7e88fda5c70e56ee4c",
      "parents": [
        "5abd9ccced7a726c817dd6b5b96bc933859138d1",
        "3ff1c25927e3af61c6bf0e4ed959504058ae4565"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:47:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:47:58 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1443 commits)\n  phy/marvell: add 88ec048 support\n  igb: Program MDICNFG register prior to PHY init\n  e1000e: correct MAC-PHY interconnect register offset for 82579\n  hso: Add new product ID\n  can: Add driver for esd CAN-USB/2 device\n  l2tp: fix export of header file for userspace\n  can-raw: Fix skb_orphan_try handling\n  Revert \"net: remove zap_completion_queue\"\n  net: cleanup inclusion\n  phy/marvell: add 88e1121 interface mode support\n  u32: negative offset fix\n  net: Fix a typo from \"dev\" to \"ndev\"\n  igb: Use irq_synchronize per vector when using MSI-X\n  ixgbevf: fix null pointer dereference due to filter being set for VLAN 0\n  e1000e: Fix irq_synchronize in MSI-X case\n  e1000e: register pm_qos request on hardware activation\n  ip_fragment: fix subtracting PPPOE_SES_HLEN from mtu twice\n  net: Add getsockopt support for TCP thin-streams\n  cxgb4: update driver version\n  cxgb4: add new PCI IDs\n  ...\n\nManually fix up conflicts in:\n - drivers/net/e1000e/netdev.c: due to pm_qos registration\n   infrastructure changes\n - drivers/net/phy/marvell.c: conflict between adding 88ec048 support\n   and cleaning up the IDs\n - drivers/net/wireless/ipw2x00/ipw2100.c: trivial ipw2100_pm_qos_req\n   conflict (registration change vs marking it static)\n"
    },
    {
      "commit": "d790d4d583aeaed9fc6f8a9f4d9f8ce6b1c15c7f",
      "tree": "854ab394486288d40fa8179cbfaf66e8bdc44b0f",
      "parents": [
        "73b2c7165b76b20eb1290e7efebc33cfd21db1ca",
        "3a09b1be53d23df780a0cd0e4087a05e2ca4a00c"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 04 15:14:38 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 04 15:14:38 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "c1f79426e2df5ef96fe3e76de6c7606d15bf390b",
      "tree": "645ca8ec803a110ce07dc873b7e99392efbf25eb",
      "parents": [
        "55bad82385f036a844429ff8989732f0ea3bfff9"
      ],
      "author": {
        "name": "Stefan Assmann",
        "email": "sassmann@redhat.com",
        "time": "Thu Jul 22 02:50:21 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 24 20:49:29 2010 -0700"
      },
      "message": "sysfs: add attribute to indicate hw address assignment type\n\nAdd addr_assign_type to struct net_device and expose it via sysfs.\nThis new attribute has the purpose of giving user-space the ability to\ndistinguish between different assignment types of MAC addresses.\n\nFor example user-space can treat NICs with randomly generated MAC\naddresses differently than NICs that have permanent (locally assigned)\nMAC addresses.\nFor the former udev could write a persistent net rule by matching the\ndevice path instead of the MAC address.\nThere\u0027s also the case of devices that \u0027steal\u0027 MAC addresses from slave\ndevices. In which it is also be beneficial for user-space to be aware\nof the fact.\n\nThis patch also introduces a helper function to assist adoption of\ndrivers that generate MAC addresses randomly.\n\nSigned-off-by: Stefan Assmann \u003csassmann@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bd27290a593f80cb99e95287cb29c72c0d57608b",
      "tree": "c12dfb1cb4cfd7f7d65e34fcf53797685ec66670",
      "parents": [
        "db5dda905759c931ceb8f3f2fcfd7719009acc98"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Jul 19 09:35:40 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 19 09:35:40 2010 -0700"
      },
      "message": "net: 64bit stats for netdev_queue\n\nSince struct netdev_queue tx_bytes/tx_packets/tx_dropped are already\nprotected by _xmit_lock, its easy to convert these fields to u64 instead\nof unsigned long.\nThis completes 64bit stats for devices using them (vlan, macvlan, ...)\n\nStrictly, we could avoid the locking in dev_txq_stats_fold() on 64bit\narches, but its slow path and we prefer keep it simple.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1f19b51d1d87f3e3bb7e6648f43f7d57ed2da6b",
      "tree": "d9525359409e3493b48e8676717cc11ed69b640a",
      "parents": [
        "15f0127d1d189fda3294b7823e3e654afca54055"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Sat Jul 17 08:49:36 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 18 19:15:26 2010 -0700"
      },
      "message": "net: support time stamping in phy devices.\n\nThis patch adds a new networking option to allow hardware time stamps\nfrom PHY devices. When enabled, likely candidates among incoming and\noutgoing network packets are offered to the PHY driver for possible\ntime stamping. When accepted by the PHY driver, incoming packets are\ndeferred for later delivery by the driver.\n\nThe patch also adds phylib driver methods for the SIOCSHWTSTAMP ioctl\nand callbacks for transmit and receive time stamping. Drivers may\noptionally implement these functions.\n\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "82f682514a5df89ffb3890627eebf0897b7a84ec",
      "tree": "27a3dba7a179102ac5bfdd5935679bd2abd3f70f",
      "parents": [
        "5f279845f9d684661563894d44729a0c706375b4"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Mon Jul 05 22:53:06 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 02:00:34 2010 +0200"
      },
      "message": "pm_qos: Get rid of the allocation in pm_qos_add_request()\n\nAll current users of pm_qos_add_request() have the ability to supply\nthe memory required by the pm_qos routines, so make them do this and\neliminate the kmalloc() with pm_qos_add_request().  This has the\ndouble benefit of making the call never fail and allowing it to be\ncalled from atomic context.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nSigned-off-by: mark gross \u003cmarkgross@thegnar.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "d77535162e736c47978d5c01469c56e1781dc91b",
      "tree": "7210d55197b283c72bb8c74a0aeb8cd386b21a74",
      "parents": [
        "3cfde79c6c7c8002375c4a8e5be7f602fbb9675d"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Fri Jul 09 09:12:41 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 09 17:41:57 2010 -0700"
      },
      "message": "net: Document that dev_get_stats() returns the given pointer\n\nDocument that dev_get_stats() returns the same stats pointer it was\ngiven.  Remove const qualification from the returned pointer since the\ncaller may do what it likes with that structure.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3cfde79c6c7c8002375c4a8e5be7f602fbb9675d",
      "tree": "53fe969e9f8bb45531c1e84c82e822ff47ea015c",
      "parents": [
        "cc7b86c1a8f207c8aa77aad6941475d8294a83c4"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Fri Jul 09 09:11:52 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 09 17:41:56 2010 -0700"
      },
      "message": "net: Get rid of rtnl_link_stats64 / net_device_stats union\n\nIn commit be1f3c2c027cc5ad735df6a45a542ed1db7ec48b \"net: Enable 64-bit\nnet device statistics on 32-bit architectures\" I redefined struct\nnet_device_stats so that it could be used in a union with struct\nrtnl_link_stats64, avoiding the need for explicit copying or\nconversion between the two.  However, this is unsafe because there is\nno locking required and no lock consistently held around calls to\ndev_get_stats() and use of the statistics structure it returns.\n\nIn commit 28172739f0a276eb8d6ca917b3974c2edb036da3 \"net: fix 64 bit\ncounters on 32 bit arches\" Eric Dumazet dealt with that problem by\nrequiring callers of dev_get_stats() to provide storage for the\nresult.  This means that the net_device::stats64 field and the padding\nin struct net_device_stats are now redundant, so remove them.\n\nUpdate the comment on net_device_ops::ndo_get_stats64 to reflect its\nnew usage.\n\nChange dev_txq_stats_fold() to use struct rtnl_link_stats64, since\nthat is what all its callers are really using and it is no longer\ngoing to be compatible with struct net_device_stats.\n\nEric Dumazet suggested the separate function for the structure\nconversion.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "597e608a8492d662736c9bc6aa507dbf1cadc17d",
      "tree": "6c330cdd0a4809f67dd191b37e34f5b4318cef78",
      "parents": [
        "acbc0f039ff4b93da737c91937b7c70018ded39f",
        "33b665eeeb85956ccbdf31c4c31a4e2a31133c44"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 07 15:59:38 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 07 15:59:38 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "28172739f0a276eb8d6ca917b3974c2edb036da3",
      "tree": "b1dc00cfa20c209992e247c6f73601f609f9ca3b",
      "parents": [
        "217d32dc5f299c483ca0d3c8cc6811c72c0339c4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jul 07 14:58:56 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 07 14:58:56 2010 -0700"
      },
      "message": "net: fix 64 bit counters on 32 bit arches\n\nThere is a small possibility that a reader gets incorrect values on 32\nbit arches. SNMP applications could catch incorrect counters when a\n32bit high part is changed by another stats consumer/provider.\n\nOne way to solve this is to add a rtnl_link_stats64 param to all\nndo_get_stats64() methods, and also add such a parameter to\ndev_get_stats().\n\nRule is that we are not allowed to use dev-\u003estats64 as a temporary\nstorage for 64bit stats, but a caller provided area (usually on stack)\n\nOld drivers (only providing get_stats() method) need no changes.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bcfcc450baaaa44afc1d3c51ef96a53338ff0eb2",
      "tree": "123a988524aec67145c9b6becfdd6d5993525e87",
      "parents": [
        "3390712a474abdcd3de10024dd1062e5928d381c"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Fri Jul 02 07:08:44 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 05 20:08:05 2010 -0700"
      },
      "message": "net: Fix definition of netif_vdbg() when VERBOSE_DEBUG is defined\n\nnetif_vdbg() was originally defined as entirely equivalent to\nnetdev_vdbg(), but I assume that it was intended to take the same\nparameters as netif_dbg() etc.  (Currently it is only used by the\nsfc driver, in which I worked on that assumption.)\n\nIn commit a4ed89c I changed the definition used when VERBOSE_DEBUG is\nnot defined, but I failed to notice that the definition used when\nVERBOSE_DEBUG is defined was also not as I expected.  Change that to\nmatch netif_dbg() as well.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f45f4321d2c977c9eff77e5a5225f3cd2140eb20",
      "tree": "20cae33624bd063d5b0298f66353ef509ee60d52",
      "parents": [
        "256df2f3879efdb2e9808bdb1b54b16fbb11fa38"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Jun 27 01:02:36 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 04 10:40:19 2010 -0700"
      },
      "message": "netdevice.h: Change netif_\u003clevel\u003e macros to call netdev_\u003clevel\u003e functions\n\nReduces text ~300 bytes of text (woohoo!) in an x86 defconfig\n\n$ size vmlinux*\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n7198526\t 720112\t1366288\t9284926\t 8dad3e\tvmlinux\n7198862\t 720112\t1366288\t9285262\t 8dae8e\tvmlinux.netdev\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "256df2f3879efdb2e9808bdb1b54b16fbb11fa38",
      "tree": "ec7bd8e1e6d7d7066542420641ccd68e98e42bfa",
      "parents": [
        "99bcf217183e02ebae46373896fba7f12d588001"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Jun 27 01:02:35 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 04 10:40:18 2010 -0700"
      },
      "message": "netdevice.h net/core/dev.c: Convert netdev_\u003clevel\u003e logging macros to functions\n\nReduces an x86 defconfig text and data ~2k.\ntext is smaller, data is larger.\n\n$ size vmlinux*\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n7198862\t 720112\t1366288\t9285262\t 8dae8e\tvmlinux\n7205273\t 716016\t1366288\t9287577\t 8db799\tvmlinux.device_h\n\nUses %pV and struct va_format\nFormat arguments are verified before printk\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f0796d5c73e59786d09a1e617689d1d415f2db44",
      "tree": "ecb17c65c5b6a162824a1e11fee24364852837f8",
      "parents": [
        "4ef6acff83222f4496ceef7d1f0ee9e50a5bb403"
      ],
      "author": {
        "name": "John Fastabend",
        "email": "john.r.fastabend@intel.com",
        "time": "Thu Jul 01 13:21:57 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 02 21:59:07 2010 -0700"
      },
      "message": "net: decreasing real_num_tx_queues needs to flush qdisc\n\nReducing real_num_queues needs to flush the qdisc otherwise\nskbs with queue_mappings greater then real_num_tx_queues can\nbe sent to the underlying driver.\n\nThe flow for this is,\n\ndev_queue_xmit()\n\tdev_pick_tx()\n\t\tskb_tx_hash()  \u003d\u003e hash using real_num_tx_queues\n\t\tskb_set_queue_mapping()\n\t...\n\tqdisc_enqueue_root() \u003d\u003e enqueue skb on txq from hash\n...\ndev-\u003ereal_num_tx_queues -\u003d n\n...\nsch_direct_xmit()\n\tdev_hard_start_xmit()\n\t\tndo_start_xmit(skb,dev) \u003d\u003e skb queue set with old hash\n\nskbs are enqueued on the qdisc with skb-\u003equeue_mapping set\n0 \u003c queue_mappings \u003c real_num_tx_queues.  When the driver\ndecreases real_num_tx_queues skb\u0027s may be dequeued from the\nqdisc with a queue_mapping greater then real_num_tx_queues.\n\nThis fixes a case in ixgbe where this was occurring with DCB\nand FCoE. Because the driver is using queue_mapping to map\nskbs to tx descriptor rings we can potentially map skbs to\nrings that no longer exist.\n\nSigned-off-by: John Fastabend \u003cjohn.r.fastabend@intel.com\u003e\nTested-by: Ross Brattain \u003cross.b.brattain@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d29c0c5c332131f1151cf33995e2f01299b9234f",
      "tree": "6d7f0b2d4420e45e51a7afb2fef398989386bb6e",
      "parents": [
        "3924773a5a82622167524bdd48799dc0452c57f8"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jun 14 20:21:04 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 16 18:07:52 2010 -0700"
      },
      "message": "udp: Add UFO to NETIF_F_SOFTWARE_GSO\n\nThis patch adds UFO to the list of GSO features with a software\nfallback.  This allows UFO to be used even if the hardware does\nnot support it.\n\nIn particular, this allows us to test the UFO fallback, as it\nhas been reported to not work in some cases.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f1bbbb6912662b9f6070c5bfc4ca9eb1f06a9d5b",
      "tree": "c2c130a74be25b0b2dff992e1a195e2728bdaadd",
      "parents": [
        "fd0961ff67727482bb20ca7e8ea97b83e9de2ddb",
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:08:13 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:08:13 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "82695d9b186dcefe9bd119b53521deec20858f19",
      "tree": "077cf91b62365763b920b101ee3710274b36bfc3",
      "parents": [
        "4fcc3d3409b0ab37c1f790e04a1f7c984b436167"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Tue Jun 15 15:08:48 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 15 15:08:48 2010 -0700"
      },
      "message": "net: Fix error in comment on net_device_ops::ndo_get_stats\n\nndo_get_stats still returns struct net_device_stats *; there is\nno struct net_device_stats64.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f350a0a87374418635689471606454abc7beaa3a",
      "tree": "c8210542a9848f6b5953b58d2ba1dbfb11715f14",
      "parents": [
        "a35e2c1b6d90544b3c688783869817628e5f9607"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue Jun 15 06:50:45 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 15 11:48:58 2010 -0700"
      },
      "message": "bridge: use rx_handler_data pointer to store net_bridge_port pointer\n\nRegister net_bridge_port pointer as rx_handler data pointer. As br_port is\nremoved from struct net_device, another netdev priv_flag is added to indicate\nthe device serves as a bridge port. Also rcuized pointers are now correctly\ndereferenced in br_fdb.c and in netfilter parts.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a35e2c1b6d90544b3c688783869817628e5f9607",
      "tree": "64fa6bc6b772248acfb92b5743c5f0d475126891",
      "parents": [
        "93e2c32b5cb2ad92ceb1d7a4684f20a0d25bf530"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue Jun 15 03:27:57 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 15 11:47:12 2010 -0700"
      },
      "message": "macvlan: use rx_handler_data pointer to store macvlan_port pointer V2\n\nRegister macvlan_port pointer as rx_handler data pointer. As macvlan_port is\nremoved from struct net_device, another netdev priv_flag is added to indicate\nthe device serves as a macvlan port.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "93e2c32b5cb2ad92ceb1d7a4684f20a0d25bf530",
      "tree": "c15af2642af01702097ade735506d15d7a910c54",
      "parents": [
        "91d2c34a4eed32876ca333b0ca44f3bc56645805"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Thu Jun 10 03:34:59 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 15 11:47:11 2010 -0700"
      },
      "message": "net: add rx_handler data pointer\n\nAdd possibility to register rx_handler data pointer along with a rx_handler.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4247e161b12f8dffb7ee3ee07bc5e61f714ebe2d",
      "tree": "95edfebfb67abcfb95b1865ce8d78e44c1c153c5",
      "parents": [
        "dbaa154178341689faaa08fbf40b94ae5ca1d6c0"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jun 10 16:12:47 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 15 10:58:39 2010 -0700"
      },
      "message": "netpoll: Add ndo_netpoll_setup\n\nThis patch adds ndo_netpoll_setup as the initialisation primitive\nto complement ndo_netpoll_cleanup.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "be1f3c2c027cc5ad735df6a45a542ed1db7ec48b",
      "tree": "c97815a7cf25ea62e8f3a6b3597cfa8957f40b81",
      "parents": [
        "d19b51499967baddf4f9f12a0067146c2554527a"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Tue Jun 08 07:19:54 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 12 15:51:22 2010 -0700"
      },
      "message": "net: Enable 64-bit net device statistics on 32-bit architectures\n\nUse struct rtnl_link_stats64 as the statistics structure.\n\nOn 32-bit architectures, insert 32 bits of padding after/before each\nfield of struct net_device_stats to make its layout compatible with\nstruct rtnl_link_stats64.  Add an anonymous union in net_device; move\nstats into the union and add struct rtnl_link_stats64 stats64.\n\nAdd net_device_ops::ndo_get_stats64, implementations of which will\nreturn a pointer to struct rtnl_link_stats64.  Drivers that implement\nthis operation must not update the structure asynchronously.\n\nChange dev_get_stats() to call ndo_get_stats64 if available, and to\nreturn a pointer to struct rtnl_link_stats64.  Change callers of\ndev_get_stats() accordingly.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bb69ae049fcc986fcd742eb90ca0d44a7a49c9f1",
      "tree": "22f9aa03f9f59139ece8ef1484fe5d4a5b86bd47",
      "parents": [
        "6e8b11b43b0c2e901734e2cdd70c6e325a90c4ef"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Jun 07 11:42:13 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 07 22:49:25 2010 -0700"
      },
      "message": "anycast: Some RCU conversions\n\n- dev_get_by_flags() changed to dev_get_by_flags_rcu()\n\n- ipv6_sock_ac_join() dont touch dev \u0026 idev refcounts\n- ipv6_sock_ac_drop() dont touch dev \u0026 idev refcounts\n- ipv6_sock_ac_close() dont touch dev \u0026 idev refcounts\n- ipv6_dev_ac_dec() dount touch idev refcount\n- ipv6_chk_acast_addr() dont touch idev refcount\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Hideaki YOSHIFUJI \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "724df615928b7050d33b6243f60b12bd87484fc7",
      "tree": "22dc5e941ffb2eb20db6df67cc29c22cbed08f68",
      "parents": [
        "d515e86e639890b33a09390d062b0831664f04a2"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Wed May 26 09:22:40 2010 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jun 04 16:03:34 2010 +0200"
      },
      "message": "fix comment typo in netdevice.h\n\nFix missing \"of\" in comment.\n\n Signed-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "ab95bfe01f9872459c8678572ccadbf646badad0",
      "tree": "8e11f94077c9a80f7af52ce3dd50591a686561d7",
      "parents": [
        "20c59de2e6b6bc74bbf714dcd4e720afe8d516cf"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue Jun 01 21:52:08 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 07:11:15 2010 -0700"
      },
      "message": "net: replace hooks in __netif_receive_skb V5\n\nWhat this patch does is it removes two receive frame hooks (for bridge and for\nmacvlan) from __netif_receive_skb. These are replaced them with a single\nhook for both. It only supports one hook per device because it makes no\nsense to do bridging and macvlan on the same device.\n\nThen a network driver (of virtual netdev like macvlan or bridge) can register\nan rx_handler for needed net device.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c2d9ba9bce8d7323ca96f239e1f505c14d6244fb",
      "tree": "7a184eefa2e48e6aa15cdf3aefb6ccf2fb834320",
      "parents": [
        "c6b20d941b08941bece53bc3d857beb1fb25fffc"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 01 06:51:19 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 05:16:23 2010 -0700"
      },
      "message": "net: CONFIG_NET_NS reduction\n\nUse read_pnet() and write_pnet() to reduce number of ifdef CONFIG_NET_NS\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "06c4648d46d1b757d6b9591a86810be79818b60c",
      "tree": "96f6e09a23071157d5b446853294b4564155ffee",
      "parents": [
        "3f8dc2362fd43a0adee2f6f05bf1ac4d619675b6"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "Ian.Campbell@citrix.com",
        "time": "Wed May 26 00:09:42 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 31 00:27:44 2010 -0700"
      },
      "message": "arp_notify: allow drivers to explicitly request a notification event.\n\nCurrently such notifications are only generated when the device comes up or the\naddress changes. However one use case for these notifications is to enable\nfaster network recovery after a virtual machine migration (by causing switches\nto relearn their MAC tables). A migration appears to the network stack as a\ntemporary loss of carrier and therefore does not trigger either of the current\nconditions. Rather than adding carrier up as a trigger (which can cause issues\nwhen interfaces a flapping) simply add an interface which the driver can use\nto explicitly trigger the notification.\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nCc: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: netdev@vger.kernel.org\nCc: stable@kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a4ed89cb92f93d406ac45fe5507228a2475e32ba",
      "tree": "b4effecbd79311832676c756d3acedeb84ba931a",
      "parents": [
        "7f267de41fde594500cbbccb1b29acb4475f2da2"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Tue May 18 06:56:32 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 23 23:21:13 2010 -0700"
      },
      "message": "net: Fix definition of netif_vdbg() when VERBOSE_DEBUG is not defined\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "76cc8b13a6e41b537fd262b600da1571314add62",
      "tree": "a8a25a4f23be5c0eeed77dd9fcb30dc9b315e519",
      "parents": [
        "1f01bfd202bc539bccd282befa2bbdb8d6ad80ee"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Thu May 20 18:37:59 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 21 00:38:33 2010 -0700"
      },
      "message": "net: fix problem in dequeuing from input_pkt_queue\n\nFix some issues introduced in batch skb dequeuing for input_pkt_queue.\nThe primary issue it that the queue head must be incremented only\nafter a packet has been processed, that is only after\n__netif_receive_skb has been called.  This is needed for the mechanism\nto prevent OOO packet in RFS.  Also when flushing the input_pkt_queue\nand process_queue, the process queue should be done first to prevent\nOOO packets.\n\nBecause the input_pkt_queue has been effectively split into two queues,\nthe calculation of the tail ptr is no longer correct.  The correct value\nwould be head+input_pkt_queue-\u003elen+process_queue-\u003elen.  To avoid\nthis calculation we added an explict input_queue_tail in softnet_data.\nThe tail value is simply incremented when queuing to input_pkt_queue.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f8965467f366fd18f01feafb5db10512d7b4422c",
      "tree": "3706a9cd779859271ca61b85c63a1bc3f82d626e",
      "parents": [
        "a26272e5200765691e67d6780e52b32498fdb659",
        "2ec8c6bb5d8f3a62a79f463525054bae1e3d4487"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:04:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:04:44 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1674 commits)\n  qlcnic: adding co maintainer\n  ixgbe: add support for active DA cables\n  ixgbe: dcb, do not tag tc_prio_control frames\n  ixgbe: fix ixgbe_tx_is_paused logic\n  ixgbe: always enable vlan strip/insert when DCB is enabled\n  ixgbe: remove some redundant code in setting FCoE FIP filter\n  ixgbe: fix wrong offset to fc_frame_header in ixgbe_fcoe_ddp\n  ixgbe: fix header len when unsplit packet overflows to data buffer\n  ipv6: Never schedule DAD timer on dead address\n  ipv6: Use POSTDAD state\n  ipv6: Use state_lock to protect ifa state\n  ipv6: Replace inet6_ifaddr-\u003edead with state\n  cxgb4: notify upper drivers if the device is already up when they load\n  cxgb4: keep interrupts available when the ports are brought down\n  cxgb4: fix initial addition of MAC address\n  cnic: Return SPQ credit to bnx2x after ring setup and shutdown.\n  cnic: Convert cnic_local_flags to atomic ops.\n  can: Fix SJA1000 command register writes on SMP systems\n  bridge: fix build for CONFIG_SYSFS disabled\n  ARCNET: Limit com20020 PCI ID matches for SOHARD cards\n  ...\n\nFix up various conflicts with pcmcia tree drivers/net/\n{pcmcia/3c589_cs.c, wireless/orinoco/orinoco_cs.c and\nwireless/orinoco/spectrum_cs.c} and feature removal\n(Documentation/feature-removal-schedule.txt).\n\nAlso fix a non-content conflict due to pm_qos_requirement getting\nrenamed in the PM tree (now pm_qos_request) in net/mac80211/scan.c\n"
    },
    {
      "commit": "57b610805ce92dbd79fc97509f80fa5391b99623",
      "tree": "0d022d63c81d73b51e6001758d4353d0518a01e1",
      "parents": [
        "ee289b6440c3b0ccb9459495783e8c299bec6604"
      ],
      "author": {
        "name": "Scott Feldman",
        "email": "scofeldm@cisco.com",
        "time": "Mon May 17 22:49:55 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 17 22:49:55 2010 -0700"
      },
      "message": "net: Add netlink support for virtual port management (was iovnl)\n\nAdd new netdev ops ndo_{set|get}_vf_port to allow setting of\nport-profile on a netdev interface.  Extends netlink socket RTM_SETLINK/\nRTM_GETLINK with two new sub msgs called IFLA_VF_PORTS and IFLA_PORT_SELF\n(added to end of IFLA_cmd list).  These are both nested atrtibutes\nusing this layout:\n\n              [IFLA_NUM_VF]\n              [IFLA_VF_PORTS]\n                      [IFLA_VF_PORT]\n                              [IFLA_PORT_*], ...\n                      [IFLA_VF_PORT]\n                              [IFLA_PORT_*], ...\n                      ...\n              [IFLA_PORT_SELF]\n                      [IFLA_PORT_*], ...\n\nThese attributes are design to be set and get symmetrically.  VF_PORTS\nis a list of VF_PORTs, one for each VF, when dealing with an SR-IOV\ndevice.  PORT_SELF is for the PF of the SR-IOV device, in case it wants\nto also have a port-profile, or for the case where the VF\u003d\u003dPF, like in\nenic patch 2/2 of this patch set.\n\nA port-profile is used to configure/enable the external switch virtual port\nbacking the netdev interface, not to configure the host-facing side of the\nnetdev.  A port-profile is an identifier known to the switch.  How port-\nprofiles are installed on the switch or how available port-profiles are\nmade know to the host is outside the scope of this patch.\n\nThere are two types of port-profiles specs in the netlink msg.  The first spec\nis for 802.1Qbg (pre-)standard, VDP protocol.  The second spec is for devices\nthat run a similar protocol as VDP but in firmware, thus hiding the protocol\ndetails.  In either case, the specs have much in common and makes sense to\ndefine the netlink msg as the union of the two specs.  For example, both specs\nhave a notition of associating/deassociating a port-profile.  And both specs\nrequire some information from the hypervisor manager, such as client port\ninstance ID.\n\nThe general flow is the port-profile is applied to a host netdev interface\nusing RTM_SETLINK, the receiver of the RTM_SETLINK msg communicates with the\nswitch, and the switch virtual port backing the host netdev interface is\nconfigured/enabled based on the settings defined by the port-profile.  What\nthose settings comprise, and how those settings are managed is again\noutside the scope of this patch, since this patch only deals with the\nfirst step in the flow.\n\nSigned-off-by: Scott Feldman \u003cscofeldm@cisco.com\u003e\nSigned-off-by: Roopa Prabhu \u003croprabhu@cisco.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3b098e2d7c693796cc4dffb07caa249fc0f70771",
      "tree": "586c4f5dc57988ade175ffc7e4b6d0261b12e166",
      "parents": [
        "a1aa3483041bd3691c7f029272ccef4ce70bd957"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sat May 15 23:57:10 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 15 23:57:10 2010 -0700"
      },
      "message": "net: Consistent skb timestamping\n\nWith RPS inclusion, skb timestamping is not consistent in RX path.\n\nIf netif_receive_skb() is used, its deferred after RPS dispatch.\n\nIf netif_rx() is used, its done before RPS dispatch.\n\nThis can give strange tcpdump timestamps results.\n\nI think timestamping should be done as soon as possible in the receive\npath, to get meaningful values (ie timestamps taken at the time packet\nwas delivered by NIC driver to our stack), even if NAPI already can\ndefer timestamping a bit (RPS can help to reduce the gap)\n\nTom Herbert prefer to sample timestamps after RPS dispatch. In case\nsampling is expensive (HPET/acpi_pm on x86), this makes sense.\n\nLet admins switch from one mode to another, using a new\nsysctl, /proc/sys/net/core/netdev_tstamp_prequeue\n\nIts default value (1), means timestamps are taken as soon as possible,\nbefore backlog queueing, giving accurate timestamps.\n\nSetting a 0 value permits to sample timestamps when processing backlog,\nafter RPS dispatch, to lower the load of the pre-RPS cpu.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed77134bfccf5e75b6cbadab268e559dbe6a4ebb",
      "tree": "dae087a617ab3d9af8673d1905dbca3bcd57e89e",
      "parents": [
        "0fef8b1e83c4ab08cf1304dbebcfd749caf4f187"
      ],
      "author": {
        "name": "Mark Gross",
        "email": "mgross@linux.intel.com",
        "time": "Thu May 06 01:59:26 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon May 10 23:08:19 2010 +0200"
      },
      "message": "PM QOS update\n\nThis patch changes the string based list management to a handle base\nimplementation to help with the hot path use of pm-qos, it also renames\nmuch of the API to use \"request\" as opposed to \"requirement\" that was\nused in the initial implementation.  I did this because request more\naccurately represents what it actually does.\n\nAlso, I added a string based ABI for users wanting to use a string\ninterface.  So if the user writes 0xDDDDDDDD formatted hex it will be\naccepted by the interface.  (someone asked me for it and I don\u0027t think\nit hurts anything.)\n\nThis patch updates some documentation input I got from Randy.\n\nSigned-off-by: markgross \u003cmgross@linux.intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "0e34e93177fb1f642cab080e0bde664c06c7183a",
      "tree": "5353f873ab99c2cff76f12b41e9a9e2018e66b30",
      "parents": [
        "08259594e047170923ef11d1482648642bfe606f"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "amwang@redhat.com",
        "time": "Thu May 06 00:47:21 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 06 00:47:21 2010 -0700"
      },
      "message": "netpoll: add generic support for bridge and bonding devices\n\nThis whole patchset is for adding netpoll support to bridge and bonding\ndevices. I already tested it for bridge, bonding, bridge over bonding,\nand bonding over bridge. It looks fine now.\n\nTo make bridge and bonding support netpoll, we need to adjust\nsome netpoll generic code. This patch does the following things:\n\n1) introduce two new priv_flags for struct net_device:\n   IFF_IN_NETPOLL which identifies we are processing a netpoll;\n   IFF_DISABLE_NETPOLL is used to disable netpoll support for a device\n   at run-time;\n\n2) introduce one new method for netdev_ops:\n   -\u003endo_netpoll_cleanup() is used to clean up netpoll when a device is\n     removed.\n\n3) introduce netpoll_poll_dev() which takes a struct net_device * parameter;\n   export netpoll_send_skb() and netpoll_poll_dev() which will be used later;\n\n4) hide a pointer to struct netpoll in struct netpoll_info, ditto.\n\n5) introduce -\u003ereal_dev for struct netpoll.\n\n6) introduce a new status NETDEV_BONDING_DESLAE, which is used to disable\n   netconsole before releasing a slave, to avoid deadlocks.\n\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cd7b5396e7e4d10c51116f59f414ff90312af8d4",
      "tree": "a89bf09771539582226dece2740734108f5a848a",
      "parents": [
        "dee42870a423ad485129f43cddfe7275479f11d8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 02 22:27:59 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 02 22:27:59 2010 -0700"
      },
      "message": "net: Use explicit \"unsigned int\" instead of plain \"unsigned\" in netdevice.h\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dee42870a423ad485129f43cddfe7275479f11d8",
      "tree": "e30433d3b55ee248eb672765fe6705be160d882c",
      "parents": [
        "7ef527377b88ff05fb122a47619ea506c631c914"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Sun May 02 05:42:16 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 02 22:26:57 2010 -0700"
      },
      "message": "net: fix softnet_stat\n\nPer cpu variable softnet_data.total was shared between IRQ and SoftIRQ context\nwithout any protection. And enqueue_to_backlog should update the netdev_rx_stat\nof the target CPU.\n\nThis patch renames softnet_data.total to softnet_data.processed: the number of\npackets processed in uppper levels(IP stacks).\n\nsoftnet_stat data is moved into softnet_data.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\n----\n include/linux/netdevice.h |   17 +++++++----------\n net/core/dev.c            |   26 ++++++++++++--------------\n net/sched/sch_generic.c   |    2 +-\n 3 files changed, 20 insertions(+), 25 deletions(-)\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6e7676c1a76aed6e957611d8d7a9e5592e23aeba",
      "tree": "0cd14260745f755c885466c59182452f637e92e3",
      "parents": [
        "c58dc01babfd58ec9e71a6ce080150dc27755d88"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Tue Apr 27 15:07:33 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 27 15:11:49 2010 -0700"
      },
      "message": "net: batch skb dequeueing from softnet input_pkt_queue\n\nbatch skb dequeueing from softnet input_pkt_queue to reduce potential lock\ncontention when RPS is enabled.\n\nNote: in the worst case, the number of packets in a softnet_data may\nbe double of netdev_max_backlog.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a9cbd588fdb71ea415754c885e2f9f03e6bf1ba0",
      "tree": "68506bd4299f34b3ed31b76eb575e79c61e198fb",
      "parents": [
        "bb611874650cff942a7466b456a791e8bfa641e7"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Mon Apr 26 23:06:24 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 27 14:32:12 2010 -0700"
      },
      "message": "net: reimplement softnet_data.output_queue as a FIFO queue\n\nreimplement softnet_data.output_queue as a FIFO queue to keep the\nfairness among the qdiscs rescheduled.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n----\n include/linux/netdevice.h |    1 +\n net/core/dev.c            |   22 ++++++++++++----------\n 2 files changed, 13 insertions(+), 10 deletions(-)\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e36fa2f7e92f25aab2e3d787dcfe3590817f19d3",
      "tree": "b1bd60b14131dacc72a80efbd2f062935cc43e25",
      "parents": [
        "f5acb907dc24c3822f408211bad1cd6e5d0433cf"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Apr 19 21:17:14 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 01:18:05 2010 -0700"
      },
      "message": "rps: cleanups\n\nstruct softnet_data holds many queues, so consistent use \"sd\" name\ninstead of \"queue\" is better.\n\nAdds a rps_ipi_queued() helper to cleanup enqueue_to_backlog()\n\nAdds a _and_irq_disable suffix to net_rps_action() name, as David\nsuggested.\n\nincr_input_queue_head() becomes input_queue_head_incr()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "88751275b8e867d756e4f86ae92afe0232de129f",
      "tree": "011913d98eb65f5e90981da0275c2f5a07c2bee1",
      "parents": [
        "a03b1a5c95e8bcb07512122995bbf5bd3c39f2b9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Apr 19 05:07:33 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 19 13:20:34 2010 -0700"
      },
      "message": "rps: shortcut net_rps_action()\n\nnet_rps_action() is a bit expensive on NR_CPUS\u003d64..4096 kernels, even if\nRPS is not active.\n\nTom Herbert used two bitmasks to hold information needed to send IPI,\nbut a single LIFO list seems more appropriate.\n\nMove all RPS logic into net_rps_action() to cleanup net_rx_action() code\n(remove two ifdefs)\n\nMove rps_remote_softirq_cpus into softnet_data to share its first cache\nline, filling an existing hole.\n\nIn a future patch, we could call net_rps_action() from process_backlog()\nto make sure we send IPI before handling this cpu backlog.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fec5e652e58fa6017b2c9e06466cb2a6538de5b4",
      "tree": "e034f2a1e7930a0a225bd30896f834ec5e09c084",
      "parents": [
        "b5d43998234331b9c01bd2165fdbb25115f4387f"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Fri Apr 16 16:01:27 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 16 16:01:27 2010 -0700"
      },
      "message": "rfs: Receive Flow Steering\n\nThis patch implements receive flow steering (RFS).  RFS steers\nreceived packets for layer 3 and 4 processing to the CPU where\nthe application for the corresponding flow is running.  RFS is an\nextension of Receive Packet Steering (RPS).\n\nThe basic idea of RFS is that when an application calls recvmsg\n(or sendmsg) the application\u0027s running CPU is stored in a hash\ntable that is indexed by the connection\u0027s rxhash which is stored in\nthe socket structure.  The rxhash is passed in skb\u0027s received on\nthe connection from netif_receive_skb.  For each received packet,\nthe associated rxhash is used to look up the CPU in the hash table,\nif a valid CPU is set then the packet is steered to that CPU using\nthe RPS mechanisms.\n\nThe convolution of the simple approach is that it would potentially\nallow OOO packets.  If threads are thrashing around CPUs or multiple\nthreads are trying to read from the same sockets, a quickly changing\nCPU value in the hash table could cause rampant OOO packets--\nwe consider this a non-starter.\n\nTo avoid OOO packets, this solution implements two types of hash\ntables: rps_sock_flow_table and rps_dev_flow_table.\n\nrps_sock_table is a global hash table.  Each entry is just a CPU\nnumber and it is populated in recvmsg and sendmsg as described above.\nThis table contains the \"desired\" CPUs for flows.\n\nrps_dev_flow_table is specific to each device queue.  Each entry\ncontains a CPU and a tail queue counter.  The CPU is the \"current\"\nCPU for a matching flow.  The tail queue counter holds the value\nof a tail queue counter for the associated CPU\u0027s backlog queue at\nthe time of last enqueue for a flow matching the entry.\n\nEach backlog queue has a queue head counter which is incremented\non dequeue, and so a queue tail counter is computed as queue head\ncount + queue length.  When a packet is enqueued on a backlog queue,\nthe current value of the queue tail counter is saved in the hash\nentry of the rps_dev_flow_table.\n\nAnd now the trick: when selecting the CPU for RPS (get_rps_cpu)\nthe rps_sock_flow table and the rps_dev_flow table for the RX queue\nare consulted.  When the desired CPU for the flow (found in the\nrps_sock_flow table) does not match the current CPU (found in the\nrps_dev_flow table), the current CPU is changed to the desired CPU\nif one of the following is true:\n\n- The current CPU is unset (equal to RPS_NO_CPU)\n- Current CPU is offline\n- The current CPU\u0027s queue head counter \u003e\u003d queue tail counter in the\nrps_dev_flow table.  This checks if the queue tail has advanced\nbeyond the last packet that was enqueued using this table entry.\nThis guarantees that all packets queued using this entry have been\ndequeued, thus preserving in order delivery.\n\nMaking each queue have its own rps_dev_flow table has two advantages:\n1) the tail queue counters will be written on each receive, so\nkeeping the table local to interrupting CPU s good for locality.  2)\nthis allows lockless access to the table-- the CPU number and queue\ntail counter need to be accessed together under mutual exclusion\nfrom netif_receive_skb, we assume that this is only called from\ndevice napi_poll which is non-reentrant.\n\nThis patch implements RFS for TCP and connected UDP sockets.\nIt should be usable for other flow oriented protocols.\n\nThere are two configuration parameters for RFS.  The\n\"rps_flow_entries\" kernel init parameter sets the number of\nentries in the rps_sock_flow_table, the per rxqueue sysfs entry\n\"rps_flow_cnt\" contains the number of entries in the rps_dev_flow\ntable for the rxqueue.  Both are rounded to power of two.\n\nThe obvious benefit of RFS (over just RPS) is that it achieves\nCPU locality between the receive processing for a flow and the\napplications processing; this can result in increased performance\n(higher pps, lower latency).\n\nThe benefits of RFS are dependent on cache hierarchy, application\nload, and other factors.  On simple benchmarks, we don\u0027t necessarily\nsee improvement and sometimes see degradation.  However, for more\ncomplex benchmarks and for applications where cache pressure is\nmuch higher this technique seems to perform very well.\n\nBelow are some benchmark results which show the potential benfit of\nthis patch.  The netperf test has 500 instances of netperf TCP_RR\ntest with 1 byte req. and resp.  The RPC test is an request/response\ntest similar in structure to netperf RR test ith 100 threads on\neach host, but does more work in userspace that netperf.\n\ne1000e on 8 core Intel\n   No RFS or RPS\t\t104K tps at 30% CPU\n   No RFS (best RPS config):    290K tps at 63% CPU\n   RFS\t\t\t\t303K tps at 61% CPU\n\nRPC test\ttps\tCPU%\t50/90/99% usec latency\tLatency StdDev\n  No RFS/RPS\t103K\t48%\t757/900/3185\t\t4472.35\n  RPS only:\t174K\t73%\t415/993/2468\t\t491.66\n  RFS\t\t223K\t73%\t379/651/1382\t\t315.61\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fd793d8905720595caede6bd26c5df6c0ecd37f8",
      "tree": "1aab1c7c6db278d0400e9a2e6019955419413a6c",
      "parents": [
        "b0e28f1effd1d840b36e961edc1def81e01b1ca1"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Thu Apr 15 00:16:59 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 15 00:16:59 2010 -0700"
      },
      "message": "net: CONFIG_SMP should be CONFIG_RPS\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "acbbc07145b919248c410e1852b953d385be5c97",
      "tree": "bafccb1c98540a2e6758df44ef72b6c2d55a2a78",
      "parents": [
        "829e0015431537176e38812f88fffe1d3250083e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Apr 11 06:56:11 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 13 03:32:42 2010 -0700"
      },
      "message": "net: uninline skb_bond_should_drop()\n\nskb_bond_should_drop() is too big to be inlined.\n\nThis patch reduces kernel text size, and its compilation time as well\n(shrinking include/linux/netdevice.h)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "18e225f257663c59ff9d4482f07ffd06361fc2ec",
      "tree": "1e131d82de1a07488272d5724a4e641d6a466345",
      "parents": [
        "8e4795605d1e1b39113818ad7c147b8a867a1f6a"
      ],
      "author": {
        "name": "Pavel Roskin",
        "email": "proski@gnu.org",
        "time": "Wed Apr 07 16:40:09 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 07 16:40:09 2010 -0700"
      },
      "message": "net: fix definition of netdev_for_each_mc_addr()\n\nThe first argument should be called ha, not mclist.  All callers use the\nname \"ha\", but if they used a different name, there would be a compile\nerror.\n\nSigned-off-by: Pavel Roskin \u003cproski@gnu.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "22bedad3ce112d5ca1eaf043d4990fa2ed698c87",
      "tree": "b6fba5688d48b1396f01d13ee53610dea7749c15",
      "parents": [
        "a748ee2426817a95b1f03012d8f339c45c722ae1"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Thu Apr 01 21:22:57 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 03 14:22:15 2010 -0700"
      },
      "message": "net: convert multicast list to list_head\n\nConverts the list and the core manipulating with it to be the same as uc_list.\n\n+uses two functions for adding/removing mc address (normal and \"global\"\n variant) instead of a function parameter.\n+removes dev_mcast.c completely.\n+exposes netdev_hw_addr_list_* macros along with __hw_addr_* functions for\n manipulation with lists on a sandbox (used in bonding and 80211 drivers)\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a748ee2426817a95b1f03012d8f339c45c722ae1",
      "tree": "37cb9f8836f05bd49b86eb52ddeff3e98185cc58",
      "parents": [
        "9fc4178b149ae8b0a2fbf83f2f4df3cf8789177b"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Thu Apr 01 21:22:09 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 03 14:22:11 2010 -0700"
      },
      "message": "net: move address list functions to a separate file\n\n+little renaming of unicast functions to be smooth with multicast ones\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b00fabb4020d17bda4bea59507e09fadf573088d",
      "tree": "db746ff4c223cc5ba98927d9f9421285952c7231",
      "parents": [
        "757b77e2b208490868cf21fd22d796eb9bd199c5"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Mar 29 14:47:27 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 30 23:51:08 2010 -0700"
      },
      "message": "netdev: ethtool RXHASH flag\n\nThis adds ethtool and device feature flag to allow control\nof receive hashing offload.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "df3345457a7a174dfb5872a070af80d456985038",
      "tree": "d8d2d2a86d0b3473783ea2709ff242817e78ed54",
      "parents": [
        "2381a55c88453d3f29fe62d235579a05fc20b7b3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Mar 24 19:13:54 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 25 12:07:00 2010 -0700"
      },
      "message": "rps: add CONFIG_RPS\n\nRPS currently depends on SMP and SYSFS\n\nAdding a CONFIG_RPS makes sense in case this requirement changes in the\nfuture. This patch saves about 1500 bytes of kernel text in case SMP is\non but SYSFS is off.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "32a806c194ea112cfab00f558482dd97bee5e44e",
      "tree": "196f572deccc966b3e2682f293cf775b51007658",
      "parents": [
        "755d0e77ac9c8d125388922dc33434ed5b2ebe80"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Fri Mar 19 04:00:23 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 21 18:31:34 2010 -0700"
      },
      "message": "bonding: flush unicast and multicast lists when changing type\n\nAfter the type change, addresses in unicast and multicast lists wouldn\u0027t make\nsense, not to mention possible different lenghts. So flush both lists here.\n\nNote \"dev_addr_discard\" will be very soon replaced by \"dev_mc_flush\" (once\nmc_list conversion will be done).\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e77c8e83dd587f2616d7ff20d23a897891e6e20d",
      "tree": "ba5d2ce6541119f329b2fd51181aaae8528b38f0",
      "parents": [
        "641cb85e68945878d520d5fc3c2dc64aa1dda868",
        "af98441397227a5a4f212cd48710eea72a14dbdb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 20 15:24:29 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 20 15:24:29 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "0641e4fbf2f824faee00ea74c459a088d94905fd",
      "tree": "54fdd8bc2e3a928ff0f7621c06e1e604eaf0529c",
      "parents": [
        "54d259d474e1fee6f6bb8f0f1360d85195199ac5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Mar 18 21:16:45 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 18 21:16:45 2010 -0700"
      },
      "message": "net: Potential null skb-\u003edev dereference\n\nWhen doing \"ifenslave -d bond0 eth0\", there is chance to get NULL\ndereference in netif_receive_skb(), because dev-\u003emaster suddenly becomes\nNULL after we tested it.\n\nWe should use ACCESS_ONCE() to avoid this (or rcu_dereference())\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3ca5b4042ecae5e73c59de62e4ac0db31c10e0f8",
      "tree": "a285e4281bd9ee6a248d905cd4707c15a66bac96",
      "parents": [
        "93d9b7d7a85cfb4e1711d5226eba73586dd4919f"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Wed Mar 10 10:29:35 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 18 20:00:02 2010 -0700"
      },
      "message": "bonding: check return value of nofitier when changing type\n\nThis patch adds the possibility to refuse the bonding type change for\nother subsystems (such as for example bridge, vlan, etc.)\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1e94d72feab025b8f7c55d07020602f82f3a97dd",
      "tree": "f8d38b4fa5b51046e1bbcaf8f3fc88edc2052cae",
      "parents": [
        "a034016287236f435dbb8f1f57aee906f22b4598"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Thu Mar 18 17:45:44 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 18 17:45:44 2010 -0700"
      },
      "message": "rps: Fixed build with CONFIG_SMP not enabled.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a9627f2649a02bea165cfd529d7bcb625c2fcad",
      "tree": "e5d4424b99208c78e2b2fe6ff5a158fc21bdf782",
      "parents": [
        "768bbedf9ca4cc4784eae2003f37abe0818fe0b0"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Tue Mar 16 08:03:29 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 16 21:23:18 2010 -0700"
      },
      "message": "rps: Receive Packet Steering\n\nThis patch implements software receive side packet steering (RPS).  RPS\ndistributes the load of received packet processing across multiple CPUs.\n\nProblem statement: Protocol processing done in the NAPI context for received\npackets is serialized per device queue and becomes a bottleneck under high\npacket load.  This substantially limits pps that can be achieved on a single\nqueue NIC and provides no scaling with multiple cores.\n\nThis solution queues packets early on in the receive path on the backlog queues\nof other CPUs.   This allows protocol processing (e.g. IP and TCP) to be\nperformed on packets in parallel.   For each device (or each receive queue in\na multi-queue device) a mask of CPUs is set to indicate the CPUs that can\nprocess packets. A CPU is selected on a per packet basis by hashing contents\nof the packet header (e.g. the TCP or UDP 4-tuple) and using the result to index\ninto the CPU mask.  The IPI mechanism is used to raise networking receive\nsoftirqs between CPUs.  This effectively emulates in software what a multi-queue\nNIC can provide, but is generic requiring no device support.\n\nMany devices now provide a hash over the 4-tuple on a per packet basis\n(e.g. the Toeplitz hash).  This patch allow drivers to set the HW reported hash\nin an skb field, and that value in turn is used to index into the RPS maps.\nUsing the HW generated hash can avoid cache misses on the packet when\nsteering it to a remote CPU.\n\nThe CPU mask is set on a per device and per queue basis in the sysfs variable\n/sys/class/net/\u003cdevice\u003e/queues/rx-\u003cn\u003e/rps_cpus.  This is a set of canonical\nbit maps for receive queues in the device (numbered by \u003cn\u003e).  If a device\ndoes not support multi-queue, a single variable is used for the device (rx-0).\n\nGenerally, we have found this technique increases pps capabilities of a single\nqueue device with good CPU utilization.  Optimal settings for the CPU mask\nseem to depend on architectures and cache hierarcy.  Below are some results\nrunning 500 instances of netperf TCP_RR test with 1 byte req. and resp.\nResults show cumulative transaction rate and system CPU utilization.\n\ne1000e on 8 core Intel\n   Without RPS: 108K tps at 33% CPU\n   With RPS:    311K tps at 64% CPU\n\nforcedeth on 16 core AMD\n   Without RPS: 156K tps at 15% CPU\n   With RPS:    404K tps at 49% CPU\n\nbnx2x on 16 core AMD\n   Without RPS  567K tps at 61% CPU (4 HW RX queues)\n   Without RPS  738K tps at 96% CPU (8 HW RX queues)\n   With RPS:    854K tps at 76% CPU (4 HW RX queues)\n\nCaveats:\n- The benefits of this patch are dependent on architecture and cache hierarchy.\nTuning the masks to get best performance is probably necessary.\n- This patch adds overhead in the path for processing a single packet.  In\na lightly loaded server this overhead may eliminate the advantages of\nincreased parallelism, and possibly cause some relative performance degradation.\nWe have found that masks that are cache aware (share same caches with\nthe interrupting CPU) mitigate much of this.\n- The RPS masks can be changed dynamically, however whenever the mask is changed\nthis introduces the possibility of generating out of order packets.  It\u0027s\nprobably best not change the masks too frequently.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\n\n include/linux/netdevice.h |   32 ++++-\n include/linux/skbuff.h    |    3 +\n net/core/dev.c            |  335 +++++++++++++++++++++++++++++++++++++--------\n net/core/net-sysfs.c      |  225 ++++++++++++++++++++++++++++++-\n net/core/skbuff.c         |    2 +\n 5 files changed, 538 insertions(+), 59 deletions(-)\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bd38081160bb3d036db98472e537b6a7dd4da51a",
      "tree": "26af1cae5e2dda3269da6f812586e93954582d54",
      "parents": [
        "a2835763e130c343ace5320c20d33c281e7097b7"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Feb 26 06:34:53 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 27 02:43:40 2010 -0800"
      },
      "message": "dev: support deferring device flag change notifications\n\nSplit dev_change_flags() into two functions: __dev_change_flags() to\nperform the actual changes and __dev_notify_flags() to invoke netdevice\nnotifiers. This will be used by rtnl_link to defer netlink notifications\nuntil the device has been fully configured.\n\nThis changes ordering of some operations, in particular:\n\n- netlink notifications are sent after all changes have been performed.\n  As a side effect this surpresses one unnecessary netlink message when\n  the IFF_UP and other flags are changed simultaneously.\n\n- The NETDEV_UP/NETDEV_DOWN and NETDEV_CHANGE notifiers are invoked\n  after all changes have been performed. Their relative is unchanged.\n\n- net_dmaengine_put() is invoked before the NETDEV_DOWN notifier instead\n  of afterwards. This should not make any difference since both RX and TX\n  are already shut down at this point.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a2835763e130c343ace5320c20d33c281e7097b7",
      "tree": "26077aa8aec7a61fd7e3de31c5eeec4960f78079",
      "parents": [
        "10de05afe01c12cedc42eb9ce05b111eed6c8210"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Feb 26 06:34:51 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 27 02:43:39 2010 -0800"
      },
      "message": "rtnetlink: handle rtnl_link netlink notifications manually\n\nIn order to support specifying device flags during device creation,\nwe must be able to roll back device registration in case setting the\nflags fails without sending any notifications related to the device\nto userspace.\n\nThis patch changes rollback_registered_many() and register_netdevice()\nto manually send netlink notifications for devices not handled by\nrtnl_link and allows to defer notifications for devices handled by\nrtnl_link until setup is complete.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ce300c7ffa61165f9bfd16e511ee0cd4114977ab",
      "tree": "874b57409bad0c9620a431272e6bf5c94e270253",
      "parents": [
        "8266d7127c1b0bdf924066c19c71be4d351e9583",
        "9e3bd9190800e8209b4a3e1d724c35f0738dcad2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 27 02:05:54 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 27 02:05:54 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6\n"
    },
    {
      "commit": "caf66e581172dc5032bb84841a91bc7b77ad9876",
      "tree": "6964b20056382eb69667eb35ad3b0fa7fc268221",
      "parents": [
        "b446918b77c717a34eaa853dfab55f579d330551"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Feb 25 12:02:45 2010 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 26 16:59:11 2010 -0500"
      },
      "message": "netdevice.h: check for CONFIG_WLAN instead of CONFIG_WLAN_80211\n\nIn \"wireless: remove WLAN_80211 and WLAN_PRE80211 from Kconfig\" I\ninadvertantly missed a line in include/linux/netdevice.h.  I thereby\neffectively reverted \"net: Set LL_MAX_HEADER properly for wireless.\" by\naccident. :-(  Now we should check there for CONFIG_WLAN instead.\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nReported-by: Christoph Egger \u003csiccegge@stud.informatik.uni-erlangen.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "95c26df829ba4a25f40595cadb4c9433883cbe28",
      "tree": "aa67243806f3012ee82fa182990251952973ffe8",
      "parents": [
        "b280da8d54b8d82b52f368a8703b7ada6c1744d5"
      ],
      "author": {
        "name": "Williams, Mitch A",
        "email": "mitch.a.williams@intel.com",
        "time": "Wed Feb 10 01:43:46 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 12 16:56:08 2010 -0800"
      },
      "message": "net: Add netdev ops for SR-IOV configuration\n\nAdd netdev ops for configuring SR-IOV VF devices through the PF driver.\n\nSigned-off-by: Mitch Williams \u003cmitch.a.williams@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b3d95c5c93d4b57eaea0ad3f582b08a6b5fb3eb1",
      "tree": "3dc48783dc30ed1769b3a50c18861eadd2b67136",
      "parents": [
        "ba211e3ec35820eced89bfe12e2d94e6352a4c5f"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Feb 09 11:49:49 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 12 13:27:45 2010 -0800"
      },
      "message": "include/linux/netdevice.h: Add netif_printk helpers\n\nAdd macros to test a private structure for msg_enable bits\nand the netif_msg_##bit to test and call netdev_printk if set\n\nSimplifies logic in callers and adds message logging consistency\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "571ba42303813106d533bf6bda929d8e289f51bf",
      "tree": "72a4cac3c48dded8aeda6f3f839764b9b766fe13",
      "parents": [
        "21809fafa042fcfff3f788419bed99f3c289745c"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Feb 09 11:49:47 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 12 13:27:44 2010 -0800"
      },
      "message": "netdevice.h: Add netdev_printk helpers like dev_printk\n\nThese netdev_printk routines take a struct net_device * and emit\ndev_printk logging messages adding \"%s: \" ... netdev-\u003edev.parent\nto the dev_printk format and arguments.\n\nThis can create some uniformity in the output message log.\n\nThese helpers should not be used until a successful alloc_netdev.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "15682bc488d4af8c9bb998844a94281025e0a333",
      "tree": "2534589c00cbf695e6c2906f5c228a0006174904",
      "parents": [
        "375c568844e49d292885c7485d4a255f71680e56"
      ],
      "author": {
        "name": "Peter P Waskiewicz Jr",
        "email": "peter.p.waskiewicz.jr@intel.com",
        "time": "Wed Feb 10 20:03:05 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 10 20:03:05 2010 -0800"
      },
      "message": "ethtool: Introduce n-tuple filter programming support\n\nThis patchset enables the ethtool layer to program n-tuple\nfilters to an underlying device.  The idea is to allow capable\nhardware to have static rules applied that can assist steering\nflows into appropriate queues.\n\nHardware that is known to support these types of filters today\nare ixgbe and niu.\n\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6683ece36e3531fc8c75f69e7165c5f20930be88",
      "tree": "4dd9fe9057248577a75eb60ae9f83a999f062b02",
      "parents": [
        "1b924032533033a4dae1a239981677bdae21949b"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Thu Feb 04 10:22:25 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 04 10:22:25 2010 -0800"
      },
      "message": "net: use helpers to access mc list V2\n\nThis patch introduces the similar helpers as those already done for uc list.\nHowever multicast lists are no list_head lists but \"mademanually\". The three\nmacros added by this patch will make the transition of mc_list to list_head\nsmooth in two steps:\n\n1) convert all drivers to use these macros (with the original iterator of type\n   \"struct dev_mc_list\")\n2) once all drivers are converted, convert list type and iterators to \"struct\n   netdev_hw_addr\" in one patch.\n\n\u003eFrom now on, drivers can (and should) use \"netdev_for_each_mc_addr\" to iterate\nover the addresses with iterator of type \"struct netdev_hw_addr\". Also macros\n\"netdev_mc_count\" and \"netdev_mc_empty\" to read list\u0027s length. This is the state\nwhich should be reached in all drivers.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8a83a00b0735190384a348156837918271034144",
      "tree": "f69d903405e2424c196d8648bb6cb18443359373",
      "parents": [
        "6884b348ed759184032306c9435a727741a72298"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sat Jan 30 12:23:03 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 03 20:20:32 2010 -0800"
      },
      "message": "net: maintain namespace isolation between vlan and real device\n\nIn the vlan and macvlan drivers, the start_xmit function forwards\ndata to the dev_queue_xmit function for another device, which may\npotentially belong to a different namespace.\n\nTo make sure that classification stays within a single namespace,\nthis resets the potentially critical fields.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "32e7bfc41110bc8f29ec0f293c3bcee6645fef34",
      "tree": "b770a040aee7a6a196514cbf5328debb33321d4d",
      "parents": [
        "9010bc3364db56dd88a1851e0797e597e322ce08"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Mon Jan 25 13:36:10 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 25 13:36:10 2010 -0800"
      },
      "message": "net: use helpers to access uc list V2\n\nThis patch introduces three macros to work with uc list from net drivers.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a271623f871dda970319ca15dfad3a8c8c36249f",
      "tree": "169083259c6cf93b6017310e6b3b61b92b1dace6",
      "parents": [
        "da6b33306801af7ee6479c177051e70842974932"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jan 22 10:13:10 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jan 23 01:21:26 2010 -0800"
      },
      "message": "netdev: remove certain HAVE_ macros\n\nAfter netdev_ops compat code HAVE_* macros aren\u0027t needed, in fact\nthey _will_ result in compile breakage for out of tree drivers.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "11380a4b2d86fae9a6bce75c9373668cc323fe57",
      "tree": "ded9a419d836af9eb0cd0e40858aec1f0cc3b61a",
      "parents": [
        "6373464288cab09bc641be301d8d30fc9f64ba71"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 19 13:46:10 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 19 13:46:10 2010 -0800"
      },
      "message": "net: Unexport napi_gro_flush().\n\nNothing outside of net/core/dev.c uses it.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc4a7489663250360cd40d5adf06a08d1c5d54df",
      "tree": "ce8fed0a2dfc175b03834bb94717f5f2970c9146",
      "parents": [
        "012093f6d5d89e6ed6e89c55c383f84b1cff7a78"
      ],
      "author": {
        "name": "Patrick Mullaney",
        "email": "pmullaney@novell.com",
        "time": "Thu Dec 03 15:59:22 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 15:59:22 2009 -0800"
      },
      "message": "netdevice: provide common routine for macvlan and vlan operstate management\n\nProvide common routine for the transition of operational state for a leaf\ndevice during a root device transition.\n\nSigned-off-by: Patrick Mullaney \u003cpmullaney@novell.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dcbccbd4f1f6ad0f0e169d4b2e816e42bde06f82",
      "tree": "2a2accb2cedfea63ecaafbe1156fc44b4f2acff1",
      "parents": [
        "a5ee155136b4a8f4ab0e4c9c064b661da475e298"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Nov 29 22:25:26 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 16:15:50 2009 -0800"
      },
      "message": "net: Implement for_each_netdev_reverse.\n\nI will need this shortly to implement network namespace shutdown\nbatching.  For sanity sake network devices should be removed in\nthe reverse order they were created in.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "445409602c09219767c06497c0dc2285eac244ed",
      "tree": "5cfbd6d94f737107f3e6356fca2457ab3a66bb44",
      "parents": [
        "1bda8aa86b89d4c9b668000127ff87172f2daa10"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Nov 26 06:07:08 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 26 15:52:58 2009 -0800"
      },
      "message": "veth: move loopback logic to common location\n\nThe veth driver contains code to forward an skb\nfrom the start_xmit function of one network\ndevice into the receive path of another device.\n\nMoving that code into a common location lets us\nreuse the code for direct forwarding of data\nbetween macvlan ports, and possibly in other\ndrivers.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e014debecd3ee3832e6476b3a9c948edfcfd1250",
      "tree": "9b73836a5dc3c1df92b17037a12bbbfaf5f495d3",
      "parents": [
        "e2ce146848c81af2f6d42e67990191c284bf0c33"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 17 05:59:21 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 18 05:03:11 2009 -0800"
      },
      "message": "linkwatch: linkwatch_forget_dev() to speedup device dismantle\n\nHerbert Xu a écrit :\n\u003e On Tue, Nov 17, 2009 at 04:26:04AM -0800, David Miller wrote:\n\u003e\u003e Really, the link watch stuff is just due for a redesign.  I don\u0027t\n\u003e\u003e think a simple hack is going to cut it this time, sorry Eric :-)\n\u003e\n\u003e I have no objections against any redesigns, but since the only\n\u003e caller of linkwatch_forget_dev runs in process context with the\n\u003e RTNL, it could also legally emit those events.\n\nThanks guys, here an updated version then, before linkwatch surgery ?\n\nIn this version, I force the event to be sent synchronously.\n\n[PATCH net-next-2.6] linkwatch: linkwatch_forget_dev() to speedup device dismantle\n\ntime ip link del eth3.103 ; time ip link del eth3.104 ; time ip link del eth3.105\n\nreal\t0m0.266s\nuser\t0m0.000s\nsys\t0m0.001s\n\nreal\t0m0.770s\nuser\t0m0.000s\nsys\t0m0.000s\n\nreal\t0m1.022s\nuser\t0m0.000s\nsys\t0m0.000s\n\nOne problem of current schem in vlan dismantle phase is the\nholding of device done by following chain :\n\nvlan_dev_stop() -\u003e\n\tnetif_carrier_off(dev) -\u003e\n\t\tlinkwatch_fire_event(dev) -\u003e\n\t\t\tdev_hold() ...\n\nAnd __linkwatch_run_queue() runs up to one second later...\n\nA generic fix to this problem is to add a linkwatch_forget_dev() method\nto unlink the device from the list of watched devices.\n\ndev-\u003elink_watch_next becomes dev-\u003elink_watch_list (and use a bit more memory),\nto be able to unlink device in O(1).\n\nAfter patch :\ntime ip link del eth3.103 ; time ip link del eth3.104 ; time ip link del eth3.105\n\nreal    0m0.024s\nuser    0m0.000s\nsys     0m0.000s\n\nreal    0m0.032s\nuser    0m0.000s\nsys     0m0.001s\n\nreal    0m0.033s\nuser    0m0.000s\nsys     0m0.000s\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d83345adf96bc13a5e360f4649a2e68ef968dec0",
      "tree": "015fe31fde6b5ea6abc6ebb75aa446fa63fcbb79",
      "parents": [
        "b038b0401f9697ee1d7df40021b96e7de0564938"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Nov 16 03:36:51 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 17 23:51:52 2009 -0800"
      },
      "message": "net: add dev_txq_stats_fold() helper\n\nSome drivers ndo_get_stats() method need to perform txqueue stats folding.\n\nMove folding from dev_get_stats() to a new dev_txq_stats_fold() function\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9a1654ba0b50402a6bd03c7b0fe9b0200a5ea7b1",
      "tree": "3defd37672da2069e6c0ffd86b0b99c694324985",
      "parents": [
        "cb43e23435a66d5ed90f804af9efe9096503979f"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Sun Nov 15 07:20:12 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 15 22:08:33 2009 -0800"
      },
      "message": "net: Optimize hard_start_xmit() return checking\n\nRecent changes in the TX error propagation require additional checking\nand masking of values returned from hard_start_xmit(), mainly to\nseparate cases where skb was consumed. This aim can be simplified by\nchanging the order of NETDEV_TX and NET_XMIT codes, because the latter\nare treated similarly to negative (ERRNO) values.\n\nAfter this change much simpler dev_xmit_complete() is also used in\nsch_direct_xmit(), so it is moved to netdevice.h.\n\nAdditionally NET_RX definitions in netdevice.h are moved up from\nbetween TX codes to avoid confusion while reading the TX comment.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ce81b76a39835a721cd168e0c0bcfe7132f1f66b",
      "tree": "ed725dd6163f328d4717fb3ed28c9e6c2691bc88",
      "parents": [
        "bee7ca9ec03a26676ea2b1c28dc4039348eff3e1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Nov 11 17:34:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 13 20:38:49 2009 -0800"
      },
      "message": "ipv6: use RCU to walk list of network devices\n\nNo longer need read_lock(\u0026dev_base_lock), use RCU instead.\nWe also can avoid taking references on inet6_dev structs.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "572a9d7b6fc7f20f573664063324c086be310c42",
      "tree": "0ab3655fdfa923b0b9c6c1ee51a2e31e97e9549f",
      "parents": [
        "9ea2bdab11da97b2ac6f87d79976d25fa6d27295"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Nov 10 06:14:14 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 13 14:07:32 2009 -0800"
      },
      "message": "net: allow to propagate errors through -\u003endo_hard_start_xmit()\n\nCurrently the -\u003endo_hard_start_xmit() callbacks are only permitted to return\none of the NETDEV_TX codes. This prevents any kind of error propagation for\nvirtual devices, like queue congestion of the underlying device in case of\nlayered devices, or unreachability in case of tunnels.\n\nThis patches changes the NET_XMIT codes to avoid clashes with the NETDEV_TX\ncodes and changes the two callers of dev_hard_start_xmit() to expect either\nerrno codes, NET_XMIT codes or NETDEV_TX codes as return value.\n\nIn case of qdisc_restart(), all non NETDEV_TX codes are mapped to NETDEV_TX_OK\nsince no error propagation is possible when using qdiscs. In case of\ndev_queue_xmit(), the error is propagated upwards.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "254245d23396aca1f9100d500163d7bd6019ab6f",
      "tree": "3176ba0db8478094d4d5187c20d00be9880d9acf",
      "parents": [
        "856540ee3116ac04a49bc06c2f30f54dd3faf7db"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Nov 10 07:54:47 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 10 22:26:29 2009 -0800"
      },
      "message": "netdev: add netdev_continue_rcu\n\nThis adds an RCU macro for continuing search, useful for some\nnetwork devices like vlan.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d94d9fee9fa4e66a0b91640a694b8b10177075b3",
      "tree": "330b2b19e63c92f1fef3d9dbe0733ddeb0109664",
      "parents": [
        "b8883a65be2d925ea82b14ca0068ce9a6c8bac1f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Nov 04 09:50:58 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 04 09:50:58 2009 -0800"
      },
      "message": "net: cleanup include/linux\n\nThis cleanup patch puts struct/union/enum opening braces,\nin first line to ease grep games.\n\nstruct something\n{\n\nbecomes :\n\nstruct something {\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c6d14c84566d6b70ad9dc1618db0dec87cca9300",
      "tree": "5ec75245cfda4d61e6b4506b6217f047ff4af01a",
      "parents": [
        "d0075634cf9d288988f57392a1f132d2053af961"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Nov 04 05:43:23 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 04 05:43:23 2009 -0800"
      },
      "message": "net: Introduce for_each_netdev_rcu() iterator\n\nAdds RCU management to the list of netdevices.\n\nConvert some for_each_netdev() users to RCU version, if\nit can avoid read_lock-ing dev_base_lock\n\nIe:\n\tread_lock(\u0026dev_base_loack);\n\tfor_each_netdev(net, dev)\n\t\tsome_action();\n\tread_unlock(\u0026dev_base_lock);\n\nbecomes :\n\n\trcu_read_lock();\n\tfor_each_netdev_rcu(net, dev)\n\t\tsome_action();\n\trcu_read_unlock();\n\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "72c9528bab94cc052d00ce241b8e85f5d71e45f0",
      "tree": "fcec7a40e0242e659474a4d9f501d9213225aa55",
      "parents": [
        "68d8287ce1e1da3c99881385a93e74f68c454fc2"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 30 07:11:27 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 01 23:55:08 2009 -0800"
      },
      "message": "net: Introduce dev_get_by_name_rcu()\n\nSome workloads hit dev_base_lock rwlock pretty hard.\nWe can use RCU lookups to avoid touching this rwlock\n(and avoid touching netdevice refcount)\n\nnetdevices are already freed after a RCU grace period, so this patch\nadds no penalty at device dismantle time.\n\nHowever, it adds a synchronize_rcu() call in dev_change_name()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c509a6c9393b27a8c5a01acd4a72616206cfc24",
      "tree": "4e6aa609537144de3d09e461528d22e7f448ef55",
      "parents": [
        "0bd8d53656da72bc065766b5f2a05ca738020b8a"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@aristanetworks.com",
        "time": "Thu Oct 29 14:18:21 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 30 12:41:18 2009 -0700"
      },
      "message": "net: Allow devices to specify a device specific sysfs group.\n\nThis isn\u0027t beautifully abstracted, but it is simple,\nsimplifies uses and so far is only needed for the bonding driver.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c7c4b3b6e976b95facbb723951bdcd554a3530a4",
      "tree": "9a53a7f850eec755b3c66d4a129d31ce4a8591da",
      "parents": [
        "5b252f0c2f98df21fadf0f6cf189b87a0b938228"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Thu Oct 29 21:36:53 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 29 21:36:53 2009 -0700"
      },
      "message": "gro: Change all receive functions to return GRO result codes\n\nThis will allow drivers to adjust their receive path dynamically\nbased on whether GRO is being applied successfully.\n\nCurrently all in-tree callers ignore the return values of these\nfunctions and do not need to be changed.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5b252f0c2f98df21fadf0f6cf189b87a0b938228",
      "tree": "d3003625d8c5fd6d54466f81cffab1b5459bb98f",
      "parents": [
        "0519d83d83ed485b5a1f9222ff69d7d6c9bb8a01"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Thu Oct 29 07:17:09 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 29 21:33:55 2009 -0700"
      },
      "message": "gro: Name the GRO result enumeration type\n\nThis clarifies which return and parameter types are GRO result codes\nand not RX result codes.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fb699dfd426a189fe33b91586c15176a75c8aed0",
      "tree": "c90a8aadc10ac9a9e7b67b2d36ce61853917e3ba",
      "parents": [
        "e0c5567d06ecf7777b6c46f4d933a0a6e09a44f3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 19 19:18:49 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 29 01:42:55 2009 -0700"
      },
      "message": "net: Introduce dev_get_by_index_rcu()\n\nSome workloads hit dev_base_lock rwlock pretty hard.\nWe can use RCU lookups to avoid touching this rwlock.\n\nnetdevices are already freed after a RCU grace period, so this patch\nadds no penalty at device dismantle time.\n\ndev_ifname() converted to dev_get_by_index_rcu()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "df5c79452f26f2a3d0883a213102515cfeb7aae9",
      "tree": "2e1533451f2024a99c32380e459479b66b658f02",
      "parents": [
        "383ff34bebc2eccae71686fbd72e1cd948859675"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Wed Oct 28 18:24:35 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 29 01:04:03 2009 -0700"
      },
      "message": "net: Add ndo_fcoe_get_wwn to net_device_ops\n\nAdd ndo_fcoe_get_wwn so Fiber Channel over Ethernet (FCoE) can make use of\nthe provided World Wide Port Name (WWPN) and World Wide Node Name (WWNN)\nfrom the underlying network interface driver.\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9b5e383c11b08784eb0087617f880077982ef769",
      "tree": "090e01601641c39bfb160aa6772336e363628503",
      "parents": [
        "44a0873d52282f24b1894c58c0f157e0f626ddc9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Oct 27 07:04:19 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 28 02:22:06 2009 -0700"
      },
      "message": "net: Introduce unregister_netdevice_many()\n\nIntroduce rollback_registered_many() and unregister_netdevice_many()\n\nrollback_registered_many() is able to perform necessary steps at device dismantle\ntime, factorizing two expensive synchronize_net() calls.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "44a0873d52282f24b1894c58c0f157e0f626ddc9",
      "tree": "2d913650b6c9474f135546cf06fe5e8d174ef478",
      "parents": [
        "83ab50a56e6ea94627fea83ce7b03332bd4c2f02"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Oct 27 07:03:04 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 28 02:22:06 2009 -0700"
      },
      "message": "net: Introduce unregister_netdevice_queue()\n\nThis patchs adds an unreg_list anchor to struct net_device, and\nintroduces an unregister_netdevice_queue() function, able to queue\na net_device to a list instead of immediately unregister it.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7fe13c5733790ef582769a54693fa6a5abf3c032",
      "tree": "567eb4394b642ddc81ff05521329d75d1cf47b88",
      "parents": [
        "8aa0f64ac3835a6daf84d0b0e07c4c01d7d8eddc",
        "10c435f18b8cb78a5870c08d52955594f5ec9c31"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 11 23:15:47 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 11 23:15:47 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "d308e38fa5467fbb523fc13e4b984375c2198c3d",
      "tree": "ff00c2d25a3b1e33fb30751147b0a1468c401a2e",
      "parents": [
        "a4d63a943735efa30270ce70716d43323fd40f02"
      ],
      "author": {
        "name": "Wolfram Sang",
        "email": "w.sang@pengutronix.de",
        "time": "Wed Oct 07 13:53:11 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 07 13:53:11 2009 -0700"
      },
      "message": "include/linux/netdevice.h: fix nanodoc mismatch\n\nnanodoc was missing an ndo_-prefix.\n\nSigned-off-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "32953543221cfe2bf0a24205fab225e5b8ed81a0",
      "tree": "48343bcd03f897a97fde1dd597205e8323d1323a",
      "parents": [
        "ec1b4cf74c81bfd0fbe5bf62bafc86c45917e72f"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Oct 05 06:01:03 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 07 01:10:47 2009 -0700"
      },
      "message": "dcb: data center bridging ops should be r/o\n\nThe data center bridging ops structure can be const\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nAcked-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f205ce83a766c08965ec78342f138cdc00631fba",
      "tree": "7a9d2db6c16594ef7c730ca93a87131cf0abca41",
      "parents": [
        "3dc95666df0e1ae5b7381a8ec97a583bb3ce4306",
        "b31c50a7f9e93a61d14740dedcbbf2c376998bc7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 17 20:53:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 17 20:53:52 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (66 commits)\n  be2net: fix some cmds to use mccq instead of mbox\n  atl1e: fix 2.6.31-git4 -- ATL1E 0000:03:00.0: DMA-API: device driver frees DMA\n  pkt_sched: Fix qstats.qlen updating in dump_stats\n  ipv6: Log the affected address when DAD failure occurs\n  wl12xx: Fix print_mac() conversion.\n  af_iucv: fix race when queueing skbs on the backlog queue\n  af_iucv: do not call iucv_sock_kill() twice\n  af_iucv: handle non-accepted sockets after resuming from suspend\n  af_iucv: fix race in __iucv_sock_wait()\n  iucv: use correct output register in iucv_query_maxconn()\n  iucv: fix iucv_buffer_cpumask check when calling IUCV functions\n  iucv: suspend/resume error msg for left over pathes\n  wl12xx: switch to %pM to print the mac address\n  b44: the poll handler b44_poll must not enable IRQ unconditionally\n  ipv6: Ignore route option with ROUTER_PREF_INVALID\n  bonding: make ab_arp select active slaves as other modes\n  cfg80211: fix SME connect\n  rc80211_minstrel: fix contention window calculation\n  ssb/sdio: fix printk format warnings\n  p54usb: add Zcomax XG-705A usbid\n  ...\n"
    },
    {
      "commit": "a4dbd6740df0872cdf0a86841f75beec8381964d",
      "tree": "1093687845d89f8397d61e7df1ad8546a5a25225",
      "parents": [
        "5b2ea2f10dbb2fa91d8033993000f8664309395f"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Wed Jun 24 10:06:31 2009 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Sep 15 09:50:47 2009 -0700"
      },
      "message": "driver model: constify attribute groups\n\nLet attribute group vectors be declared \"const\".  We\u0027d\nlike to let most attribute metadata live in read-only\nsections... this is a start.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "75c78500ddad74b229cd0691496b8549490496a2",
      "tree": "5249219d68627421e4717c4e8f03f8b4bbad2e92",
      "parents": [
        "481a8199142c050b72bff8a1956a49fd0a75bbe0"
      ],
      "author": {
        "name": "Moni Shoua",
        "email": "monis@voltaire.com",
        "time": "Tue Sep 15 02:37:40 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 15 02:37:40 2009 -0700"
      },
      "message": "bonding: remap muticast addresses without using dev_close() and dev_open()\n\nThis patch fixes commit e36b9d16c6a6d0f59803b3ef04ff3c22c3844c10. The approach\nthere is to call dev_close()/dev_open() whenever the device type is changed in\norder to remap the device IP multicast addresses to HW multicast addresses.\nThis approach suffers from 2 drawbacks:\n\n*. It assumes tha the device is UP when calling dev_close(), or otherwise\n   dev_close() has no affect. It is worth to mention that initscripts (Redhat)\n   and sysconfig (Suse) doesn\u0027t act the same in this matter. \n*. dev_close() has other side affects, like deleting entries from the routing\n   table, which might be unnecessary.\n\nThe fix here is to directly remap the IP multicast addresses to HW multicast\naddresses for a bonding device that changes its type, and nothing else.\n   \nReported-by:   Jason Gunthorpe \u003cjgunthorpe@obsidianresearch.com\u003e\nSigned-off-by: Moni Shoua \u003cmonis@voltaire.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "384912ed194e43c03ad1cdaa09b0b1e488c34d46",
      "tree": "bdaae15252819543cff0900941238d2b99bb2300",
      "parents": [
        "f510c35de0e63e1066db83d2fdce99e6dbde0c80"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Aug 31 21:08:19 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 11 12:54:55 2009 -0700"
      },
      "message": "net: Add DEVTYPE support for Ethernet based devices\n\nThe Ethernet framing is used for a lot of devices these days. Most\nprominent are WiFi and WiMAX based devices. However for userspace\napplication it is important to classify these devices correctly and\nnot only see them as Ethernet devices. The daemons like HAL, DeviceKit\nor even NetworkManager with udev support tries to do the classification\nin userspace with a lot trickery and extra system calls. This is not\ngood and actually reaches its limitations. Especially since the kernel\ndoes know the type of the Ethernet device it is pretty stupid.\n\nTo solve this problem the underlying device type needs to be set and\nthen the value will be exported as DEVTYPE via uevents and available\nwithin udev.\n\n  # cat /sys/class/net/wlan0/uevent\n  DEVTYPE\u003dwlan\n  INTERFACE\u003dwlan0\n  IFINDEX\u003d5\n\nThis is similar to subsystems like USB and SCSI that distinguish\nbetween hosts, devices, disks, partitions etc.\n\nThe new SET_NETDEV_DEVTYPE() is a convenience helper to set the actual\ndevice type. All device types are free form, but for convenience the\nsame strings as used with RFKILL are choosen.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "af356afa010f3cd2c8b8fcc3bce90f7a7b7ec02a",
      "tree": "302d938363bbaec3e69a58e36dbf8a304b24144c",
      "parents": [
        "5b9a9ccfad8553dbf7a9b17ba78bad70215ed0e2"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Sep 04 06:41:18 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 06 02:07:03 2009 -0700"
      },
      "message": "net_sched: reintroduce dev-\u003eqdisc for use by sch_api\n\nCurrently the multiqueue integration with the qdisc API suffers from\na few problems:\n\n- with multiple queues, all root qdiscs use the same handle. This means\n  they can\u0027t be exposed to userspace in a backwards compatible fashion.\n\n- all API operations always refer to queue number 0. Newly created\n  qdiscs are automatically shared between all queues, its not possible\n  to address individual queues or restore multiqueue behaviour once a\n  shared qdisc has been attached.\n\n- Dumps only contain the root qdisc of queue 0, in case of non-shared\n  qdiscs this means the statistics are incomplete.\n\nThis patch reintroduces dev-\u003eqdisc, which points to the (single) root qdisc\nfrom userspace\u0027s point of view. Currently it either points to the first\n(non-shared) default qdisc, or a qdisc shared between all queues. The\nfollowing patches will introduce a classful dummy qdisc, which will be used\nas root qdisc and contain the per-queue qdiscs as children.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cb45439977d3602b91dd0aca2d94fa3b32aebba6",
      "tree": "eec57859eb017f0a4288cbc88b47e9b9167468c5",
      "parents": [
        "61357325f377889a1daffa14962d705dc814dd0e"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Mon Aug 31 12:31:36 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 01 01:24:20 2009 -0700"
      },
      "message": "net: Add ndo_fcoe_enable/ndo_fcoe_disable to net_device_ops\n\nAdd ndo_fcoe_enable/_disable to net_device_ops so the corresponding\nHW can initialize itself for FCoE traffic or clean up after FCoE traffic is\ndone. This is expected to be called by the kernel FCoE stack upon receiving\na request for creating an FCoE instance on the corresponding netdev interface.\nWhen implemented by the actual HW, the HW driver check the op code to perform\ncorresponding initialization or clean up for FCoE. The initialization normally\nincludes allocating extra queues for FCoE, setting corresponding HW registers\nfor FCoE, indicating FCoE offload features via netdev, etc. The clean-up would\ninclude releasing the resources allocated for FCoE.\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dc1f8bf68b311b1537cb65893430b6796118498a",
      "tree": "25aa489e1c88d6a535b6d6a694dcaf41f5256fa4",
      "parents": [
        "9e39f7c5b311a306977c5471f9e2ce4c456aa038"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Aug 31 19:50:40 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 01 01:13:03 2009 -0700"
      },
      "message": "netdev: change transmit to limited range type\n\nThe transmit function should only return one of three possible values,\nsome drivers got confused and returned errno\u0027s or other values.\nThis changes the definition so that this can be caught at compile time.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7b3d3e4fc685a7d7e0b4c207ce24dfbab5689eb0",
      "tree": "37b8181e8cd072f49d23f0e776b367e86b18d41e",
      "parents": [
        "6ca8b990e07914a87fd1f6dfc5507f5e1c4572e2"
      ],
      "author": {
        "name": "Krishna Kumar",
        "email": "krkumar2@in.ibm.com",
        "time": "Sat Aug 29 20:21:21 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 30 22:16:20 2009 -0700"
      },
      "message": "netdevice: Consolidate to use existing macros where available.\n\nPatch compiled and 32 simultaneous netperf testing ran fine.\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bb2af4f54ffa8245d5ce278cae9c66198bc14d8b",
      "tree": "3e35b71afd57fe94e978c85287d0a1f556af4ab0",
      "parents": [
        "36a82236314b5ebd6e3e1eb8bb7b850c83e53c3a"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Fri Aug 14 12:41:57 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 14 16:12:09 2009 -0700"
      },
      "message": "net: Add NETIF_F_FCOE_MTU to indicate support for a different MTU for FCoE\n\nAdd NETIF_F_FCOE_MTU to indicate that the NIC can support a secondary MTU for\nconverged traffic of LAN and Fiber Channel over Ethernet (FCoE). The MTU for\nFCoE is 2158 \u003d 14 (FCoE header) + 24 (FC header) + 2112 (FC max payload) +\n4 (FC CRC) + 4 (FCoE trailer).\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0e8635a8e1f2d4a9e1bfc6c3b21419a5921e674f",
      "tree": "fe9a6f5d21259e51d0ac87f00787b32248f2851a",
      "parents": [
        "6b1344724e10c166d9e3c17011ed879ddf302e94"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Sat Jun 20 00:53:25 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 05 19:15:35 2009 -0700"
      },
      "message": "net: remove NET_RX_BAD and NET_RX_CN* defines\n\nalmost no users in the tree; and the few that use them treat them\nlike NET_RX_DROP.\n\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "31278e71471399beaff9280737e52b47db4dc345"
}
