)]}'
{
  "log": [
    {
      "commit": "62f2a3a48bdc99822a24356e667e52c30df287c9",
      "tree": "acad792fc90ac7d55974729f3b591e75b0f591dd",
      "parents": [
        "b73c43f884b1b26ef8e824a33f3924f92e493c11"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Wed Jul 13 14:10:29 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 14 15:18:49 2011 -0700"
      },
      "message": "net: remove NETIF_F_ALL_TX_OFFLOADS\n\nThere is no software fallback implemented for SCTP or FCoE checksumming,\nand so it should not be passed on by software devices like bridge or bonding.\n\nFor VLAN devices, this is different. First, the driver for underlying device\nshould be prepared to get offloaded packets even when the feature is disabled\n(especially if it advertises it in vlan_features). Second, devices under\nVLANs do not get replaced without tearing down the VLAN first.\n\nThis fixes a mess I accidentally introduced while converting bonding to\nndo_fix_features.\n\nNETIF_F_SOFT_FEATURES are removed from BOND_VLAN_FEATURES because they\nare unused as of commit 712ae51afd.\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3019de124b9f5b1526cb3668b74af14371e21795",
      "tree": "3b4fd5843b61f3a860824ec38827cf0256620eed",
      "parents": [
        "5a079c305ad4dda9708b7a29db4a8bd38e21c3a6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 06 16:41:33 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 06 16:41:33 2011 -0700"
      },
      "message": "net: Rework netdev_drivername() to avoid warning.\n\nThis interface uses a temporary buffer, but for no real reason.\nAnd now can generate warnings like:\n\nnet/sched/sch_generic.c: In function dev_watchdog\nnet/sched/sch_generic.c:254:10: warning: unused variable drivername\n\nJust return driver-\u003ename directly or \"\".\n\nReported-by: Connor Hansen \u003ccmdkhh@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "449f4544267e73d5db372971da63634707c32299",
      "tree": "acee6de13f34c179ec46ef7f8a49e66b229f4460",
      "parents": [
        "034cfe48d0efc248ba4b725e3a94b95e76fbc5d3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu May 19 12:24:16 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 20 00:33:18 2011 -0400"
      },
      "message": "macvlan: remove one synchronize_rcu() call\n\nWhen one macvlan device is dismantled, we can avoid one\nsynchronize_rcu() call done after deletion from hash list, since caller\nwill perform a synchronize_net() call after its ndo_stop() call.\n\nAdd a new netdev-\u003edismantle field to signal this dismantle intent.\n\nReduces RTNL hold time.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Patrick McHardy \u003ckaber@trash.net\u003e\nCC: Ben Greear \u003cgreearb@candelatech.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bdc220da3209d50b8c295490dec94845c88670a2",
      "tree": "00113e90fecf388f084622380774c0b175728954",
      "parents": [
        "72a8f97bf2dfe1b0f02ba8dbaed7d6b76657aae3"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon May 09 17:42:46 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 13 14:07:23 2011 -0400"
      },
      "message": "netdevice.h: Align struct net_device members\n\nSave a bit of space.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "afe12cc86b0ba545a01ad8716539ab07ab6e9e89",
      "tree": "edaa2912ae3acab49be8cfbfc75b689fdccd31f3",
      "parents": [
        "6c60408e33aba6d1d7241bc9be3b8d1b39509291"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Sat May 07 03:22:17 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 12 18:40:56 2011 -0400"
      },
      "message": "net: introduce netdev_change_features()\n\nIt will be needed by bonding and other drivers changing vlan_features\nafter ndo_init callback.\n\nAs a bonus, this includes kernel-doc for netdev_update_features().\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7f267051bd7a280265b1b5ead58e9c6e4e1ac3a4",
      "tree": "79b2412e7ccfcdb4ad09d5001efae28c77b28de3",
      "parents": [
        "f0a619ccfb8a2ec8ff083a02299cfd076c362b27"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Mon May 09 11:53:27 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 12 17:54:16 2011 -0400"
      },
      "message": "net: group FCoE related feature flags\n\nMichał Mirosław\u0027s patch (http://patchwork.ozlabs.org/patch/94421/) fixes the\nissue (http://patchwork.ozlabs.org/patch/94188/) about not populating FCoE related\nflags correctly on vlan devices. However, only NETIF_F_FCOE_CRC is part of the\nNETIF_F_ALL_TX_OFFLOADS right now, where weed NETIF_F_FCOE_MTU and NETIF_F_FSO\nas well.\n\nTherefore, add NETIF_F_ALL_FCOE to indicate feature flags used by FCoE TX offloads.\nThese include NETIF_F_FCOE_CRC, NETIF_F_FCOE_MTU, and NETIF_F_FSO and add them to\nbe part of NETIF_F_ALL_TX_OFFLOADS. This would eventually make sure all FCoE needed\nflags are populated properly to vlan devices.\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eed2a12f1ed9aabf0676f4d0db34aad51976c5c6",
      "tree": "a86d3ff7c6a9840131d38af3dfc907c255bfbd99",
      "parents": [
        "47a0200d535f08ac8f784a709c48995ca0b10288"
      ],
      "author": {
        "name": "Mahesh Bandewar",
        "email": "maheshb@google.com",
        "time": "Wed May 04 15:30:11 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 08 15:59:12 2011 -0700"
      },
      "message": "net: Allow ethtool to set interface in loopback mode.\n\nThis patch enables ethtool to set the loopback mode on a given interface.\nBy configuring the interface in loopback mode in conjunction with a policy\nroute / rule, a userland application can stress the egress / ingress path\nexposing the flows of the change in progress and potentially help developer(s)\nunderstand the impact of those changes without even sending a packet out\non the network.\n\nFollowing set of commands illustrates one such example -\n    a) ip -4 addr add 192.168.1.1/24 dev eth1\n    b) ip -4 rule add from all iif eth1 lookup 250\n    c) ip -4 route add local 0/0 dev lo proto kernel scope host table 250\n    d) arp -Ds 192.168.1.100 eth1\n    e) arp -Ds 192.168.1.200 eth1\n    f) sysctl -w net.ipv4.ip_nonlocal_bind\u003d1\n    g) sysctl -w net.ipv4.conf.all.accept_local\u003d1\n    # Assuming that the machine has 8 cores\n    h) taskset 000f netserver -L 192.168.1.200\n    i) taskset 00f0 netperf -t TCP_CRR -L 192.168.1.100 -H 192.168.1.200 -l 30\n\nSigned-off-by: Mahesh Bandewar \u003cmaheshb@google.com\u003e\nAcked-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8ae6daca85c8bbd6a32c382db5e2a2a989f8bed2",
      "tree": "0c85476c2af6568c3d3a73a960d582d2f91a1256",
      "parents": [
        "36504605432996590f889e33d47e2d9c581f7569"
      ],
      "author": {
        "name": "David Decotigny",
        "email": "decot@google.com",
        "time": "Wed Apr 27 18:32:38 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 29 14:01:30 2011 -0700"
      },
      "message": "ethtool: Call ethtool\u0027s get/set_settings callbacks with cleaned data\n\nThis makes sure that when a driver calls the ethtool\u0027s\nget/set_settings() callback of another driver, the data passed to it\nis clean. This guarantees that speed_hi will be zeroed correctly if\nthe called callback doesn\u0027t explicitely set it: we are sure we don\u0027t\nget a corrupted speed from the underlying driver. We also take care of\nsetting the cmd field appropriately (ETHTOOL_GSET/SSET).\n\nThis applies to dev_ethtool_get_settings(), which now makes sure it\nsets up that ethtool command parameter correctly before passing it to\ndrivers. This also means that whoever calls dev_ethtool_get_settings()\ndoes not have to clean the ethtool command parameter. This function\nalso becomes an exported symbol instead of an inline.\n\nAll drivers visible to make allyesconfig under x86_64 have been\nupdated.\n\nSigned-off-by: David Decotigny \u003cdecot@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fa2bd7ff9247f4218dfc907db14d000cd7edd862",
      "tree": "f84f98aa2a87b308589a814892e2a3503a7d689f",
      "parents": [
        "c4d27ef957cd9261c0bc8488edaf8390e412cd35"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Fri Apr 22 06:31:16 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 28 13:33:08 2011 -0700"
      },
      "message": "net: allow user to change NETIF_F_HIGHDMA\n\nNETIF_F_HIGHDMA is like any other TX offloads, so allow user to toggle it.\nThis is needed later for bridge and bonding convertsion to hw_features.\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1742f183fc218798dab6fcf0ded25b6608fc0a48",
      "tree": "47910c74f188e8dc9eb4fbefba01a1cf29de9965",
      "parents": [
        "96339d6c490a32de35fa798ca7922d13a8538ecd"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Fri Apr 22 06:31:16 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 28 13:33:07 2011 -0700"
      },
      "message": "net: fix netdev_increment_features()\n\nSimplify and fix netdev_increment_features() to conform to what is\nstated in netdevice.h comments about NETIF_F_ONE_FOR_ALL.\nInclude FCoE segmentation and VLAN-challedged flags in computation.\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a14842f5a3c0e88a1e59fac5c3025db39721f74",
      "tree": "4d0832c4c9ced2503e2d899eb56952f87511d4ab",
      "parents": [
        "b678027cb77b079bc8e5b94172995d173bdb494b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Apr 20 09:27:32 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 27 23:05:08 2011 -0700"
      },
      "message": "net: filter: Just In Time compiler for x86-64\n\nIn order to speedup packet filtering, here is an implementation of a\nJIT compiler for x86_64\n\nIt is disabled by default, and must be enabled by the admin.\n\necho 1 \u003e/proc/sys/net/core/bpf_jit_enable\n\nIt uses module_alloc() and module_free() to get memory in the 2GB text\nkernel range since we call helpers functions from the generated code.\n\nEAX : BPF A accumulator\nEBX : BPF X accumulator\nRDI : pointer to skb   (first argument given to JIT function)\nRBP : frame pointer (even if CONFIG_FRAME_POINTER\u003dn)\nr9d : skb-\u003elen - skb-\u003edata_len (headlen)\nr8  : skb-\u003edata\n\nTo get a trace of generated code, use :\n\necho 2 \u003e/proc/sys/net/core/bpf_jit_enable\n\nExample of generated code :\n\n# tcpdump -p -n -s 0 -i eth1 host 192.168.20.0/24\n\nflen\u003d18 proglen\u003d147 pass\u003d3 image\u003dffffffffa00b5000\nJIT code: ffffffffa00b5000: 55 48 89 e5 48 83 ec 60 48 89 5d f8 44 8b 4f 60\nJIT code: ffffffffa00b5010: 44 2b 4f 64 4c 8b 87 b8 00 00 00 be 0c 00 00 00\nJIT code: ffffffffa00b5020: e8 24 7b f7 e0 3d 00 08 00 00 75 28 be 1a 00 00\nJIT code: ffffffffa00b5030: 00 e8 fe 7a f7 e0 24 00 3d 00 14 a8 c0 74 49 be\nJIT code: ffffffffa00b5040: 1e 00 00 00 e8 eb 7a f7 e0 24 00 3d 00 14 a8 c0\nJIT code: ffffffffa00b5050: 74 36 eb 3b 3d 06 08 00 00 74 07 3d 35 80 00 00\nJIT code: ffffffffa00b5060: 75 2d be 1c 00 00 00 e8 c8 7a f7 e0 24 00 3d 00\nJIT code: ffffffffa00b5070: 14 a8 c0 74 13 be 26 00 00 00 e8 b5 7a f7 e0 24\nJIT code: ffffffffa00b5080: 00 3d 00 14 a8 c0 75 07 b8 ff ff 00 00 eb 02 31\nJIT code: ffffffffa00b5090: c0 c9 c3\n\nBPF program is 144 bytes long, so native program is almost same size ;)\n\n(000) ldh      [12]\n(001) jeq      #0x800           jt 2    jf 8\n(002) ld       [26]\n(003) and      #0xffffff00\n(004) jeq      #0xc0a81400      jt 16   jf 5\n(005) ld       [30]\n(006) and      #0xffffff00\n(007) jeq      #0xc0a81400      jt 16   jf 17\n(008) jeq      #0x806           jt 10   jf 9\n(009) jeq      #0x8035          jt 10   jf 17\n(010) ld       [28]\n(011) and      #0xffffff00\n(012) jeq      #0xc0a81400      jt 16   jf 13\n(013) ld       [38]\n(014) and      #0xffffff00\n(015) jeq      #0xc0a81400      jt 16   jf 17\n(016) ret      #65535\n(017) ret      #0\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nCc: Hagen Paul Pfeifer \u003chagen@jauu.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1aac62671686e6234c91b5f6fc4caaa850419d5d",
      "tree": "f265c06caa7cf513a06b07726be29090210c0d29",
      "parents": [
        "6d95ff974a4b51121777973ffba7547c648da974"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Apr 12 04:07:39 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 12 14:54:24 2011 -0700"
      },
      "message": "net: vlan_features comment clarification\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c6e1a0d12ca7b4f22c58e55a16beacfb7d3d8462",
      "tree": "6955c20538050329d0bdffdf24a787507ae6fdf1",
      "parents": [
        "14f98f258f1936e0dba77474bd7eda63f61a9826"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Mon Apr 04 22:30:30 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 04 22:30:30 2011 -0700"
      },
      "message": "net: Allow no-cache copy from user on transmit\n\nThis patch uses __copy_from_user_nocache on transmit to bypass data\ncache for a performance improvement.  skb_add_data_nocache and\nskb_copy_to_page_nocache can be called by sendmsg functions to use\nthis feature, initial support is in tcp_sendmsg.  This functionality is\nconfigurable per device using ethtool.\n\nPresumably, this feature would only be useful when the driver does\nnot touch the data.  The feature is turned on by default if a device\nindicates that it does some form of checksum offload; it is off by\ndefault for devices that do no checksum offload or indicate no checksum\nis necessary.  For the former case copy-checksum is probably done\nanyway, in the latter case the device is likely loopback in which case\nthe no cache copy is probably not beneficial.\n\nThis patch was tested using 200 instances of netperf TCP_RR with\n1400 byte request and one byte reply.  Platform is 16 core AMD x86.\n\nNo-cache copy disabled:\n   672703 tps, 97.13% utilization\n   50/90/99% latency:244.31 484.205 1028.41\n\nNo-cache copy enabled:\n   702113 tps, 96.16% utilization,\n   50/90/99% latency 238.56 467.56 956.955\n\nUsing 14000 byte request and response sizes demonstrate the\neffects more dramatically:\n\nNo-cache copy disabled:\n   79571 tps, 34.34 %utlization\n   50/90/95% latency 1584.46 2319.59 5001.76\n\nNo-cache copy enabled:\n   83856 tps, 34.81% utilization\n   50/90/95% latency 2508.42 2622.62 2735.88\n\nNote especially the effect on latency tail (95th percentile).\n\nThis seems to provide a nice performance improvement and is\nconsistent in the tests I ran.  Presumably, this would provide\nthe greatest benfits in the presence of an application workload\nstressing the cache and a lot of transmit data happening.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "083dd8b8aacfcb62d65fb53ec744090879dd8150",
      "tree": "d48017ad6caa13f5a31c23186b16c36a84776c49",
      "parents": [
        "95b8fbada76d978ce13a26785f8b85ff54478bb2",
        "a14b289d4614bb3b25d0455d68f72f3c7b4cc8e8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 04 10:39:12 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 04 10:39:12 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "6cb6a27c45cec9184302c2e350b3593c64bc7f6c",
      "tree": "1338b3838588ce4c28b71c4e611db51eea53e89b",
      "parents": [
        "e9403c8437cf3721e7901c1a8fcb06bb642a7e55"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Sat Apr 02 22:48:47 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 02 22:48:47 2011 -0700"
      },
      "message": "net: Call netdev_features_change() from netdev_update_features()\n\nIssue FEAT_CHANGE notification when features are changed by\nnetdev_update_features().  This will allow changes made by extra constraints\non e.g. MTU change to be properly propagated like changes via ethtool.\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4dd5ffe4fc36128dc86568ddeaeae359e6037762",
      "tree": "a1d36b66e8125ce9778ab96fedce028c78654c21",
      "parents": [
        "c261344d3ce3edac781f9d3c7eabe2e96d8e8fe8"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Wed Mar 30 23:58:08 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 01 20:23:25 2011 -0700"
      },
      "message": "net: Fix dev dev_ethtool_get_rx_csum() for forced NETIF_F_RXCSUM\n\ndev_ethtool_get_rx_csum() won\u0027t report rx checksumming when it\u0027s not\nchangeable and driver is converted to hw_features and friends. Fix this.\n\n(dev-\u003ehw_features \u0026 NETIF_F_RXCSUM) check is dropped - if the\nethtool_ops-\u003eget_rx_csum is set, then driver is not coverted, yet.\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8a4eb5734e8d1dc60a8c28576bbbdfdcc643626d",
      "tree": "ed4cd2f9a2a04a30994a8f8964a81834c895c0c9",
      "parents": [
        "2d7011ca79f1a8792e04d131b8ea21db179ab917"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Sat Mar 12 03:14:39 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 16 12:53:54 2011 -0700"
      },
      "message": "net: introduce rx_handler results and logic around that\n\nThis patch allows rx_handlers to better signalize what to do next to\nit\u0027s caller. That makes skb-\u003edeliver_no_wcard no longer needed.\n\nkernel-doc for rx_handler_result is taken from Nicolas\u0027 patch.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nReviewed-by: Nicolas de Pesloüan \u003cnicolas.2p.debian@free.fr\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e9bce845c0cee1a492e5cee6a827ae71140fe8b3",
      "tree": "57cfe50f8aa501062ecb7cca694a74eba4797efa",
      "parents": [
        "e2444d92083cc1ceb07487425897d6d51a13e9dd"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Wed Mar 09 08:48:03 2011 +0000"
      },
      "committer": {
        "name": "Jeff Kirsher",
        "email": "jeffrey.t.kirsher@intel.com",
        "time": "Fri Mar 11 01:17:50 2011 -0800"
      },
      "message": "net: add proper documentation for previously added net_device_ops for FCoE\n\nAdd proper documentation for previously added net_device_ops ops for FCoE.\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\n"
    },
    {
      "commit": "33175d84ee3fa29991adb80513683e010769e807",
      "tree": "3731f61cf82451b6892cf1368701e57e35d92908",
      "parents": [
        "c5908939b2738bafe1b309bc2465cb9f2e6184c5",
        "6dfbd87a20a737641ef228230c77f4262434fa24"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 14:26:00 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 14:26:00 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/bnx2x/bnx2x_cmn.c\n"
    },
    {
      "commit": "8909c9ad8ff03611c9c96c9a92656213e4bb495b",
      "tree": "10b023c05503a9f6a165a23b8e65d8f3e70fd42d",
      "parents": [
        "a5abba989deceb731047425812d268daf7536575"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Wed Mar 02 00:33:13 2011 +0300"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Mar 10 10:25:19 2011 +1100"
      },
      "message": "net: don\u0027t allow CAP_NET_ADMIN to load non-netdev kernel modules\n\nSince a8f80e8ff94ecba629542d9b4b5f5a8ee3eb565c any process with\nCAP_NET_ADMIN may load any module from /lib/modules/.  This doesn\u0027t mean\nthat CAP_NET_ADMIN is a superset of CAP_SYS_MODULE as modules are\nlimited to /lib/modules/**.  However, CAP_NET_ADMIN capability shouldn\u0027t\nallow anybody load any module not related to networking.\n\nThis patch restricts an ability of autoloading modules to netdev modules\nwith explicit aliases.  This fixes CVE-2011-1019.\n\nArnd Bergmann suggested to leave untouched the old pre-v2.6.32 behavior\nof loading netdev modules by name (without any prefix) for processes\nwith CAP_SYS_MODULE to maintain the compatibility with network scripts\nthat use autoloading netdev modules by aliases like \"eth0\", \"wlan0\".\n\nCurrently there are only three users of the feature in the upstream\nkernel: ipip, ip_gre and sit.\n\n    root@albatros:~# capsh --drop\u003d$(seq -s, 0 11),$(seq -s, 13 34) --\n    root@albatros:~# grep Cap /proc/$$/status\n    CapInh:\t0000000000000000\n    CapPrm:\tfffffff800001000\n    CapEff:\tfffffff800001000\n    CapBnd:\tfffffff800001000\n    root@albatros:~# modprobe xfs\n    FATAL: Error inserting xfs\n    (/lib/modules/2.6.38-rc6-00001-g2bf4ca3/kernel/fs/xfs/xfs.ko): Operation not permitted\n    root@albatros:~# lsmod | grep xfs\n    root@albatros:~# ifconfig xfs\n    xfs: error fetching interface information: Device not found\n    root@albatros:~# lsmod | grep xfs\n    root@albatros:~# lsmod | grep sit\n    root@albatros:~# ifconfig sit\n    sit: error fetching interface information: Device not found\n    root@albatros:~# lsmod | grep sit\n    root@albatros:~# ifconfig sit0\n    sit0      Link encap:IPv6-in-IPv4\n\t      NOARP  MTU:1480  Metric:1\n\n    root@albatros:~# lsmod | grep sit\n    sit                    10457  0\n    tunnel4                 2957  1 sit\n\nFor CAP_SYS_MODULE module loading is still relaxed:\n\n    root@albatros:~# grep Cap /proc/$$/status\n    CapInh:\t0000000000000000\n    CapPrm:\tffffffffffffffff\n    CapEff:\tffffffffffffffff\n    CapBnd:\tffffffffffffffff\n    root@albatros:~# ifconfig xfs\n    xfs: error fetching interface information: Device not found\n    root@albatros:~# lsmod | grep xfs\n    xfs                   745319  0\n\nReference: https://lkml.org/lkml/2011/2/24/203\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nSigned-off-by: Michael Tokarev \u003cmjt@tls.msk.ru\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6247e086188dd2ba5bfd64f9a876fe42b0cf39fb",
      "tree": "5f31335117dcc07b5255527145fb068e7f6e298d",
      "parents": [
        "90827996c59135b73e54463dac38710d5ddf1d2a"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Tue Feb 01 07:22:06 2011 +0000"
      },
      "committer": {
        "name": "Jeff Kirsher",
        "email": "jeffrey.t.kirsher@intel.com",
        "time": "Mon Mar 07 18:00:17 2011 -0800"
      },
      "message": "net: add ndo_fcoe_ddp_target() to support FCoE DDP in target mode\n\nThe Fiber Channel over Ethernet (FCoE) Direct Data Placement (DDP) can also be\nused for FCoE target, where the DDP used for read I/O on an initiator can be\nused on an FCoE target to speed up the write I/O to the target from the initiator.\nThe added ndo_fcoe_ddp_target() works in the similar way as the existing\nndo_fcoe_ddp_setup() to allow the underlying hardware set up the DDP context\naccordingly when it gets called from the FCoE target implementation on top\nthe existing Open-FCoE fcoe/libfc protocol stack so without losing the ability\nto provide DDP for read I/O as an initiator, it can also provide DDP offload\nto the write I/O coming from the initiator as a target.\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nSigned-off-by: Kiran Patil \u003ckiran.patil@intel.com\u003e\nTested-by: Kavindya Deegala \u003ckavindya.s.deegala@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\n"
    },
    {
      "commit": "256ee435b9a9ee9cca69602fe8046b27ca99fbee",
      "tree": "0e90c08094633ec0df36b2ec93004dd3d261837f",
      "parents": [
        "b8cec4a415e807a2f8679efa89558a040a7003de"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Mar 01 07:06:12 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 07 12:34:01 2011 -0800"
      },
      "message": "netdevice: Convert printk to pr_info in netif_tx_stop_queue\n\nThis allows any caller to be prefaced by any specific\npr_fmt to better identify which device driver is using\nthis function inappropriately.\n\nAdd terminating newline.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "23b41168fc942a4a041325a04ecc1bd17d031a3e",
      "tree": "69be018c5d2eae4538f622541d016346e331657e",
      "parents": [
        "5bfa787fb2c29cce0722500f90df29e049ff07fc"
      ],
      "author": {
        "name": "Vlad Dogaru",
        "email": "ddvlad@rosedu.org",
        "time": "Sat Feb 26 22:39:12 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 21:55:52 2011 -0800"
      },
      "message": "netdevice: make initial group visible to userspace\n\nINIT_NETDEV_GROUP is needed by userspace, move it outside __KERNEL__\nguards.\n\nSigned-off-by: Vlad Dogaru \u003cddvlad@rosedu.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e83d360d9a7e5d71d55c13e96b19109a2ea23bf0",
      "tree": "04e4971ad73ade44eb86671851d568e494abe6e4",
      "parents": [
        "da8ac86c4a56a14bf8deea7d2f92d0a453c67f91"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Feb 15 16:59:18 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 14:16:35 2011 -0800"
      },
      "message": "net: introduce NETIF_F_RXCSUM\n\nIntroduce NETIF_F_RXCSUM to replace device-private flags for RX checksum\noffload. Integrate it with ndo_fix_features.\n\nethtool_op_get_rx_csum() is removed altogether as nothing in-tree uses it.\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5455c6998d34dc983a8693500e4dffefc3682dc5",
      "tree": "b765aecf6d33d8c550cde78368ccc8654951ec07",
      "parents": [
        "0a417704777ed29d0e8c72b7274a328e61248e75"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Feb 15 16:59:17 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 14:16:33 2011 -0800"
      },
      "message": "net: Introduce new feature setting ops\n\nThis introduces a new framework to handle device features setting.\nIt consists of:\n  - new fields in struct net_device:\n\t+ hw_features - features that hw/driver supports toggling\n\t+ wanted_features - features that user wants enabled, when possible\n  - new netdev_ops:\n\t+ feat \u003d ndo_fix_features(dev, feat) - API checking constraints for\n\t\tenabling features or their combinations\n\t+ ndo_set_features(dev) - API updating hardware state to match\n\t\tchanged dev-\u003efeatures\n  - new ethtool commands:\n\t+ ETHTOOL_GFEATURES/ETHTOOL_SFEATURES: get/set dev-\u003ewanted_features\n\t\tand trigger device reconfiguration if resulting dev-\u003efeatures\n\t\tchanged\n\t+ ETHTOOL_GSTRINGS(ETH_SS_FEATURES): get feature bits names (meaning)\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a417704777ed29d0e8c72b7274a328e61248e75",
      "tree": "2a9cd59d8a58faf0904d503e143547b8aacd63ef",
      "parents": [
        "340ae1654c0667e0cdd2a6d4dc16f7946e018881"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Feb 15 16:59:17 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 14:16:33 2011 -0800"
      },
      "message": "ethtool: factorize get/set_one_feature\n\nThis allows to enable GRO even if RX csum is disabled. GRO will not\nbe used for packets without hardware checksum anyway.\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "212b573f5552c60265da721ff9ce32e3462a2cdd",
      "tree": "b930a91d4d9c84414eca6e13d67bd5dba7c3c1e0",
      "parents": [
        "9a279ea3a77ebcc91b68f0546e7cfa5018a12513"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Feb 15 16:59:16 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 14:16:32 2011 -0800"
      },
      "message": "ethtool: enable GSO and GRO by default\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fbaec0ea54f7d9131891ff98744e82c073ce03b1",
      "tree": "d0622d38a51b7e4a1e853338e7cbd954d3977cf2",
      "parents": [
        "f45437efff460aa033978180da88229c5fc68455"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Sun Feb 13 10:15:37 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 13 16:58:39 2011 -0800"
      },
      "message": "rtnetlink: implement setting of master device\n\nThis patch allows userspace to enslave/release slave devices via netlink\ninterface using IFLA_MASTER. This introduces generic way to add/remove\nunderling devices.\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": "1765a575334f1a232c1478accdee5c7d19f4b3e3",
      "tree": "6613f53ce9095b799048d891f0b4b6e34a479fe0",
      "parents": [
        "d59cfde2fb960b5970ccb5a38cea25d38b37a8e8"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Sat Feb 12 06:48:36 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 13 10:42:07 2011 -0800"
      },
      "message": "net: make dev-\u003emaster general\n\ndev-\u003emaster is now tightly connected to bonding driver. This patch makes\nthis pointer more general and ready to be used by others.\n\n - netdev_set_master() - bond specifics moved to new function\n   netdev_set_bond_master()\n - introduced netif_is_bond_slave() to check if device is a bonding slave\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d59cfde2fb960b5970ccb5a38cea25d38b37a8e8",
      "tree": "4ccf7fe4c8cc5a128885e60bd417253d3ec9b24a",
      "parents": [
        "d5e219c3a2389f31b18e4ca55c33a12adaadf565"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Sat Feb 12 00:46:06 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 13 10:42:06 2011 -0800"
      },
      "message": "net: remove the unnecessary dance around skb_bond_should_drop\n\nNo need to check (master) twice and to drive in and out the header file.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nReviewed-by: Nicolas de Pesloüan \u003cnicolas.2p.debian@free.fr\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ccf434380d1a67df2dcb9113206b77d0cb0a1cef",
      "tree": "1e1a36691f42ed7448f27f71a9ca9445e88ab5f1",
      "parents": [
        "065825402c058f4a123ddc53dbbe864cc5caaf64"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jan 26 18:08:02 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 27 15:02:56 2011 -0800"
      },
      "message": "net: fix dev_seq_next()\n\nCommit c6d14c84566d (net: Introduce for_each_netdev_rcu() iterator)\nadded a race in dev_seq_next().\n\nThe rcu_dereference() call should be done _before_ testing the end of\nlist, or we might return a wrong net_device if a concurrent thread\nchanges net_device list under us.\n\nNote : discovered thanks to a sparse warning :\n\nnet/core/dev.c:3919:9: error: incompatible types in comparison expression\n(different address spaces)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "acd1130e8793fb150fb522da8ec51675839eb4b1",
      "tree": "0da6f9f8f7690b426ff069f95bb28bf9e692d534",
      "parents": [
        "04ed3e741d0f133e02bed7fa5c98edba128f90e7"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Mon Jan 24 15:45:15 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 24 15:45:15 2011 -0800"
      },
      "message": "net: reduce and unify printk level in netdev_fix_features()\n\nReduce printk() levels to KERN_INFO in netdev_fix_features() as this will\nbe used by ethtool and might spam dmesg unnecessarily.\n\nThis converts the function to use netdev_info() instead of plain printk().\n\nAs a side effect, bonding and bridge devices will now log dropped features\non every slave device change.\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "04ed3e741d0f133e02bed7fa5c98edba128f90e7",
      "tree": "3dde4ca8306e98536faa69bccf0e47a2549c088f",
      "parents": [
        "57422dc530115e427dff464cc0a32bcd0efb5008"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Mon Jan 24 15:32:47 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 24 15:32:47 2011 -0800"
      },
      "message": "net: change netdev-\u003efeatures to u32\n\nQuoting Ben Hutchings: we presumably won\u0027t be defining features that\ncan only be enabled on 64-bit architectures.\n\nOccurences found by `grep -r` on net/, drivers/net, include/\n\n[ Move features and vlan_features next to each other in\n  struct netdev, as per Eric Dumazet\u0027s suggestion -DaveM ]\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c445477d74ab3779d1386ab797fbb9b628eb9f64",
      "tree": "3ee70b7748c6c63a688f367e5ffd83fde21b87e3",
      "parents": [
        "c39649c331c70952700f99832b03f87e9d7f5b4b"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Wed Jan 19 11:03:53 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 24 14:53:01 2011 -0800"
      },
      "message": "net: RPS: Enable hardware acceleration of RFS\n\nAllow drivers for multiqueue hardware with flow filter tables to\naccelerate RFS.  The driver must:\n\n1. Set net_device::rx_cpu_rmap to a cpu_rmap of the RX completion\nIRQs (in queue order).  This will provide a mapping from CPUs to the\nqueues for which completions are handled nearest to them.\n\n2. Implement net_device_ops::ndo_rx_flow_steer.  This operation adds\nor replaces a filter steering the given flow to the given RX queue, if\npossible.\n\n3. Periodically remove filters for which rps_may_expire_flow() returns\ntrue.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4f57c087de9b46182545676d2c594120a20f2e58",
      "tree": "bb2ed64efcafbf4d8fe2f625b432b554d05fdc47",
      "parents": [
        "e7ed828f10bd89a28f821ae7f20e691704d61923"
      ],
      "author": {
        "name": "John Fastabend",
        "email": "john.r.fastabend@intel.com",
        "time": "Mon Jan 17 08:06:04 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 19 23:31:10 2011 -0800"
      },
      "message": "net: implement mechanism for HW based QOS\n\nThis patch provides a mechanism for lower layer devices to\nsteer traffic using skb-\u003epriority to tx queues. This allows\nfor hardware based QOS schemes to use the default qdisc without\nincurring the penalties related to global state and the qdisc\nlock. While reliably receiving skbs on the correct tx ring\nto avoid head of line blocking resulting from shuffling in\nthe LLD. Finally, all the goodness from txq caching and xps/rps\ncan still be leveraged.\n\nMany drivers and hardware exist with the ability to implement\nQOS schemes in the hardware but currently these drivers tend\nto rely on firmware to reroute specific traffic, a driver\nspecific select_queue or the queue_mapping action in the\nqdisc.\n\nBy using select_queue for this drivers need to be updated for\neach and every traffic type and we lose the goodness of much\nof the upstream work. Firmware solutions are inherently\ninflexible. And finally if admins are expected to build a\nqdisc and filter rules to steer traffic this requires knowledge\nof how the hardware is currently configured. The number of tx\nqueues and the queue offsets may change depending on resources.\nAlso this approach incurs all the overhead of a qdisc with filters.\n\nWith the mechanism in this patch users can set skb priority using\nexpected methods ie setsockopt() or the stack can set the priority\ndirectly. Then the skb will be steered to the correct tx queues\naligned with hardware QOS traffic classes. In the normal case with\nsingle traffic class and all queues in this class everything\nworks as is until the LLD enables multiple tcs.\n\nTo steer the skb we mask out the lower 4 bits of the priority\nand allow the hardware to configure upto 15 distinct classes\nof traffic. This is expected to be sufficient for most applications\nat any rate it is more then the 8021Q spec designates and is\nequal to the number of prio bands currently implemented in\nthe default qdisc.\n\nThis in conjunction with a userspace application such as\nlldpad can be used to implement 8021Q transmission selection\nalgorithms one of these algorithms being the extended transmission\nselection algorithm currently being used for DCB.\n\nSigned-off-by: John Fastabend \u003cjohn.r.fastabend@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cbda10fa97d72c7a1923be4426171aa90e8c6dab",
      "tree": "113206ef603189e9f91f075e154cbdc8e1ac3f40",
      "parents": [
        "441c793a56502638d45d5da2195056d686147370"
      ],
      "author": {
        "name": "Vlad Dogaru",
        "email": "ddvlad@rosedu.org",
        "time": "Thu Jan 13 23:38:30 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 19 23:31:09 2011 -0800"
      },
      "message": "net_device: add support for network device groups\n\nNet devices can now be grouped, enabling simpler manipulation from\nuserspace. This patch adds a group field to the net_device structure, as\nwell as rtnetlink support to query and modify it.\n\nSigned-off-by: Vlad Dogaru \u003cddvlad@rosedu.org\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ac9ad1394fa542ac7ae0dc943ee3cda678799fa",
      "tree": "d846be421ed68f4fc612ae7c061783dab73d5fa2",
      "parents": [
        "1949e084bfd143c76e22c0b37f370d6e7bf4bfdd"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jan 12 12:13:14 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 13 21:44:34 2011 -0800"
      },
      "message": "net: remove dev_txq_stats_fold()\n\nAfter recent changes, (percpu stats on vlan/tunnels...), we dont need\nanymore per struct netdev_queue tx_bytes/tx_packets/tx_dropped counters.\n\nOnly remaining users are ixgbe, sch_teql, gianfar \u0026 macvlan :\n\n1) ixgbe can be converted to use existing tx_ring counters.\n\n2) macvlan incremented txq-\u003etx_dropped, it can use the\ndev-\u003estats.tx_dropped counter.\n\n3) sch_teql : almost revert ab35cd4b8f42 (Use net_device internal stats)\n    Now we have ndo_get_stats64(), use it, even for \"unsigned long\"\nfields (No need to bring back a struct net_device_stats)\n\n4) gianfar adds a stats structure per tx queue to hold\ntx_bytes/tx_packets\n\nThis removes a lockdep warning (and possible lockup) in rndis gadget,\ncalling dev_get_stats() from hard IRQ context.\n\nRef: http://www.spinics.net/lists/netdev/msg149202.html\n\nReported-by: Neil Jones \u003cneiljay@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nCC: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nCC: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nCC: Sandeep Gopalpet \u003csandeep.kumar@freescale.com\u003e\nCC: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "36909ea43814cba34f7c921e99cba33d770a54e1",
      "tree": "294b44411dc7939e152aa1002f9f5fe9868751f6",
      "parents": [
        "91b5c98c2e062f982423686c77b8bf31f37fa196"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Sun Jan 09 19:36:31 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 10 16:05:30 2011 -0800"
      },
      "message": "net: Add alloc_netdev_mqs function\n\nAdded alloc_netdev_mqs function which allows the number of transmit and\nreceive queues to be specified independenty.  alloc_netdev_mq was\nchanged to a macro to call the new function.  Also added\nalloc_etherdev_mqs with same purpose.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc741216db156994c554ac31c1151fe0e00d8f0e",
      "tree": "692c6278f1c20e4452620adee1ea3cd05d878819",
      "parents": [
        "f01a5236bd4b140198fbcc550f085e8361fd73fa"
      ],
      "author": {
        "name": "Jesse Gross",
        "email": "jesse@nicira.com",
        "time": "Sun Jan 09 06:23:32 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 09 23:35:34 2011 -0800"
      },
      "message": "net offloading: Pass features into netif_needs_gso().\n\nNow that there is a single function that can compute the device\nfeatures relevant to a packet, we don\u0027t want to run it for each\noffload.  This converts netif_needs_gso() to take the features\nof the device, rather than computing them itself.\n\nSigned-off-by: Jesse Gross \u003cjesse@nicira.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f01a5236bd4b140198fbcc550f085e8361fd73fa",
      "tree": "01d122dcd3aa7e8e1f84f11f74f5c30593a5f850",
      "parents": [
        "9497a0518e8183959e45da05f317f1cb36f2cd7c"
      ],
      "author": {
        "name": "Jesse Gross",
        "email": "jesse@nicira.com",
        "time": "Sun Jan 09 06:23:31 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 09 23:35:33 2011 -0800"
      },
      "message": "net offloading: Generalize netif_get_vlan_features().\n\nnetif_get_vlan_features() is currently only used by netif_needs_gso(),\nso it only concerns itself with GSO features.  However, several other\nplaces also should take into account the contents of the packet when\ndeciding whether to offload to hardware.  This generalizes the function\nto return features about all of the various forms of offloading.  Since\noffloads tend to be linked together, this avoids duplicating the logic\nin each location (i.e. the scatter/gather code also needs the checksum\nlogic).\n\nSuggested-by: Michał Mirosław \u003cmirqus@gmail.com\u003e\nSigned-off-by: Jesse Gross \u003cjesse@nicira.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "68763c890eb2a60f9b50a061502f94e0cf20fdfe",
      "tree": "27e759b4a29b2f9fab2c795249faaf7f7559bd95",
      "parents": [
        "9f84f8886b98a9411ee20a10ca390487507037b9"
      ],
      "author": {
        "name": "Michal Simek",
        "email": "monstr@monstr.eu",
        "time": "Sun Jan 02 22:54:09 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 03 12:06:21 2011 -0800"
      },
      "message": "trivial: Fix typo fault in netdevice.h\n\nSigned-off-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b236da6931e2482bfe44a7865dd4e7bb036f3496",
      "tree": "cf383f0fd1d4b1091e60413fe1aa6a054f6c6a58",
      "parents": [
        "caafa84251b886feb6cdf23d50e2cc99dcdaaaf3"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Tue Dec 14 03:09:15 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 16 13:16:06 2010 -0800"
      },
      "message": "net: use NUMA_NO_NODE instead of the magic number -1\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a3d22a68d752ccc1a01bb0a64dd70b7a98bf9e23",
      "tree": "e51c231b29d8e285acb8196b6b893c718febd2b1",
      "parents": [
        "d33e455337ea2c71d09d7f4367d6ad6dd32b6965"
      ],
      "author": {
        "name": "Vladislav Zolotarov",
        "email": "vladz@broadcom.com",
        "time": "Mon Dec 13 06:27:10 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 16 13:15:53 2010 -0800"
      },
      "message": "bnx2x: Take the distribution range definition out of skb_tx_hash()\n\nMove the calcualation of the Tx hash for a given hash range into a separate\nfunction and define the skb_tx_hash(), which calculates a Tx hash for a\n[0; dev-\u003ereal_num_tx_queues - 1] hash values range, using this\nfunction (__skb_tx_hash()).\n\nSigned-off-by: Vladislav Zolotarov \u003cvladz@broadcom.com\u003e\nSigned-off-by: Eilon Greenstein \u003ceilong@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "941666c2e3e0f9f6a1cb5808d02352d445bd702c",
      "tree": "389a773580ef22908391cc71f98982b03de62804",
      "parents": [
        "a2d4b65d477aad1fe8c7218781a031fa9cf5abfc"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Dec 05 01:23:53 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 08 10:07:24 2010 -0800"
      },
      "message": "net: RCU conversion of dev_getbyhwaddr() and arp_ioctl()\n\nLe dimanche 05 décembre 2010 à 09:19 +0100, Eric Dumazet a écrit :\n\n\u003e Hmm..\n\u003e\n\u003e If somebody can explain why RTNL is held in arp_ioctl() (and therefore\n\u003e in arp_req_delete()), we might first remove RTNL use in arp_ioctl() so\n\u003e that your patch can be applied.\n\u003e\n\u003e Right now it is not good, because RTNL wont be necessarly held when you\n\u003e are going to call arp_invalidate() ?\n\nWhile doing this analysis, I found a refcount bug in llc, I\u0027ll send a\npatch for net-2.6\n\nMeanwhile, here is the patch for net-next-2.6\n\nYour patch then can be applied after mine.\n\nThanks\n\n[PATCH] net: RCU conversion of dev_getbyhwaddr() and arp_ioctl()\n\ndev_getbyhwaddr() was called under RTNL.\n\nRename it to dev_getbyhwaddr_rcu() and change all its caller to now use\nRCU locking instead of RTNL.\n\nChange arp_ioctl() to use RCU instead of RTNL locking.\n\nNote: this fix a dev refcount bug in llc\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f2cd2d3e9b3ef960612e362f0ad129d735452df2",
      "tree": "bef1868cfc7dc66de7b2430a4b47b12bced05ec1",
      "parents": [
        "0793f83f0ec2142d06abe53570417c8d95e0310a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Nov 29 08:14:37 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 01 12:47:42 2010 -0800"
      },
      "message": "net sched: use xps information for qdisc NUMA affinity\n\nAllocate qdisc memory according to NUMA properties of cpus included in\nxps map.\n\nTo be effective, qdisc should be (re)setup after changes\nof /sys/class/net/eth\u003cn\u003e/queues/tx-\u003cn\u003e/xps_cpus\n\nI added a numa_node field in struct netdev_queue, containing NUMA node\nif all cpus included in xps_cpus share same node, else -1.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a41778694806ac1ccd4b1dafed1abef8d5ba98ac",
      "tree": "499550eb704ba7811960d633161f5c386e4332cb",
      "parents": [
        "b02038a17b271e0f70616c54e4eccb5cc33d1b74"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Nov 28 21:43:02 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 29 09:43:13 2010 -0800"
      },
      "message": "xps: add __rcu annotations\n\nAvoid sparse warnings : add __rcu annotations and use\nrcu_dereference_protected() where necessary.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bf26414510103448ad3dc069c7422462f03ea3d7",
      "tree": "b8930bb2850dbc65f1e1f4e8bc6574f3c956b772",
      "parents": [
        "8fa9208e305e24978b897d6ea057604444ce77e1"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Fri Nov 26 08:36:09 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 18:24:14 2010 -0800"
      },
      "message": "xps: Add CONFIG_XPS\n\nThis patch adds XPS_CONFIG option to enable and disable XPS.  This is\ndone in the same manner as RPS_CONFIG.  This is also fixes build\nfailure in XPS code when SMP is not enabled.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5a0d2268d259886f0c87131639d19eb4a67b4532",
      "tree": "952e6225fcee027f3a4ae8e1c2b2c889eff3a8b2",
      "parents": [
        "d3c15cab213becc49a6f2ad7f48a59513a5f17dd"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 23 10:42:02 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 10:47:18 2010 -0800"
      },
      "message": "net: add netif_tx_queue_frozen_or_stopped\n\nWhen testing struct netdev_queue state against FROZEN bit, we also test\nXOFF bit. We can test both bits at once and save some cycles.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1d24eb4815d1e0e8b451ecc546645f8ef1176d4f",
      "tree": "0172e72b9452dc46c4e1043817005979cec022a7",
      "parents": [
        "3853b5841c01a3f492fe137afaad9c209e5162c6"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Sun Nov 21 13:17:27 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 24 11:44:20 2010 -0800"
      },
      "message": "xps: Transmit Packet Steering\n\nThis patch implements transmit packet steering (XPS) for multiqueue\ndevices.  XPS selects a transmit queue during packet transmission based\non configuration.  This is done by mapping the CPU transmitting the\npacket to a queue.  This is the transmit side analogue to RPS-- where\nRPS is selecting a CPU based on receive queue, XPS selects a queue\nbased on the CPU (previously there was an XPS patch from Eric\nDumazet, but that might more appropriately be called transmit completion\nsteering).\n\nEach transmit queue can be associated with a number of CPUs which will\nuse the queue to send packets.  This is configured as a CPU mask on a\nper queue basis in:\n\n/sys/class/net/eth\u003cn\u003e/queues/tx-\u003cn\u003e/xps_cpus\n\nThe mappings are stored per device in an inverted data structure that\nmaps CPUs to queues.  In the netdevice structure this is an array of\nnum_possible_cpu structures where each structure holds and array of\nqueue_indexes for queues which that CPU can use.\n\nThe benefits of XPS are improved locality in the per queue data\nstructures.  Also, transmit completions are more likely to be done\nnearer to the sending thread, so this should promote locality back\nto the socket on free (e.g. UDP).  The benefits of XPS are dependent on\ncache hierarchy, application load, and other factors.  XPS would\nnominally be configured so that a queue would only be shared by CPUs\nwhich are sharing a cache, the degenerative configuration woud be that\neach CPU has it\u0027s own queue.\n\nBelow are some benchmark results which show the potential benfit of\nthis patch.  The netperf test has 500 instances of netperf TCP_RR test\nwith 1 byte req. and resp.\n\nbnx2x on 16 core AMD\n   XPS (16 queues, 1 TX queue per CPU)  1234K at 100% CPU\n   No XPS (16 queues)                   996K at 100% CPU\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "61391cde9eefac5cfcf6d214aa80c77e58b1626b",
      "tree": "bcebcb5abe6638b7cde05f8ca5b51bba95cf1122",
      "parents": [
        "a386f99025f13b32502fe5dedf223c20d7283826"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Nov 15 06:38:12 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 15 11:13:17 2010 -0800"
      },
      "message": "netdev: add rcu annotations to receive handler hook\n\nSuggested by Eric\u0027s bridge RCU changes.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fe8222406c8277a21172479d3a8283d31c209028",
      "tree": "89876457391fba73e3c2c9fdbf9c28a980ad4ffc",
      "parents": [
        "ed9af2e839c06c18f721da2c768fbb444c4a10e5"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Tue Nov 09 10:47:38 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 15 10:57:28 2010 -0800"
      },
      "message": "net: Simplify RX queue allocation\n\nThis patch move RX queue allocation to alloc_netdev_mq and freeing of\nthe queues to free_netdev (symmetric to TX queue allocation).  Each\nkobject RX queue takes a reference to the queue\u0027s device so that the\ndevice can\u0027t be freed before all the kobjects have been released-- this\nobviates the need for reference counts specific to RX queues.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "58e998c6d23988490162cef0784b19ea274d90bb",
      "tree": "de3bbb355639d4bd6f2858d6265537672554d13b",
      "parents": [
        "c8d5bcd1aff89199cde4bd82c5c40fb704c8bba4"
      ],
      "author": {
        "name": "Jesse Gross",
        "email": "jesse@nicira.com",
        "time": "Fri Oct 29 12:14:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 15 09:22:53 2010 -0800"
      },
      "message": "offloading: Force software GSO for multiple vlan tags.\n\nWe currently use vlan_features to check for TSO support if there is\na vlan tag.  However, it\u0027s quite likely that the NIC is not able to\ndo TSO when there is an arbitrary number of tags.  Therefore if there\nis more than one tag (in-band or out-of-band), fall back to software\nemulation.\n\nSigned-off-by: Jesse Gross \u003cjesse@nicira.com\u003e\nCC: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc766e4c4965915ab52a1d1fa3c7a7b3e7bc07f0",
      "tree": "d45160f52eea37d4e5149d511c3c577bef253801",
      "parents": [
        "e4a7b93bd5d84e1e79917d024d17d745d190fc9a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 29 03:09:24 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 08 13:50:08 2010 -0800"
      },
      "message": "decnet: RCU conversion and get rid of dev_base_lock\n\nWhile tracking dev_base_lock users, I found decnet used it in\ndnet_select_source(), but for a wrong purpose:\n\nWriters only hold RTNL, not dev_base_lock, so readers must use RCU if\nthey cannot use RTNL.\n\nAdds an rcu_head in struct dn_ifaddr and handle proper RCU management.\n\nAdds __rcu annotation in dn_route as well.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "18543a643fae694982c7d89c22436885f3506497",
      "tree": "0674a2db40dcfd1d5c6999f600df6c8147f73df3",
      "parents": [
        "63f4e1903ae41b4e457dd4490afe0f59e7641ad6"
      ],
      "author": {
        "name": "Guillaume Chazarain",
        "email": "guichaz@gmail.com",
        "time": "Sat Nov 06 06:39:32 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 08 12:17:07 2010 -0800"
      },
      "message": "net: Detect and ignore netif_stop_queue() calls before register_netdev()\n\nAfter e6484930d7c73d324bccda7d43d131088da697b9: net: allocate tx queues in register_netdevice\nThese calls make net drivers oops at load time, so let\u0027s avoid people\ngit-bisect\u0027ing known problems.\n\nSigned-off-by: Guillaume Chazarain \u003cguichaz@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6e3f7faf3e8a3e226b1a6b955aac12abf2f2e1b6",
      "tree": "a2ff2fe9f86ff561d62ceac56e8fe18d7b6f14a0",
      "parents": [
        "f6318e558806c925029dc101f14874be9f9fa78f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 25 03:02:02 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 25 14:18:27 2010 -0700"
      },
      "message": "rps: add __rcu annotations\n\nAdd __rcu annotations to :\n\t(struct netdev_rx_queue)-\u003erps_map\n\t(struct netdev_rx_queue)-\u003erps_flow_table\n\tstruct rps_sock_flow_table *rps_sock_flow_table;\n\nAnd use appropriate rcu primitives.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3cc77ec74e1583b50b8405114cdbd6b8ebb8c474",
      "tree": "3f45e2ddfc224edd166b1cdc79ddff62532b4c7d",
      "parents": [
        "198caeca3eb4c81bbdbeb34a870868002f89b3d2"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Oct 24 21:32:36 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 25 13:09:44 2010 -0700"
      },
      "message": "net/802: add __rcu annotations\n\n(struct net_device)-\u003egarp_port is rcu protected :\n(struct garp_port)-\u003eapplicants is rcu protected :\n\nadd __rcu annotation and proper rcu primitives.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "198caeca3eb4c81bbdbeb34a870868002f89b3d2",
      "tree": "ac2c01e12b71c3a88a8b2d6b86151b618878af1a",
      "parents": [
        "b616b09afabf6d569aa31176aa86f05d2586de3e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Oct 24 21:32:05 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 25 13:09:43 2010 -0700"
      },
      "message": "ipv6: ip6_ptr rcu annotations\n\n(struct net_device)-\u003eip6_ptr is rcu protected :\n\nadd __rcu annotation and proper rcu primitives.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b616b09afabf6d569aa31176aa86f05d2586de3e",
      "tree": "9765278f9825a612c27fea34aba0c614594b88c5",
      "parents": [
        "5202e173d7bc5ff832a4f36e66f26e00feb343c6"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Oct 24 21:31:58 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 25 13:09:43 2010 -0700"
      },
      "message": "vlan: rcu annotations\n\n(struct net_device)-\u003evlgrp is rcu protected :\n\nadd __rcu annotation and proper rcu primitives.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d0c2b0d265a0f1f92922a99a31def9da582197ac",
      "tree": "5854f0e44bf594a2b123622a250619c97792e4f2",
      "parents": [
        "a0e00369f1e1ff9142a20efe4785890e52b2e525"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Oct 19 07:12:10 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 21 04:26:38 2010 -0700"
      },
      "message": "napi: unexport napi_reuse_skb\n\nThe function napi_reuse_skb is only used inside core.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3701e51382a026cba10c60b03efabe534fba4ca4",
      "tree": "9f205d8ad0edf65b4405d9b60cb65f3cd8e44ae4",
      "parents": [
        "65ac6a5fa658b90f1be700c55e7cd72e4611015d"
      ],
      "author": {
        "name": "Jesse Gross",
        "email": "jesse@nicira.com",
        "time": "Wed Oct 20 13:56:06 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 21 01:26:53 2010 -0700"
      },
      "message": "vlan: Centralize handling of hardware acceleration.\n\nCurrently each driver that is capable of vlan hardware acceleration\nmust be aware of the vlan groups that are configured and then pass\nthe stripped tag to a specialized receive function.  This is\n\ndifferent from other types of hardware offload in that it places a\nsignificant amount of knowledge in the driver itself rather keeping\nit in the networking core.\n\nThis makes vlan offloading function more similarly to other forms\nof offloading (such as checksum offloading or TSO) by doing the\nfollowing:\n* On receive, stripped vlans are passed directly to the network\ncore, without attempting to check for vlan groups or reconstructing\nthe header if no group\n* vlans are made less special by folding the logic into the main\nreceive routines\n* On transmit, the device layer will add the vlan header in software\nif the hardware doesn\u0027t support it, instead of spreading that logic\nout in upper layers, such as bonding.\n\nThere are a number of advantages to this:\n* Fixes all bugs with drivers incorrectly dropping vlan headers at once.\n* Avoids having to disable VLAN acceleration when in promiscuous mode\n(good for bridging since it always puts devices in promiscuous mode).\n* Keeps VLAN tag separate until given to ultimate consumer, which\navoids needing to do header reconstruction as in tg3 unless absolutely\nnecessary.\n* Consolidates common code in core networking.\n\nSigned-off-by: Jesse Gross \u003cjesse@nicira.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "65ac6a5fa658b90f1be700c55e7cd72e4611015d",
      "tree": "7330c3234101c6d4c952f4abec9c8064df0e685a",
      "parents": [
        "7b9c60903714bf0a19d746b228864bad3497284e"
      ],
      "author": {
        "name": "Jesse Gross",
        "email": "jesse@nicira.com",
        "time": "Wed Oct 20 13:56:05 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 21 01:26:53 2010 -0700"
      },
      "message": "vlan: Avoid hash table lookup to find group.\n\nA struct net_device always maps to zero or one vlan groups and we\nalways know the device when we are looking up a group.  We currently\ndo a hash table lookup on the device to find the group but it is\nmuch simpler to just store a pointer.\n\nSigned-off-by: Jesse Gross \u003cjesse@nicira.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7b9c60903714bf0a19d746b228864bad3497284e",
      "tree": "c9dd632ea640b1f56634de8a1f029dd88dea2599",
      "parents": [
        "eab6d18d20fc5b5ba04a7e7fcd6f357197870e51"
      ],
      "author": {
        "name": "Jesse Gross",
        "email": "jesse@nicira.com",
        "time": "Wed Oct 20 13:56:04 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 21 01:26:52 2010 -0700"
      },
      "message": "vlan: Enable software emulation for vlan accleration.\n\nCurrently users of hardware vlan accleration need to know whether\nthe device supports it before generating packets.  However, vlan\nacceleration will soon be available in a more flexible manner so\nknowing ahead of time becomes much more difficult.  This adds\na software fallback path for vlan packets on devices without the\nnecessary offloading support, similar to other types of hardware\naccleration.\n\nSigned-off-by: Jesse Gross \u003cjesse@nicira.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e6484930d7c73d324bccda7d43d131088da697b9",
      "tree": "afa528185a8f679730275722cbd19f660101af50",
      "parents": [
        "bd25fa7ba59cd26094319dfba0011b48465f7355"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Mon Oct 18 18:04:39 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 20 02:27:59 2010 -0700"
      },
      "message": "net: allocate tx queues in register_netdevice\n\nThis patch introduces netif_alloc_netdev_queues which is called from\nregister_device instead of alloc_netdev_mq.  This makes TX queue\nallocation symmetric with RX allocation.  Also, queue locks allocation\nis done in netdev_init_one_queue.  Change set_real_num_tx_queues to\nfail if requested number \u003c 1 or greater than number of allocated\nqueues.\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": "29b4433d991c88d86ca48a4c1cc33c671475be4b",
      "tree": "2ad21b86aab8193c4533820c40cd31af97a7377f",
      "parents": [
        "f0b9f4725180ea58c8da78b3de0b4e0ad180fc2c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 11 10:22:12 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 12 12:35:25 2010 -0700"
      },
      "message": "net: percpu net_device refcount\n\nWe tried very hard to remove all possible dev_hold()/dev_put() pairs in\nnetwork stack, using RCU conversions.\n\nThere is still an unavoidable device refcount change for every dst we\ncreate/destroy, and this can slow down some workloads (routers or some\napp servers, mmap af_packet)\n\nWe can switch to a percpu refcount implementation, now dynamic per_cpu\ninfrastructure is mature. On a 64 cpus machine, this consumes 256 bytes\nper device.\n\nOn x86, dev_hold(dev) code :\n\nbefore\n        lock    incl 0x280(%ebx)\nafter:\n        movl    0x260(%ebx),%eax\n        incl    fs:(%eax)\n\nStress bench :\n\n(Sending 160.000.000 UDP frames,\nIP route cache disabled, dual E5540 @2.53GHz,\n32bit kernel, FIB_TRIE)\n\nBefore:\n\nreal    1m1.662s\nuser    0m14.373s\nsys     12m55.960s\n\nAfter:\n\nreal    0m51.179s\nuser    0m15.329s\nsys     10m15.942s\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "34d101dd6204bd100fc2e6f7b5f9a10f959ce2c9",
      "tree": "77b714a4de7273ec53dac80396b94a2f896cfa95",
      "parents": [
        "37f9fc452d138dfc4da2ee1ce5ae85094efc3606"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 11 09:16:57 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 11 09:16:57 2010 -0700"
      },
      "message": "neigh: speedup neigh_hh_init()\n\nWhen a new dst is used to send a frame, neigh_resolve_output() tries to\nassociate an struct hh_cache to this dst, calling neigh_hh_init() with\nthe neigh rwlock write locked.\n\nMost of the time, hh_cache is already known and linked into neighbour,\nso we find it and increment its refcount.\n\nThis patch changes the logic so that we call neigh_hh_init() with\nneighbour lock read locked only, so that fast path can be run in\nparallel by concurrent cpus.\n\nThis brings part of the speedup we got with commit c7d4426a98a5f\n(introduce DST_NOCACHE flag) for non cached dsts, even for cached ones,\nremoving one of the contention point that routers hit on multiqueue\nenabled machines.\n\nFurther improvements would need to use a seqlock instead of an rwlock to\nprotect neigh-\u003eha[], to not dirty neigh too often and remove two atomic\nops.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "caf586e5f23cebb2a68cbaf288d59dbbf2d74052",
      "tree": "5c0dfcf5a14c55501f9225835c83abddb8d1876e",
      "parents": [
        "a00eac0c459abecb539fb2a2abd3122dd7ca5d4a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Sep 30 21:06:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 05 14:47:55 2010 -0700"
      },
      "message": "net: add a core netdev-\u003erx_dropped counter\n\nIn various situations, a device provides a packet to our stack and we\ndrop it before it enters protocol stack :\n- softnet backlog full (accounted in /proc/net/softnet_stat)\n- bad vlan tag (not accounted)\n- unknown/unregistered protocol (not accounted)\n\nWe can handle a per-device counter of such dropped frames at core level,\nand automatically adds it to the device provided stats (rx_dropped), so\nthat standard tools can be used (ifconfig, ip link, cat /proc/net/dev)\n\nThis is a generalization of commit 8990f468a (net: rx_dropped\naccounting), thus reverting it.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "24824a09e35402b8d58dcc5be803a5ad3937bdba",
      "tree": "65c5fa4046646623b130702c9abc92c485ec575b",
      "parents": [
        "0bd9e6a964d86a19f54a9ba31168a37d64e451d1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sat Oct 02 06:11:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 05 00:23:44 2010 -0700"
      },
      "message": "net: dynamic ingress_queue allocation\n\ningress being not used very much, and net_device-\u003eingress_queue being\nquite a big object (128 or 256 bytes), use a dynamic allocation if\nneeded (tc qdisc add dev eth0 ingress ...)\n\ndev_ingress_queue(dev) helper should be used only with RTNL taken.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bfa5ae63b823f4ffd3483a05f60a93a4a7b7d680",
      "tree": "62dc495022ac697d81c3b80f5a262713e6f657a3",
      "parents": [
        "8560f2266b36adb43238f1f9fd13958dd031901c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Sep 28 05:58:37 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 29 13:25:53 2010 -0700"
      },
      "message": "net: rename netdev rx_queue to ingress_queue\n\nThere is some confusion with rx_queue name after RPS, and net drivers\nprivate rx_queue fields.\n\nI suggest to rename \"struct net_device\"-\u003erx_queue to ingress_queue.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6d81f41c58c69ddde497e9e640ba5805aa26e78c",
      "tree": "9e4cadd10af9f487fabb99a393f095d185160a13",
      "parents": [
        "745e20f1b626b1be4b100af5d4bf7b3439392f8f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Sep 27 20:50:33 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 29 13:23:30 2010 -0700"
      },
      "message": "dummy: percpu stats and lockless xmit\n\nConverts dummy network device driver to :\n\n- percpu stats\n\n- 64bit stats\n\n- lockless xmit (NETIF_F_LLTX)\n\n- performance features added (NETIF_F_SG | NETIF_F_FRAGLIST |\nNETIF_F_TSO | NETIF_F_NO_CSUM | NETIF_F_HIGHDMA)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3171d026291d08c2a4cfe06302ce308b09605c4b",
      "tree": "c9ff3f6253a52d63b041b13face40299573990ff",
      "parents": [
        "62fe0b40abb3484413800edaef9b087a20059acf"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Mon Sep 27 08:24:49 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 22:09:50 2010 -0700"
      },
      "message": "net: Add netif_copy_real_num_queues() for use by virtual net drivers\n\nThis sets the active numbers of queues on a net device to match another.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62fe0b40abb3484413800edaef9b087a20059acf",
      "tree": "1fbd745de235b3a1d97931412fa9ff3e7228fd88",
      "parents": [
        "f91ff5b9ff529be8aac2039af63b2c8ea6cd6ebe"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Mon Sep 27 08:24:33 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 22:09:49 2010 -0700"
      },
      "message": "net: Allow changing number of RX queues after device allocation\n\nFor RPS, we create a kobject for each RX queue based on the number of\nqueues passed to alloc_netdev_mq().  However, drivers generally do not\ndetermine the numbers of hardware queues to use until much later, so\nthis usually represents the maximum number the driver may use and not\nthe actual number in use.\n\nFor TX queues, drivers can update the actual number using\nnetif_set_real_num_tx_queues().  Add a corresponding function for RX\nqueues, netif_set_real_num_rx_queues().\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "290b895e0ba4552dfcfc4bd35759c192345b934a",
      "tree": "439ffccea9fa87b28b6af2a06e562cc5a0c01f80",
      "parents": [
        "af5ef241133b602a77b682009f112e7c3f7604e5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Sep 27 00:33:35 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 21:30:42 2010 -0700"
      },
      "message": "tunnels: prepare percpu accounting\n\nTunnels are going to use percpu for their accounting.\n\nThey are going to use a new tstats field in net_device.\n\nskb_tunnel_rx() is changed to be a wrapper around __skb_tunnel_rx()\n\nIPTUNNEL_XMIT() is changed to be a wrapper around __IPTUNNEL_XMIT()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a7855c78a24d6348e989bec616318e68c662e78b",
      "tree": "43ee591745e17569ad212be6ec3c46e58b443c0a",
      "parents": [
        "83180af0b0ea166adf8249f4513beb7355f9b4c9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Sep 23 23:51:51 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 26 19:04:08 2010 -0700"
      },
      "message": "net: loopback driver cleanup\n\nloopback driver uses dev-\u003eml_priv to store its percpu stats pointer.\nIt uses ugly casts \"(void __percpu __force *)\" to shut up sparse\ncomplains.\n\nDefine an union to better document we use ml_priv in loopback driver and\ndefine a lstats field with appropriate types.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a02cec2155fbea457eca8881870fd2de1a4c4c76",
      "tree": "cfbfc4b32bfe10f9cd803d46c31607d13f1858f5",
      "parents": [
        "6a08d194ee40806e0ccd5f36ed768e64cbfc979f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 22 20:43:57 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 23 14:33:39 2010 -0700"
      },
      "message": "net: return operator cleanup\n\nChange \"return (EXPR);\" to \"return EXPR;\"\n\nreturn is not a function, parentheses are not required.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8f8f103d8466e627ecef7894248eb79407d9047c",
      "tree": "d41cdecb55ef6daf7238a1a4988db02b1836c61b",
      "parents": [
        "e6599c2ecf18002339fe81cde1fa83b37bf26290"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Sep 19 11:24:02 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 19 11:24:02 2010 -0700"
      },
      "message": "net: reorder struct netdev_hw_addr\n\nMove \u0027synced\u0027 and \u0027global_use\u0027 fields before \u0027refcount\u0027, to shrinks\nstruct netdev_hw_addr by 8 bytes (on 64bit arches).\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cd13539b8bc9ae884e6d8d9374c594adff4304e4",
      "tree": "6adc13bc1dfe5da2480f5d2186e2719f5f2b713f",
      "parents": [
        "94767632623c7bf5b16a0cf963ec93a8ad9acca4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Sep 16 02:58:13 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 16 21:58:44 2010 -0700"
      },
      "message": "net: shrinks struct net_device\n\ncommit ab95bfe01 (net: replace hooks in __netif_receive_skb) added\nrx_handler at wrong place, between two cache line aligned objects,\ncreating a big hole (a full cache line)\n\nMove rx_handler and rx_handler_data before rx_queue, filling existing\nhole.\n\nMove master field in the cache line(s) used in receive path.\n\nThis saves 64 bytes (or L1_CACHE_BYTES), and avoids two possible\ncache misses in receive path.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "95ae6b228f814fc0528d0506ee9f18ac333d6851",
      "tree": "d5287f3dee478e1bd5fa79e63192447c5bc91e92",
      "parents": [
        "9e0064a5456fd75fd7c70f6f3692c7f732f91a65"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 15 04:04:31 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 15 22:06:05 2010 -0700"
      },
      "message": "ipv4: ip_ptr cleanups\n\ndev-\u003eip_ptr is protected by rtnl and rcu.\n\nYet some places dont use appropriate primitives and/or locking rules.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "86cac58b71227cc34a3d0e78f19585c0eff49ea3",
      "tree": "e3329c4599474c12f17b0de5b2e8e4ff92233853",
      "parents": [
        "aed5029ead26fe47527d9e9f2052cf56b72543f0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Aug 31 18:25:32 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 01 10:57:55 2010 -0700"
      },
      "message": "skge: add GRO support\n\n- napi_gro_flush() is exported from net/core/dev.c, to avoid\n  an irq_save/irq_restore in the packet receive path.\n- use napi_gro_receive() instead of netif_receive_skb()\n- use napi_gro_flush() before calling __napi_complete()\n- turn on NETIF_F_GRO by default\n- Tested on a Marvell 88E8001 Gigabit NIC\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4dc89133f49b8cfd77ba7e83f5960aed63aaa99e",
      "tree": "7629fa72b5a13cbf48d43659bb396984caf7362a",
      "parents": [
        "ba4fd9d8282f7f856f2287fe8be784d1dfdda28b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Aug 31 07:40:16 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 31 13:37:06 2010 -0700"
      },
      "message": "net: add a comment on netdev-\u003elast_rx\n\nAs some driver authors seem to reintroduce dev-\u003elast_rx use,\nadd a comment to strongly discourage this.\n\nSince commit 6cf3f41e6c0 (bonding, net: Move last_rx update into bonding\nrecv logic), network drivers dont need to update last_rx themselves,\nunless they use this field to implement a timeout.\n\nNot updating last_rx helps not dirtying a cache line, improving\nperformance in SMP.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e569aa78ba01f7f66e016a4d57310fd041524d17",
      "tree": "eaedc03d42ee2bf6200fc07b080a99bad103def3",
      "parents": [
        "4562487a00445eab96311365ba15c41dc4d043cd",
        "268bae0b6879f238ba57f5f801958d1254e136f7"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Aug 25 14:51:42 2010 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Aug 25 14:51:42 2010 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem\n\nConflicts:\n\tdrivers/net/wireless/libertas/if_sdio.c\n"
    },
    {
      "commit": "1726442e115a9e58f40747d009a5b4f303e0840a",
      "tree": "fbf95da050125bfa0656292c54bd856cf113db37",
      "parents": [
        "0fdc100bdc4b7ab61ed632962c76dfe539047296"
      ],
      "author": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Mon Aug 23 16:26:41 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 23 20:43:17 2010 -0700"
      },
      "message": "net: increase the size of priv_flags and add IFF_OVS_DATAPATH\n\nIFF_OVS_DATAPATH is a place-holder for the Open vSwitch datapath\nwhich I am preparing to submit for merging.\n\nAs all 16 bits of priv_flags are already assigned flags, also increase\nthe size of priv_flags to 32 bits.\n\nUnfortunately, by my calculations this increases the size of\nstruct net_device by 4 bytes on 32bit architectures and\n8 bytes on 64 bit architectures. I couldn\u0027t see an obvious\nway to avoid that.\n\nCc: Jesse Gross \u003cjesse@nicira.com\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "21dc330157454046dd7c494961277d76e1c957fe",
      "tree": "4f030efa8d82f7eb9676acd4cfc74921a6d29972",
      "parents": [
        "2d4833aae65589ba4317dd325fe20c8b25c14173"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 23 00:13:46 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 23 00:13:46 2010 -0700"
      },
      "message": "net: Rename skb_has_frags to skb_has_frag_list\n\nSKBs can be \"fragmented\" in two ways, via a page array (called\nskb_shinfo(skb)-\u003efrags[]) and via a list of SKBs (called\nskb_shinfo(skb)-\u003efrag_list).\n\nSince skb_has_frags() tests the latter, it\u0027s name is confusing\nsince it sounds more like it\u0027s testing the former.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "04600794958f1833f5571c6cde40f260ab557f55",
      "tree": "e3e816cb3e99d40c18bffc618cf42dfa11d25c6e",
      "parents": [
        "d1f5b7a34aa5ff703c4966ea2652d4212ac75940"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Aug 05 17:45:15 2010 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Aug 16 15:26:40 2010 -0400"
      },
      "message": "cfg80211: support sysfs namespaces\n\nEnable using network namespaces with\nwireless devices even when sysfs is\nenabled using the same infrastructure\nthat was built for netdevs.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "82695d9b186dcefe9bd119b53521deec20858f19"
}
