)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "82695d9b186dcefe9bd119b53521deec20858f19",
      "tree": "077cf91b62365763b920b101ee3710274b36bfc3",
      "parents": [
        "4fcc3d3409b0ab37c1f790e04a1f7c984b436167"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Tue Jun 15 15:08:48 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 15 15:08:48 2010 -0700"
      },
      "message": "net: Fix error in comment on net_device_ops::ndo_get_stats\n\nndo_get_stats still returns struct net_device_stats *; there is\nno struct net_device_stats64.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f350a0a87374418635689471606454abc7beaa3a",
      "tree": "c8210542a9848f6b5953b58d2ba1dbfb11715f14",
      "parents": [
        "a35e2c1b6d90544b3c688783869817628e5f9607"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue Jun 15 06:50:45 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 15 11:48:58 2010 -0700"
      },
      "message": "bridge: use rx_handler_data pointer to store net_bridge_port pointer\n\nRegister net_bridge_port pointer as rx_handler data pointer. As br_port is\nremoved from struct net_device, another netdev priv_flag is added to indicate\nthe device serves as a bridge port. Also rcuized pointers are now correctly\ndereferenced in br_fdb.c and in netfilter parts.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a35e2c1b6d90544b3c688783869817628e5f9607",
      "tree": "64fa6bc6b772248acfb92b5743c5f0d475126891",
      "parents": [
        "93e2c32b5cb2ad92ceb1d7a4684f20a0d25bf530"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue Jun 15 03:27:57 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 15 11:47:12 2010 -0700"
      },
      "message": "macvlan: use rx_handler_data pointer to store macvlan_port pointer V2\n\nRegister macvlan_port pointer as rx_handler data pointer. As macvlan_port is\nremoved from struct net_device, another netdev priv_flag is added to indicate\nthe device serves as a macvlan port.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "93e2c32b5cb2ad92ceb1d7a4684f20a0d25bf530",
      "tree": "c15af2642af01702097ade735506d15d7a910c54",
      "parents": [
        "91d2c34a4eed32876ca333b0ca44f3bc56645805"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Thu Jun 10 03:34:59 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 15 11:47:11 2010 -0700"
      },
      "message": "net: add rx_handler data pointer\n\nAdd possibility to register rx_handler data pointer along with a rx_handler.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4247e161b12f8dffb7ee3ee07bc5e61f714ebe2d",
      "tree": "95edfebfb67abcfb95b1865ce8d78e44c1c153c5",
      "parents": [
        "dbaa154178341689faaa08fbf40b94ae5ca1d6c0"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jun 10 16:12:47 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 15 10:58:39 2010 -0700"
      },
      "message": "netpoll: Add ndo_netpoll_setup\n\nThis patch adds ndo_netpoll_setup as the initialisation primitive\nto complement ndo_netpoll_cleanup.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "be1f3c2c027cc5ad735df6a45a542ed1db7ec48b",
      "tree": "c97815a7cf25ea62e8f3a6b3597cfa8957f40b81",
      "parents": [
        "d19b51499967baddf4f9f12a0067146c2554527a"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Tue Jun 08 07:19:54 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 12 15:51:22 2010 -0700"
      },
      "message": "net: Enable 64-bit net device statistics on 32-bit architectures\n\nUse struct rtnl_link_stats64 as the statistics structure.\n\nOn 32-bit architectures, insert 32 bits of padding after/before each\nfield of struct net_device_stats to make its layout compatible with\nstruct rtnl_link_stats64.  Add an anonymous union in net_device; move\nstats into the union and add struct rtnl_link_stats64 stats64.\n\nAdd net_device_ops::ndo_get_stats64, implementations of which will\nreturn a pointer to struct rtnl_link_stats64.  Drivers that implement\nthis operation must not update the structure asynchronously.\n\nChange dev_get_stats() to call ndo_get_stats64 if available, and to\nreturn a pointer to struct rtnl_link_stats64.  Change callers of\ndev_get_stats() accordingly.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bb69ae049fcc986fcd742eb90ca0d44a7a49c9f1",
      "tree": "22f9aa03f9f59139ece8ef1484fe5d4a5b86bd47",
      "parents": [
        "6e8b11b43b0c2e901734e2cdd70c6e325a90c4ef"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Jun 07 11:42:13 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 07 22:49:25 2010 -0700"
      },
      "message": "anycast: Some RCU conversions\n\n- dev_get_by_flags() changed to dev_get_by_flags_rcu()\n\n- ipv6_sock_ac_join() dont touch dev \u0026 idev refcounts\n- ipv6_sock_ac_drop() dont touch dev \u0026 idev refcounts\n- ipv6_sock_ac_close() dont touch dev \u0026 idev refcounts\n- ipv6_dev_ac_dec() dount touch idev refcount\n- ipv6_chk_acast_addr() dont touch idev refcount\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Hideaki YOSHIFUJI \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "724df615928b7050d33b6243f60b12bd87484fc7",
      "tree": "22dc5e941ffb2eb20db6df67cc29c22cbed08f68",
      "parents": [
        "d515e86e639890b33a09390d062b0831664f04a2"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Wed May 26 09:22:40 2010 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jun 04 16:03:34 2010 +0200"
      },
      "message": "fix comment typo in netdevice.h\n\nFix missing \"of\" in comment.\n\n Signed-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "ab95bfe01f9872459c8678572ccadbf646badad0",
      "tree": "8e11f94077c9a80f7af52ce3dd50591a686561d7",
      "parents": [
        "20c59de2e6b6bc74bbf714dcd4e720afe8d516cf"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue Jun 01 21:52:08 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 07:11:15 2010 -0700"
      },
      "message": "net: replace hooks in __netif_receive_skb V5\n\nWhat this patch does is it removes two receive frame hooks (for bridge and for\nmacvlan) from __netif_receive_skb. These are replaced them with a single\nhook for both. It only supports one hook per device because it makes no\nsense to do bridging and macvlan on the same device.\n\nThen a network driver (of virtual netdev like macvlan or bridge) can register\nan rx_handler for needed net device.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c2d9ba9bce8d7323ca96f239e1f505c14d6244fb",
      "tree": "7a184eefa2e48e6aa15cdf3aefb6ccf2fb834320",
      "parents": [
        "c6b20d941b08941bece53bc3d857beb1fb25fffc"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 01 06:51:19 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 02 05:16:23 2010 -0700"
      },
      "message": "net: CONFIG_NET_NS reduction\n\nUse read_pnet() and write_pnet() to reduce number of ifdef CONFIG_NET_NS\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "06c4648d46d1b757d6b9591a86810be79818b60c",
      "tree": "96f6e09a23071157d5b446853294b4564155ffee",
      "parents": [
        "3f8dc2362fd43a0adee2f6f05bf1ac4d619675b6"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "Ian.Campbell@citrix.com",
        "time": "Wed May 26 00:09:42 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 31 00:27:44 2010 -0700"
      },
      "message": "arp_notify: allow drivers to explicitly request a notification event.\n\nCurrently such notifications are only generated when the device comes up or the\naddress changes. However one use case for these notifications is to enable\nfaster network recovery after a virtual machine migration (by causing switches\nto relearn their MAC tables). A migration appears to the network stack as a\ntemporary loss of carrier and therefore does not trigger either of the current\nconditions. Rather than adding carrier up as a trigger (which can cause issues\nwhen interfaces a flapping) simply add an interface which the driver can use\nto explicitly trigger the notification.\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nCc: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: netdev@vger.kernel.org\nCc: stable@kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a4ed89cb92f93d406ac45fe5507228a2475e32ba",
      "tree": "b4effecbd79311832676c756d3acedeb84ba931a",
      "parents": [
        "7f267de41fde594500cbbccb1b29acb4475f2da2"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Tue May 18 06:56:32 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 23 23:21:13 2010 -0700"
      },
      "message": "net: Fix definition of netif_vdbg() when VERBOSE_DEBUG is not defined\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "76cc8b13a6e41b537fd262b600da1571314add62",
      "tree": "a8a25a4f23be5c0eeed77dd9fcb30dc9b315e519",
      "parents": [
        "1f01bfd202bc539bccd282befa2bbdb8d6ad80ee"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Thu May 20 18:37:59 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 21 00:38:33 2010 -0700"
      },
      "message": "net: fix problem in dequeuing from input_pkt_queue\n\nFix some issues introduced in batch skb dequeuing for input_pkt_queue.\nThe primary issue it that the queue head must be incremented only\nafter a packet has been processed, that is only after\n__netif_receive_skb has been called.  This is needed for the mechanism\nto prevent OOO packet in RFS.  Also when flushing the input_pkt_queue\nand process_queue, the process queue should be done first to prevent\nOOO packets.\n\nBecause the input_pkt_queue has been effectively split into two queues,\nthe calculation of the tail ptr is no longer correct.  The correct value\nwould be head+input_pkt_queue-\u003elen+process_queue-\u003elen.  To avoid\nthis calculation we added an explict input_queue_tail in softnet_data.\nThe tail value is simply incremented when queuing to input_pkt_queue.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f8965467f366fd18f01feafb5db10512d7b4422c",
      "tree": "3706a9cd779859271ca61b85c63a1bc3f82d626e",
      "parents": [
        "a26272e5200765691e67d6780e52b32498fdb659",
        "2ec8c6bb5d8f3a62a79f463525054bae1e3d4487"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:04:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:04:44 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1674 commits)\n  qlcnic: adding co maintainer\n  ixgbe: add support for active DA cables\n  ixgbe: dcb, do not tag tc_prio_control frames\n  ixgbe: fix ixgbe_tx_is_paused logic\n  ixgbe: always enable vlan strip/insert when DCB is enabled\n  ixgbe: remove some redundant code in setting FCoE FIP filter\n  ixgbe: fix wrong offset to fc_frame_header in ixgbe_fcoe_ddp\n  ixgbe: fix header len when unsplit packet overflows to data buffer\n  ipv6: Never schedule DAD timer on dead address\n  ipv6: Use POSTDAD state\n  ipv6: Use state_lock to protect ifa state\n  ipv6: Replace inet6_ifaddr-\u003edead with state\n  cxgb4: notify upper drivers if the device is already up when they load\n  cxgb4: keep interrupts available when the ports are brought down\n  cxgb4: fix initial addition of MAC address\n  cnic: Return SPQ credit to bnx2x after ring setup and shutdown.\n  cnic: Convert cnic_local_flags to atomic ops.\n  can: Fix SJA1000 command register writes on SMP systems\n  bridge: fix build for CONFIG_SYSFS disabled\n  ARCNET: Limit com20020 PCI ID matches for SOHARD cards\n  ...\n\nFix up various conflicts with pcmcia tree drivers/net/\n{pcmcia/3c589_cs.c, wireless/orinoco/orinoco_cs.c and\nwireless/orinoco/spectrum_cs.c} and feature removal\n(Documentation/feature-removal-schedule.txt).\n\nAlso fix a non-content conflict due to pm_qos_requirement getting\nrenamed in the PM tree (now pm_qos_request) in net/mac80211/scan.c\n"
    },
    {
      "commit": "57b610805ce92dbd79fc97509f80fa5391b99623",
      "tree": "0d022d63c81d73b51e6001758d4353d0518a01e1",
      "parents": [
        "ee289b6440c3b0ccb9459495783e8c299bec6604"
      ],
      "author": {
        "name": "Scott Feldman",
        "email": "scofeldm@cisco.com",
        "time": "Mon May 17 22:49:55 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 17 22:49:55 2010 -0700"
      },
      "message": "net: Add netlink support for virtual port management (was iovnl)\n\nAdd new netdev ops ndo_{set|get}_vf_port to allow setting of\nport-profile on a netdev interface.  Extends netlink socket RTM_SETLINK/\nRTM_GETLINK with two new sub msgs called IFLA_VF_PORTS and IFLA_PORT_SELF\n(added to end of IFLA_cmd list).  These are both nested atrtibutes\nusing this layout:\n\n              [IFLA_NUM_VF]\n              [IFLA_VF_PORTS]\n                      [IFLA_VF_PORT]\n                              [IFLA_PORT_*], ...\n                      [IFLA_VF_PORT]\n                              [IFLA_PORT_*], ...\n                      ...\n              [IFLA_PORT_SELF]\n                      [IFLA_PORT_*], ...\n\nThese attributes are design to be set and get symmetrically.  VF_PORTS\nis a list of VF_PORTs, one for each VF, when dealing with an SR-IOV\ndevice.  PORT_SELF is for the PF of the SR-IOV device, in case it wants\nto also have a port-profile, or for the case where the VF\u003d\u003dPF, like in\nenic patch 2/2 of this patch set.\n\nA port-profile is used to configure/enable the external switch virtual port\nbacking the netdev interface, not to configure the host-facing side of the\nnetdev.  A port-profile is an identifier known to the switch.  How port-\nprofiles are installed on the switch or how available port-profiles are\nmade know to the host is outside the scope of this patch.\n\nThere are two types of port-profiles specs in the netlink msg.  The first spec\nis for 802.1Qbg (pre-)standard, VDP protocol.  The second spec is for devices\nthat run a similar protocol as VDP but in firmware, thus hiding the protocol\ndetails.  In either case, the specs have much in common and makes sense to\ndefine the netlink msg as the union of the two specs.  For example, both specs\nhave a notition of associating/deassociating a port-profile.  And both specs\nrequire some information from the hypervisor manager, such as client port\ninstance ID.\n\nThe general flow is the port-profile is applied to a host netdev interface\nusing RTM_SETLINK, the receiver of the RTM_SETLINK msg communicates with the\nswitch, and the switch virtual port backing the host netdev interface is\nconfigured/enabled based on the settings defined by the port-profile.  What\nthose settings comprise, and how those settings are managed is again\noutside the scope of this patch, since this patch only deals with the\nfirst step in the flow.\n\nSigned-off-by: Scott Feldman \u003cscofeldm@cisco.com\u003e\nSigned-off-by: Roopa Prabhu \u003croprabhu@cisco.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3b098e2d7c693796cc4dffb07caa249fc0f70771",
      "tree": "586c4f5dc57988ade175ffc7e4b6d0261b12e166",
      "parents": [
        "a1aa3483041bd3691c7f029272ccef4ce70bd957"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sat May 15 23:57:10 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 15 23:57:10 2010 -0700"
      },
      "message": "net: Consistent skb timestamping\n\nWith RPS inclusion, skb timestamping is not consistent in RX path.\n\nIf netif_receive_skb() is used, its deferred after RPS dispatch.\n\nIf netif_rx() is used, its done before RPS dispatch.\n\nThis can give strange tcpdump timestamps results.\n\nI think timestamping should be done as soon as possible in the receive\npath, to get meaningful values (ie timestamps taken at the time packet\nwas delivered by NIC driver to our stack), even if NAPI already can\ndefer timestamping a bit (RPS can help to reduce the gap)\n\nTom Herbert prefer to sample timestamps after RPS dispatch. In case\nsampling is expensive (HPET/acpi_pm on x86), this makes sense.\n\nLet admins switch from one mode to another, using a new\nsysctl, /proc/sys/net/core/netdev_tstamp_prequeue\n\nIts default value (1), means timestamps are taken as soon as possible,\nbefore backlog queueing, giving accurate timestamps.\n\nSetting a 0 value permits to sample timestamps when processing backlog,\nafter RPS dispatch, to lower the load of the pre-RPS cpu.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed77134bfccf5e75b6cbadab268e559dbe6a4ebb",
      "tree": "dae087a617ab3d9af8673d1905dbca3bcd57e89e",
      "parents": [
        "0fef8b1e83c4ab08cf1304dbebcfd749caf4f187"
      ],
      "author": {
        "name": "Mark Gross",
        "email": "mgross@linux.intel.com",
        "time": "Thu May 06 01:59:26 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon May 10 23:08:19 2010 +0200"
      },
      "message": "PM QOS update\n\nThis patch changes the string based list management to a handle base\nimplementation to help with the hot path use of pm-qos, it also renames\nmuch of the API to use \"request\" as opposed to \"requirement\" that was\nused in the initial implementation.  I did this because request more\naccurately represents what it actually does.\n\nAlso, I added a string based ABI for users wanting to use a string\ninterface.  So if the user writes 0xDDDDDDDD formatted hex it will be\naccepted by the interface.  (someone asked me for it and I don\u0027t think\nit hurts anything.)\n\nThis patch updates some documentation input I got from Randy.\n\nSigned-off-by: markgross \u003cmgross@linux.intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "0e34e93177fb1f642cab080e0bde664c06c7183a",
      "tree": "5353f873ab99c2cff76f12b41e9a9e2018e66b30",
      "parents": [
        "08259594e047170923ef11d1482648642bfe606f"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "amwang@redhat.com",
        "time": "Thu May 06 00:47:21 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 06 00:47:21 2010 -0700"
      },
      "message": "netpoll: add generic support for bridge and bonding devices\n\nThis whole patchset is for adding netpoll support to bridge and bonding\ndevices. I already tested it for bridge, bonding, bridge over bonding,\nand bonding over bridge. It looks fine now.\n\nTo make bridge and bonding support netpoll, we need to adjust\nsome netpoll generic code. This patch does the following things:\n\n1) introduce two new priv_flags for struct net_device:\n   IFF_IN_NETPOLL which identifies we are processing a netpoll;\n   IFF_DISABLE_NETPOLL is used to disable netpoll support for a device\n   at run-time;\n\n2) introduce one new method for netdev_ops:\n   -\u003endo_netpoll_cleanup() is used to clean up netpoll when a device is\n     removed.\n\n3) introduce netpoll_poll_dev() which takes a struct net_device * parameter;\n   export netpoll_send_skb() and netpoll_poll_dev() which will be used later;\n\n4) hide a pointer to struct netpoll in struct netpoll_info, ditto.\n\n5) introduce -\u003ereal_dev for struct netpoll.\n\n6) introduce a new status NETDEV_BONDING_DESLAE, which is used to disable\n   netconsole before releasing a slave, to avoid deadlocks.\n\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cd7b5396e7e4d10c51116f59f414ff90312af8d4",
      "tree": "a89bf09771539582226dece2740734108f5a848a",
      "parents": [
        "dee42870a423ad485129f43cddfe7275479f11d8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 02 22:27:59 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 02 22:27:59 2010 -0700"
      },
      "message": "net: Use explicit \"unsigned int\" instead of plain \"unsigned\" in netdevice.h\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dee42870a423ad485129f43cddfe7275479f11d8",
      "tree": "e30433d3b55ee248eb672765fe6705be160d882c",
      "parents": [
        "7ef527377b88ff05fb122a47619ea506c631c914"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Sun May 02 05:42:16 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 02 22:26:57 2010 -0700"
      },
      "message": "net: fix softnet_stat\n\nPer cpu variable softnet_data.total was shared between IRQ and SoftIRQ context\nwithout any protection. And enqueue_to_backlog should update the netdev_rx_stat\nof the target CPU.\n\nThis patch renames softnet_data.total to softnet_data.processed: the number of\npackets processed in uppper levels(IP stacks).\n\nsoftnet_stat data is moved into softnet_data.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\n----\n include/linux/netdevice.h |   17 +++++++----------\n net/core/dev.c            |   26 ++++++++++++--------------\n net/sched/sch_generic.c   |    2 +-\n 3 files changed, 20 insertions(+), 25 deletions(-)\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6e7676c1a76aed6e957611d8d7a9e5592e23aeba",
      "tree": "0cd14260745f755c885466c59182452f637e92e3",
      "parents": [
        "c58dc01babfd58ec9e71a6ce080150dc27755d88"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Tue Apr 27 15:07:33 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 27 15:11:49 2010 -0700"
      },
      "message": "net: batch skb dequeueing from softnet input_pkt_queue\n\nbatch skb dequeueing from softnet input_pkt_queue to reduce potential lock\ncontention when RPS is enabled.\n\nNote: in the worst case, the number of packets in a softnet_data may\nbe double of netdev_max_backlog.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a9cbd588fdb71ea415754c885e2f9f03e6bf1ba0",
      "tree": "68506bd4299f34b3ed31b76eb575e79c61e198fb",
      "parents": [
        "bb611874650cff942a7466b456a791e8bfa641e7"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Mon Apr 26 23:06:24 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 27 14:32:12 2010 -0700"
      },
      "message": "net: reimplement softnet_data.output_queue as a FIFO queue\n\nreimplement softnet_data.output_queue as a FIFO queue to keep the\nfairness among the qdiscs rescheduled.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n----\n include/linux/netdevice.h |    1 +\n net/core/dev.c            |   22 ++++++++++++----------\n 2 files changed, 13 insertions(+), 10 deletions(-)\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e36fa2f7e92f25aab2e3d787dcfe3590817f19d3",
      "tree": "b1bd60b14131dacc72a80efbd2f062935cc43e25",
      "parents": [
        "f5acb907dc24c3822f408211bad1cd6e5d0433cf"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Apr 19 21:17:14 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 01:18:05 2010 -0700"
      },
      "message": "rps: cleanups\n\nstruct softnet_data holds many queues, so consistent use \"sd\" name\ninstead of \"queue\" is better.\n\nAdds a rps_ipi_queued() helper to cleanup enqueue_to_backlog()\n\nAdds a _and_irq_disable suffix to net_rps_action() name, as David\nsuggested.\n\nincr_input_queue_head() becomes input_queue_head_incr()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "88751275b8e867d756e4f86ae92afe0232de129f",
      "tree": "011913d98eb65f5e90981da0275c2f5a07c2bee1",
      "parents": [
        "a03b1a5c95e8bcb07512122995bbf5bd3c39f2b9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Apr 19 05:07:33 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 19 13:20:34 2010 -0700"
      },
      "message": "rps: shortcut net_rps_action()\n\nnet_rps_action() is a bit expensive on NR_CPUS\u003d64..4096 kernels, even if\nRPS is not active.\n\nTom Herbert used two bitmasks to hold information needed to send IPI,\nbut a single LIFO list seems more appropriate.\n\nMove all RPS logic into net_rps_action() to cleanup net_rx_action() code\n(remove two ifdefs)\n\nMove rps_remote_softirq_cpus into softnet_data to share its first cache\nline, filling an existing hole.\n\nIn a future patch, we could call net_rps_action() from process_backlog()\nto make sure we send IPI before handling this cpu backlog.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fec5e652e58fa6017b2c9e06466cb2a6538de5b4",
      "tree": "e034f2a1e7930a0a225bd30896f834ec5e09c084",
      "parents": [
        "b5d43998234331b9c01bd2165fdbb25115f4387f"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Fri Apr 16 16:01:27 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 16 16:01:27 2010 -0700"
      },
      "message": "rfs: Receive Flow Steering\n\nThis patch implements receive flow steering (RFS).  RFS steers\nreceived packets for layer 3 and 4 processing to the CPU where\nthe application for the corresponding flow is running.  RFS is an\nextension of Receive Packet Steering (RPS).\n\nThe basic idea of RFS is that when an application calls recvmsg\n(or sendmsg) the application\u0027s running CPU is stored in a hash\ntable that is indexed by the connection\u0027s rxhash which is stored in\nthe socket structure.  The rxhash is passed in skb\u0027s received on\nthe connection from netif_receive_skb.  For each received packet,\nthe associated rxhash is used to look up the CPU in the hash table,\nif a valid CPU is set then the packet is steered to that CPU using\nthe RPS mechanisms.\n\nThe convolution of the simple approach is that it would potentially\nallow OOO packets.  If threads are thrashing around CPUs or multiple\nthreads are trying to read from the same sockets, a quickly changing\nCPU value in the hash table could cause rampant OOO packets--\nwe consider this a non-starter.\n\nTo avoid OOO packets, this solution implements two types of hash\ntables: rps_sock_flow_table and rps_dev_flow_table.\n\nrps_sock_table is a global hash table.  Each entry is just a CPU\nnumber and it is populated in recvmsg and sendmsg as described above.\nThis table contains the \"desired\" CPUs for flows.\n\nrps_dev_flow_table is specific to each device queue.  Each entry\ncontains a CPU and a tail queue counter.  The CPU is the \"current\"\nCPU for a matching flow.  The tail queue counter holds the value\nof a tail queue counter for the associated CPU\u0027s backlog queue at\nthe time of last enqueue for a flow matching the entry.\n\nEach backlog queue has a queue head counter which is incremented\non dequeue, and so a queue tail counter is computed as queue head\ncount + queue length.  When a packet is enqueued on a backlog queue,\nthe current value of the queue tail counter is saved in the hash\nentry of the rps_dev_flow_table.\n\nAnd now the trick: when selecting the CPU for RPS (get_rps_cpu)\nthe rps_sock_flow table and the rps_dev_flow table for the RX queue\nare consulted.  When the desired CPU for the flow (found in the\nrps_sock_flow table) does not match the current CPU (found in the\nrps_dev_flow table), the current CPU is changed to the desired CPU\nif one of the following is true:\n\n- The current CPU is unset (equal to RPS_NO_CPU)\n- Current CPU is offline\n- The current CPU\u0027s queue head counter \u003e\u003d queue tail counter in the\nrps_dev_flow table.  This checks if the queue tail has advanced\nbeyond the last packet that was enqueued using this table entry.\nThis guarantees that all packets queued using this entry have been\ndequeued, thus preserving in order delivery.\n\nMaking each queue have its own rps_dev_flow table has two advantages:\n1) the tail queue counters will be written on each receive, so\nkeeping the table local to interrupting CPU s good for locality.  2)\nthis allows lockless access to the table-- the CPU number and queue\ntail counter need to be accessed together under mutual exclusion\nfrom netif_receive_skb, we assume that this is only called from\ndevice napi_poll which is non-reentrant.\n\nThis patch implements RFS for TCP and connected UDP sockets.\nIt should be usable for other flow oriented protocols.\n\nThere are two configuration parameters for RFS.  The\n\"rps_flow_entries\" kernel init parameter sets the number of\nentries in the rps_sock_flow_table, the per rxqueue sysfs entry\n\"rps_flow_cnt\" contains the number of entries in the rps_dev_flow\ntable for the rxqueue.  Both are rounded to power of two.\n\nThe obvious benefit of RFS (over just RPS) is that it achieves\nCPU locality between the receive processing for a flow and the\napplications processing; this can result in increased performance\n(higher pps, lower latency).\n\nThe benefits of RFS are dependent on cache hierarchy, application\nload, and other factors.  On simple benchmarks, we don\u0027t necessarily\nsee improvement and sometimes see degradation.  However, for more\ncomplex benchmarks and for applications where cache pressure is\nmuch higher this technique seems to perform very well.\n\nBelow are some benchmark results which show the potential benfit of\nthis patch.  The netperf test has 500 instances of netperf TCP_RR\ntest with 1 byte req. and resp.  The RPC test is an request/response\ntest similar in structure to netperf RR test ith 100 threads on\neach host, but does more work in userspace that netperf.\n\ne1000e on 8 core Intel\n   No RFS or RPS\t\t104K tps at 30% CPU\n   No RFS (best RPS config):    290K tps at 63% CPU\n   RFS\t\t\t\t303K tps at 61% CPU\n\nRPC test\ttps\tCPU%\t50/90/99% usec latency\tLatency StdDev\n  No RFS/RPS\t103K\t48%\t757/900/3185\t\t4472.35\n  RPS only:\t174K\t73%\t415/993/2468\t\t491.66\n  RFS\t\t223K\t73%\t379/651/1382\t\t315.61\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fd793d8905720595caede6bd26c5df6c0ecd37f8",
      "tree": "1aab1c7c6db278d0400e9a2e6019955419413a6c",
      "parents": [
        "b0e28f1effd1d840b36e961edc1def81e01b1ca1"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Thu Apr 15 00:16:59 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 15 00:16:59 2010 -0700"
      },
      "message": "net: CONFIG_SMP should be CONFIG_RPS\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "acbbc07145b919248c410e1852b953d385be5c97",
      "tree": "bafccb1c98540a2e6758df44ef72b6c2d55a2a78",
      "parents": [
        "829e0015431537176e38812f88fffe1d3250083e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Apr 11 06:56:11 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 13 03:32:42 2010 -0700"
      },
      "message": "net: uninline skb_bond_should_drop()\n\nskb_bond_should_drop() is too big to be inlined.\n\nThis patch reduces kernel text size, and its compilation time as well\n(shrinking include/linux/netdevice.h)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "18e225f257663c59ff9d4482f07ffd06361fc2ec",
      "tree": "1e131d82de1a07488272d5724a4e641d6a466345",
      "parents": [
        "8e4795605d1e1b39113818ad7c147b8a867a1f6a"
      ],
      "author": {
        "name": "Pavel Roskin",
        "email": "proski@gnu.org",
        "time": "Wed Apr 07 16:40:09 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 07 16:40:09 2010 -0700"
      },
      "message": "net: fix definition of netdev_for_each_mc_addr()\n\nThe first argument should be called ha, not mclist.  All callers use the\nname \"ha\", but if they used a different name, there would be a compile\nerror.\n\nSigned-off-by: Pavel Roskin \u003cproski@gnu.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "22bedad3ce112d5ca1eaf043d4990fa2ed698c87",
      "tree": "b6fba5688d48b1396f01d13ee53610dea7749c15",
      "parents": [
        "a748ee2426817a95b1f03012d8f339c45c722ae1"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Thu Apr 01 21:22:57 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 03 14:22:15 2010 -0700"
      },
      "message": "net: convert multicast list to list_head\n\nConverts the list and the core manipulating with it to be the same as uc_list.\n\n+uses two functions for adding/removing mc address (normal and \"global\"\n variant) instead of a function parameter.\n+removes dev_mcast.c completely.\n+exposes netdev_hw_addr_list_* macros along with __hw_addr_* functions for\n manipulation with lists on a sandbox (used in bonding and 80211 drivers)\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a748ee2426817a95b1f03012d8f339c45c722ae1",
      "tree": "37cb9f8836f05bd49b86eb52ddeff3e98185cc58",
      "parents": [
        "9fc4178b149ae8b0a2fbf83f2f4df3cf8789177b"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Thu Apr 01 21:22:09 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 03 14:22:11 2010 -0700"
      },
      "message": "net: move address list functions to a separate file\n\n+little renaming of unicast functions to be smooth with multicast ones\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b00fabb4020d17bda4bea59507e09fadf573088d",
      "tree": "db746ff4c223cc5ba98927d9f9421285952c7231",
      "parents": [
        "757b77e2b208490868cf21fd22d796eb9bd199c5"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Mar 29 14:47:27 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 30 23:51:08 2010 -0700"
      },
      "message": "netdev: ethtool RXHASH flag\n\nThis adds ethtool and device feature flag to allow control\nof receive hashing offload.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "df3345457a7a174dfb5872a070af80d456985038",
      "tree": "d8d2d2a86d0b3473783ea2709ff242817e78ed54",
      "parents": [
        "2381a55c88453d3f29fe62d235579a05fc20b7b3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Mar 24 19:13:54 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 25 12:07:00 2010 -0700"
      },
      "message": "rps: add CONFIG_RPS\n\nRPS currently depends on SMP and SYSFS\n\nAdding a CONFIG_RPS makes sense in case this requirement changes in the\nfuture. This patch saves about 1500 bytes of kernel text in case SMP is\non but SYSFS is off.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "32a806c194ea112cfab00f558482dd97bee5e44e",
      "tree": "196f572deccc966b3e2682f293cf775b51007658",
      "parents": [
        "755d0e77ac9c8d125388922dc33434ed5b2ebe80"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Fri Mar 19 04:00:23 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 21 18:31:34 2010 -0700"
      },
      "message": "bonding: flush unicast and multicast lists when changing type\n\nAfter the type change, addresses in unicast and multicast lists wouldn\u0027t make\nsense, not to mention possible different lenghts. So flush both lists here.\n\nNote \"dev_addr_discard\" will be very soon replaced by \"dev_mc_flush\" (once\nmc_list conversion will be done).\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e77c8e83dd587f2616d7ff20d23a897891e6e20d",
      "tree": "ba5d2ce6541119f329b2fd51181aaae8528b38f0",
      "parents": [
        "641cb85e68945878d520d5fc3c2dc64aa1dda868",
        "af98441397227a5a4f212cd48710eea72a14dbdb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 20 15:24:29 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 20 15:24:29 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "0641e4fbf2f824faee00ea74c459a088d94905fd",
      "tree": "54fdd8bc2e3a928ff0f7621c06e1e604eaf0529c",
      "parents": [
        "54d259d474e1fee6f6bb8f0f1360d85195199ac5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Mar 18 21:16:45 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 18 21:16:45 2010 -0700"
      },
      "message": "net: Potential null skb-\u003edev dereference\n\nWhen doing \"ifenslave -d bond0 eth0\", there is chance to get NULL\ndereference in netif_receive_skb(), because dev-\u003emaster suddenly becomes\nNULL after we tested it.\n\nWe should use ACCESS_ONCE() to avoid this (or rcu_dereference())\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3ca5b4042ecae5e73c59de62e4ac0db31c10e0f8",
      "tree": "a285e4281bd9ee6a248d905cd4707c15a66bac96",
      "parents": [
        "93d9b7d7a85cfb4e1711d5226eba73586dd4919f"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Wed Mar 10 10:29:35 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 18 20:00:02 2010 -0700"
      },
      "message": "bonding: check return value of nofitier when changing type\n\nThis patch adds the possibility to refuse the bonding type change for\nother subsystems (such as for example bridge, vlan, etc.)\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1e94d72feab025b8f7c55d07020602f82f3a97dd",
      "tree": "f8d38b4fa5b51046e1bbcaf8f3fc88edc2052cae",
      "parents": [
        "a034016287236f435dbb8f1f57aee906f22b4598"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Thu Mar 18 17:45:44 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 18 17:45:44 2010 -0700"
      },
      "message": "rps: Fixed build with CONFIG_SMP not enabled.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a9627f2649a02bea165cfd529d7bcb625c2fcad",
      "tree": "e5d4424b99208c78e2b2fe6ff5a158fc21bdf782",
      "parents": [
        "768bbedf9ca4cc4784eae2003f37abe0818fe0b0"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Tue Mar 16 08:03:29 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 16 21:23:18 2010 -0700"
      },
      "message": "rps: Receive Packet Steering\n\nThis patch implements software receive side packet steering (RPS).  RPS\ndistributes the load of received packet processing across multiple CPUs.\n\nProblem statement: Protocol processing done in the NAPI context for received\npackets is serialized per device queue and becomes a bottleneck under high\npacket load.  This substantially limits pps that can be achieved on a single\nqueue NIC and provides no scaling with multiple cores.\n\nThis solution queues packets early on in the receive path on the backlog queues\nof other CPUs.   This allows protocol processing (e.g. IP and TCP) to be\nperformed on packets in parallel.   For each device (or each receive queue in\na multi-queue device) a mask of CPUs is set to indicate the CPUs that can\nprocess packets. A CPU is selected on a per packet basis by hashing contents\nof the packet header (e.g. the TCP or UDP 4-tuple) and using the result to index\ninto the CPU mask.  The IPI mechanism is used to raise networking receive\nsoftirqs between CPUs.  This effectively emulates in software what a multi-queue\nNIC can provide, but is generic requiring no device support.\n\nMany devices now provide a hash over the 4-tuple on a per packet basis\n(e.g. the Toeplitz hash).  This patch allow drivers to set the HW reported hash\nin an skb field, and that value in turn is used to index into the RPS maps.\nUsing the HW generated hash can avoid cache misses on the packet when\nsteering it to a remote CPU.\n\nThe CPU mask is set on a per device and per queue basis in the sysfs variable\n/sys/class/net/\u003cdevice\u003e/queues/rx-\u003cn\u003e/rps_cpus.  This is a set of canonical\nbit maps for receive queues in the device (numbered by \u003cn\u003e).  If a device\ndoes not support multi-queue, a single variable is used for the device (rx-0).\n\nGenerally, we have found this technique increases pps capabilities of a single\nqueue device with good CPU utilization.  Optimal settings for the CPU mask\nseem to depend on architectures and cache hierarcy.  Below are some results\nrunning 500 instances of netperf TCP_RR test with 1 byte req. and resp.\nResults show cumulative transaction rate and system CPU utilization.\n\ne1000e on 8 core Intel\n   Without RPS: 108K tps at 33% CPU\n   With RPS:    311K tps at 64% CPU\n\nforcedeth on 16 core AMD\n   Without RPS: 156K tps at 15% CPU\n   With RPS:    404K tps at 49% CPU\n\nbnx2x on 16 core AMD\n   Without RPS  567K tps at 61% CPU (4 HW RX queues)\n   Without RPS  738K tps at 96% CPU (8 HW RX queues)\n   With RPS:    854K tps at 76% CPU (4 HW RX queues)\n\nCaveats:\n- The benefits of this patch are dependent on architecture and cache hierarchy.\nTuning the masks to get best performance is probably necessary.\n- This patch adds overhead in the path for processing a single packet.  In\na lightly loaded server this overhead may eliminate the advantages of\nincreased parallelism, and possibly cause some relative performance degradation.\nWe have found that masks that are cache aware (share same caches with\nthe interrupting CPU) mitigate much of this.\n- The RPS masks can be changed dynamically, however whenever the mask is changed\nthis introduces the possibility of generating out of order packets.  It\u0027s\nprobably best not change the masks too frequently.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\n\n include/linux/netdevice.h |   32 ++++-\n include/linux/skbuff.h    |    3 +\n net/core/dev.c            |  335 +++++++++++++++++++++++++++++++++++++--------\n net/core/net-sysfs.c      |  225 ++++++++++++++++++++++++++++++-\n net/core/skbuff.c         |    2 +\n 5 files changed, 538 insertions(+), 59 deletions(-)\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bd38081160bb3d036db98472e537b6a7dd4da51a",
      "tree": "26af1cae5e2dda3269da6f812586e93954582d54",
      "parents": [
        "a2835763e130c343ace5320c20d33c281e7097b7"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Feb 26 06:34:53 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 27 02:43:40 2010 -0800"
      },
      "message": "dev: support deferring device flag change notifications\n\nSplit dev_change_flags() into two functions: __dev_change_flags() to\nperform the actual changes and __dev_notify_flags() to invoke netdevice\nnotifiers. This will be used by rtnl_link to defer netlink notifications\nuntil the device has been fully configured.\n\nThis changes ordering of some operations, in particular:\n\n- netlink notifications are sent after all changes have been performed.\n  As a side effect this surpresses one unnecessary netlink message when\n  the IFF_UP and other flags are changed simultaneously.\n\n- The NETDEV_UP/NETDEV_DOWN and NETDEV_CHANGE notifiers are invoked\n  after all changes have been performed. Their relative is unchanged.\n\n- net_dmaengine_put() is invoked before the NETDEV_DOWN notifier instead\n  of afterwards. This should not make any difference since both RX and TX\n  are already shut down at this point.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a2835763e130c343ace5320c20d33c281e7097b7",
      "tree": "26077aa8aec7a61fd7e3de31c5eeec4960f78079",
      "parents": [
        "10de05afe01c12cedc42eb9ce05b111eed6c8210"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Feb 26 06:34:51 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 27 02:43:39 2010 -0800"
      },
      "message": "rtnetlink: handle rtnl_link netlink notifications manually\n\nIn order to support specifying device flags during device creation,\nwe must be able to roll back device registration in case setting the\nflags fails without sending any notifications related to the device\nto userspace.\n\nThis patch changes rollback_registered_many() and register_netdevice()\nto manually send netlink notifications for devices not handled by\nrtnl_link and allows to defer notifications for devices handled by\nrtnl_link until setup is complete.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ce300c7ffa61165f9bfd16e511ee0cd4114977ab",
      "tree": "874b57409bad0c9620a431272e6bf5c94e270253",
      "parents": [
        "8266d7127c1b0bdf924066c19c71be4d351e9583",
        "9e3bd9190800e8209b4a3e1d724c35f0738dcad2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 27 02:05:54 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 27 02:05:54 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6\n"
    },
    {
      "commit": "caf66e581172dc5032bb84841a91bc7b77ad9876",
      "tree": "6964b20056382eb69667eb35ad3b0fa7fc268221",
      "parents": [
        "b446918b77c717a34eaa853dfab55f579d330551"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Feb 25 12:02:45 2010 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Feb 26 16:59:11 2010 -0500"
      },
      "message": "netdevice.h: check for CONFIG_WLAN instead of CONFIG_WLAN_80211\n\nIn \"wireless: remove WLAN_80211 and WLAN_PRE80211 from Kconfig\" I\ninadvertantly missed a line in include/linux/netdevice.h.  I thereby\neffectively reverted \"net: Set LL_MAX_HEADER properly for wireless.\" by\naccident. :-(  Now we should check there for CONFIG_WLAN instead.\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nReported-by: Christoph Egger \u003csiccegge@stud.informatik.uni-erlangen.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "95c26df829ba4a25f40595cadb4c9433883cbe28",
      "tree": "aa67243806f3012ee82fa182990251952973ffe8",
      "parents": [
        "b280da8d54b8d82b52f368a8703b7ada6c1744d5"
      ],
      "author": {
        "name": "Williams, Mitch A",
        "email": "mitch.a.williams@intel.com",
        "time": "Wed Feb 10 01:43:46 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 12 16:56:08 2010 -0800"
      },
      "message": "net: Add netdev ops for SR-IOV configuration\n\nAdd netdev ops for configuring SR-IOV VF devices through the PF driver.\n\nSigned-off-by: Mitch Williams \u003cmitch.a.williams@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b3d95c5c93d4b57eaea0ad3f582b08a6b5fb3eb1",
      "tree": "3dc48783dc30ed1769b3a50c18861eadd2b67136",
      "parents": [
        "ba211e3ec35820eced89bfe12e2d94e6352a4c5f"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Feb 09 11:49:49 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 12 13:27:45 2010 -0800"
      },
      "message": "include/linux/netdevice.h: Add netif_printk helpers\n\nAdd macros to test a private structure for msg_enable bits\nand the netif_msg_##bit to test and call netdev_printk if set\n\nSimplifies logic in callers and adds message logging consistency\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "571ba42303813106d533bf6bda929d8e289f51bf",
      "tree": "72a4cac3c48dded8aeda6f3f839764b9b766fe13",
      "parents": [
        "21809fafa042fcfff3f788419bed99f3c289745c"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Feb 09 11:49:47 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 12 13:27:44 2010 -0800"
      },
      "message": "netdevice.h: Add netdev_printk helpers like dev_printk\n\nThese netdev_printk routines take a struct net_device * and emit\ndev_printk logging messages adding \"%s: \" ... netdev-\u003edev.parent\nto the dev_printk format and arguments.\n\nThis can create some uniformity in the output message log.\n\nThese helpers should not be used until a successful alloc_netdev.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "15682bc488d4af8c9bb998844a94281025e0a333",
      "tree": "2534589c00cbf695e6c2906f5c228a0006174904",
      "parents": [
        "375c568844e49d292885c7485d4a255f71680e56"
      ],
      "author": {
        "name": "Peter P Waskiewicz Jr",
        "email": "peter.p.waskiewicz.jr@intel.com",
        "time": "Wed Feb 10 20:03:05 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 10 20:03:05 2010 -0800"
      },
      "message": "ethtool: Introduce n-tuple filter programming support\n\nThis patchset enables the ethtool layer to program n-tuple\nfilters to an underlying device.  The idea is to allow capable\nhardware to have static rules applied that can assist steering\nflows into appropriate queues.\n\nHardware that is known to support these types of filters today\nare ixgbe and niu.\n\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6683ece36e3531fc8c75f69e7165c5f20930be88",
      "tree": "4dd9fe9057248577a75eb60ae9f83a999f062b02",
      "parents": [
        "1b924032533033a4dae1a239981677bdae21949b"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Thu Feb 04 10:22:25 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 04 10:22:25 2010 -0800"
      },
      "message": "net: use helpers to access mc list V2\n\nThis patch introduces the similar helpers as those already done for uc list.\nHowever multicast lists are no list_head lists but \"mademanually\". The three\nmacros added by this patch will make the transition of mc_list to list_head\nsmooth in two steps:\n\n1) convert all drivers to use these macros (with the original iterator of type\n   \"struct dev_mc_list\")\n2) once all drivers are converted, convert list type and iterators to \"struct\n   netdev_hw_addr\" in one patch.\n\n\u003eFrom now on, drivers can (and should) use \"netdev_for_each_mc_addr\" to iterate\nover the addresses with iterator of type \"struct netdev_hw_addr\". Also macros\n\"netdev_mc_count\" and \"netdev_mc_empty\" to read list\u0027s length. This is the state\nwhich should be reached in all drivers.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8a83a00b0735190384a348156837918271034144",
      "tree": "f69d903405e2424c196d8648bb6cb18443359373",
      "parents": [
        "6884b348ed759184032306c9435a727741a72298"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sat Jan 30 12:23:03 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 03 20:20:32 2010 -0800"
      },
      "message": "net: maintain namespace isolation between vlan and real device\n\nIn the vlan and macvlan drivers, the start_xmit function forwards\ndata to the dev_queue_xmit function for another device, which may\npotentially belong to a different namespace.\n\nTo make sure that classification stays within a single namespace,\nthis resets the potentially critical fields.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "32e7bfc41110bc8f29ec0f293c3bcee6645fef34",
      "tree": "b770a040aee7a6a196514cbf5328debb33321d4d",
      "parents": [
        "9010bc3364db56dd88a1851e0797e597e322ce08"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Mon Jan 25 13:36:10 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 25 13:36:10 2010 -0800"
      },
      "message": "net: use helpers to access uc list V2\n\nThis patch introduces three macros to work with uc list from net drivers.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a271623f871dda970319ca15dfad3a8c8c36249f",
      "tree": "169083259c6cf93b6017310e6b3b61b92b1dace6",
      "parents": [
        "da6b33306801af7ee6479c177051e70842974932"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jan 22 10:13:10 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jan 23 01:21:26 2010 -0800"
      },
      "message": "netdev: remove certain HAVE_ macros\n\nAfter netdev_ops compat code HAVE_* macros aren\u0027t needed, in fact\nthey _will_ result in compile breakage for out of tree drivers.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "11380a4b2d86fae9a6bce75c9373668cc323fe57",
      "tree": "ded9a419d836af9eb0cd0e40858aec1f0cc3b61a",
      "parents": [
        "6373464288cab09bc641be301d8d30fc9f64ba71"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 19 13:46:10 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 19 13:46:10 2010 -0800"
      },
      "message": "net: Unexport napi_gro_flush().\n\nNothing outside of net/core/dev.c uses it.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc4a7489663250360cd40d5adf06a08d1c5d54df",
      "tree": "ce8fed0a2dfc175b03834bb94717f5f2970c9146",
      "parents": [
        "012093f6d5d89e6ed6e89c55c383f84b1cff7a78"
      ],
      "author": {
        "name": "Patrick Mullaney",
        "email": "pmullaney@novell.com",
        "time": "Thu Dec 03 15:59:22 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 15:59:22 2009 -0800"
      },
      "message": "netdevice: provide common routine for macvlan and vlan operstate management\n\nProvide common routine for the transition of operational state for a leaf\ndevice during a root device transition.\n\nSigned-off-by: Patrick Mullaney \u003cpmullaney@novell.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dcbccbd4f1f6ad0f0e169d4b2e816e42bde06f82",
      "tree": "2a2accb2cedfea63ecaafbe1156fc44b4f2acff1",
      "parents": [
        "a5ee155136b4a8f4ab0e4c9c064b661da475e298"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Nov 29 22:25:26 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 16:15:50 2009 -0800"
      },
      "message": "net: Implement for_each_netdev_reverse.\n\nI will need this shortly to implement network namespace shutdown\nbatching.  For sanity sake network devices should be removed in\nthe reverse order they were created in.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "445409602c09219767c06497c0dc2285eac244ed",
      "tree": "5cfbd6d94f737107f3e6356fca2457ab3a66bb44",
      "parents": [
        "1bda8aa86b89d4c9b668000127ff87172f2daa10"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Nov 26 06:07:08 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 26 15:52:58 2009 -0800"
      },
      "message": "veth: move loopback logic to common location\n\nThe veth driver contains code to forward an skb\nfrom the start_xmit function of one network\ndevice into the receive path of another device.\n\nMoving that code into a common location lets us\nreuse the code for direct forwarding of data\nbetween macvlan ports, and possibly in other\ndrivers.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "e014debecd3ee3832e6476b3a9c948edfcfd1250"
}
