)]}'
{
  "log": [
    {
      "commit": "eed2a12f1ed9aabf0676f4d0db34aad51976c5c6",
      "tree": "a86d3ff7c6a9840131d38af3dfc907c255bfbd99",
      "parents": [
        "47a0200d535f08ac8f784a709c48995ca0b10288"
      ],
      "author": {
        "name": "Mahesh Bandewar",
        "email": "maheshb@google.com",
        "time": "Wed May 04 15:30:11 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 08 15:59:12 2011 -0700"
      },
      "message": "net: Allow ethtool to set interface in loopback mode.\n\nThis patch enables ethtool to set the loopback mode on a given interface.\nBy configuring the interface in loopback mode in conjunction with a policy\nroute / rule, a userland application can stress the egress / ingress path\nexposing the flows of the change in progress and potentially help developer(s)\nunderstand the impact of those changes without even sending a packet out\non the network.\n\nFollowing set of commands illustrates one such example -\n    a) ip -4 addr add 192.168.1.1/24 dev eth1\n    b) ip -4 rule add from all iif eth1 lookup 250\n    c) ip -4 route add local 0/0 dev lo proto kernel scope host table 250\n    d) arp -Ds 192.168.1.100 eth1\n    e) arp -Ds 192.168.1.200 eth1\n    f) sysctl -w net.ipv4.ip_nonlocal_bind\u003d1\n    g) sysctl -w net.ipv4.conf.all.accept_local\u003d1\n    # Assuming that the machine has 8 cores\n    h) taskset 000f netserver -L 192.168.1.200\n    i) taskset 00f0 netperf -t TCP_CRR -L 192.168.1.100 -H 192.168.1.200 -l 30\n\nSigned-off-by: Mahesh Bandewar \u003cmaheshb@google.com\u003e\nAcked-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0553c891fabd287726b41076cfd03fe7e5ab596f",
      "tree": "6b8b7074ff457e1533e8c397e09c03cd86ddc76e",
      "parents": [
        "70dda99c41fc8a153e09bdba9adb7805ba2a4bb3"
      ],
      "author": {
        "name": "Krishna Kumar",
        "email": "krkumar2@in.ibm.com",
        "time": "Thu Apr 14 06:07:04 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 17 23:27:16 2011 -0700"
      },
      "message": "ip6_pol_route panic: Do not allow VLAN on loopback\n\nSeveral tests in the ipv6 routing code check IFF_LOOPBACK, and\nallowing stacking such as VLAN\u0027ing on top of loopback results in a\nnetdevice which reports IFF_LOOPBACK but really isn\u0027t the loopback\ndevice.\n\nInstead of spamming the ipv6 routing code with even more special tests,\nsimply disallow VLAN over loopback.\n\nThe result of this patch is:\n\n# modprobe 8021q\n# vconfig add lo 43\nERROR: trying to add VLAN #43 to IF -:lo:-  error: Operation not supported\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf0bdefd4676ad4ad59507a058821491a40ec7e6",
      "tree": "f1a18c44a6b65ebd49a936afd4afe9c4ef7ab99f",
      "parents": [
        "e83d360d9a7e5d71d55c13e96b19109a2ea23bf0"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Feb 15 16:59:18 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 14:16:35 2011 -0800"
      },
      "message": "loopback: convert to hw_features\n\nThis also enables TSOv6, TSO-ECN, and UFO as loopback clearly can handle them.\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "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": "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": "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": "5eaa0bd81f93225b6d1972b373ed00ca763052b2",
      "tree": "44b8ddc198dfe097de65b5a13ffb9c9a65499fa1",
      "parents": [
        "4b4194c40f4ac8d03a700845f8978cba53246b5a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 22 12:44:11 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 25 21:33:16 2010 -0700"
      },
      "message": "loopback: use u64_stats_sync infrastructure\n\nCommit 6b10de38f0ef (loopback: Implement 64bit stats on 32bit arches)\nintroduced 64bit stats in loopback driver, using a private seqcount and\nprivate helpers.\n\nDavid suggested to introduce a generic infrastructure, added in (net:\nIntroduce u64_stats_sync infrastructure)\n\nThis patch reimplements loopback 64bit stats using the u64_stats_sync\ninfrastructure.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6b10de38f0ef4e921a1f6e5cba2b6c92d6b46ecd",
      "tree": "76e914c5097cb80cf65bf9ce1e48acff8e46795c",
      "parents": [
        "c68f24cc354050415c5ea543cd19ea5424463a2f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Jun 14 05:59:22 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 14 23:13:07 2010 -0700"
      },
      "message": "loopback: Implement 64bit stats on 32bit arches\n\nUses a seqcount_t to synchronize stat producer and consumer, for packets\nand bytes counter, now u64 types.\n\n(dropped counter being rarely used, stay a native \"unsigned long\" type)\n\nNo noticeable performance impact on x86, as it only adds two increments\nper frame. It might be more expensive on arches where smp_wmb() is not\nfree.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "47d742752df4c1088589d4424840bc761613ab2a",
      "tree": "186eec2c69a1f7149e08d354c36a34c21b58fa4f",
      "parents": [
        "7d720c3e4f0c4fc152a6bf17e24244a3c85412d2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 16 15:21:08 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 16 23:05:38 2010 -0800"
      },
      "message": "percpu: add __percpu sparse annotations to net drivers\n\nAdd __percpu sparse annotations to net drivers.\n\nThese annotations are to make sparse consider percpu variables to be\nin a different address space and warn if accessed without going\nthrough percpu accessors.  This patch doesn\u0027t affect normal builds.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d0316554d3586cbea60592a41391b5def2553d6f",
      "tree": "5e7418f0bacbc68cec5dfd1541e03eb56870aa02",
      "parents": [
        "fb0bbb92d42d5bd0ab224605444efdfed06d6934",
        "51e99be00ce2713cbb841cedc997cafa6e26c7f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (34 commits)\n  m68k: rename global variable vmalloc_end to m68k_vmalloc_end\n  percpu: add missing per_cpu_ptr_to_phys() definition for UP\n  percpu: Fix kdump failure if booted with percpu_alloc\u003dpage\n  percpu: make misc percpu symbols unique\n  percpu: make percpu symbols in ia64 unique\n  percpu: make percpu symbols in powerpc unique\n  percpu: make percpu symbols in x86 unique\n  percpu: make percpu symbols in xen unique\n  percpu: make percpu symbols in cpufreq unique\n  percpu: make percpu symbols in oprofile unique\n  percpu: make percpu symbols in tracer unique\n  percpu: make percpu symbols under kernel/ and mm/ unique\n  percpu: remove some sparse warnings\n  percpu: make alloc_percpu() handle array types\n  vmalloc: fix use of non-existent percpu variable in put_cpu_var()\n  this_cpu: Use this_cpu_xx in trace_functions_graph.c\n  this_cpu: Use this_cpu_xx for ftrace\n  this_cpu: Use this_cpu_xx in nmi handling\n  this_cpu: Use this_cpu operations in RCU\n  this_cpu: Use this_cpu ops for VM statistics\n  ...\n\nFix up trivial (famous last words) global per-cpu naming conflicts in\n\tarch/x86/kvm/svm.c\n\tmm/slab.c\n"
    },
    {
      "commit": "999b6d39abb4fc446f3465ca4e0a7ac747f49aec",
      "tree": "9b1daca5ff657cd7f3c2f4fd6874e3618a808d87",
      "parents": [
        "f875bae065334907796da12523f9df85c89f5712"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Nov 29 22:25:29 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 16:15:52 2009 -0800"
      },
      "message": "net: Simplify loopback and improve batching.\n\nDefer calling unregister_netdevice_queue to cleanup_net.  It\u0027s simpler\nand it allows the loopback device to land in the same batch as other\nnetwork devices.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "09ad9bc752519cc167d0a573e1acf69b5c707c67",
      "tree": "0e190a9ffb90d7e0534136c3e9f31dce02f423c3",
      "parents": [
        "4ba3eb034fb6fd1990ccc5a6d71d5abcda37b905"
      ],
      "author": {
        "name": "Octavian Purdila",
        "email": "opurdila@ixiacom.com",
        "time": "Wed Nov 25 15:14:13 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 25 15:14:13 2009 -0800"
      },
      "message": "net: use net_eq to compare nets\n\nGenerated with the following semantic patch\n\n@@\nstruct net *n1;\nstruct net *n2;\n@@\n- n1 \u003d\u003d n2\n+ net_eq(n1, n2)\n\n@@\nstruct net *n1;\nstruct net *n2;\n@@\n- n1 !\u003d n2\n+ !net_eq(n1, n2)\n\napplied over {include,net,drivers/net}.\n\nSigned-off-by: Octavian Purdila \u003copurdila@ixiacom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ca0c9584b1f16bd5911893647cb7f1be82e60554",
      "tree": "7dd9453ec36f56b50ce519ce964af9f35b80f381",
      "parents": [
        "4ea7334b6de818b0123fa4be32af4cb8ac65174c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Sat Oct 03 19:48:22 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Oct 03 19:48:22 2009 +0900"
      },
      "message": "this_cpu: Straight transformations\n\nUse this_cpu_ptr and __this_cpu_ptr in locations where straight\ntransformations are possible because per_cpu_ptr is used with\neither smp_processor_id() or raw_smp_processor_id().\n\ncc: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\ncc: Ingo Molnar \u003cmingo@elte.hu\u003e\ncc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\ncc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "61357325f377889a1daffa14962d705dc814dd0e",
      "tree": "7b436f1097abbc5681de6d1e5901f62963b42220",
      "parents": [
        "d0cf9c0dadcdc89a755bcb301cfc9c796eb28ccf"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Aug 31 19:50:58 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 01 01:14:07 2009 -0700"
      },
      "message": "netdev: convert bulk of drivers to netdev_tx_t\n\nIn a couple of cases collapse some extra code like:\n   int retval \u003d NETDEV_TX_OK;\n   ...\n   return retval;\ninto\n   return NETDEV_TX_OK;\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ed106549d17474ca17a16057f4c0ed4eba5a7ca",
      "tree": "b98c09081509b3a9757339b6b66779e4126dfa29",
      "parents": [
        "0e8635a8e1f2d4a9e1bfc6c3b21419a5921e674f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jun 23 06:03:08 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 05 19:16:04 2009 -0700"
      },
      "message": "net: use NETDEV_TX_OK instead of 0 in ndo_start_xmit() functions\n\nThis patch is the result of an automatic spatch transformation to convert\nall ndo_start_xmit() return values of 0 to NETDEV_TX_OK.\n\nSome occurences are missed by the automatic conversion, those will be\nhandled in a seperate patch.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "93f154b594fe47e4a7e5358b309add449a046cd3",
      "tree": "479d9f2db25922a2312547c97e73d5a11b68bb1c",
      "parents": [
        "496a60cdcd5d0d884dddf6c3b4ea912923a70f13"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Mon May 18 22:19:19 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 18 22:19:19 2009 -0700"
      },
      "message": "net: release dst entry in dev_hard_start_xmit()\n\nOne point of contention in high network loads is the dst_release() performed\nwhen a transmited skb is freed. This is because NIC tx completion calls\ndev_kree_skb() long after original call to dev_queue_xmit(skb).\n\nCPU cache is cold and the atomic op in dst_release() stalls. On SMP, this is\nquite visible if one CPU is 100% handling softirqs for a network device,\nsince dst_clone() is done by other cpus, involving cache line ping pongs.\n\nIt seems right place to release dst is in dev_hard_start_xmit(), for most\ndevices but ones that are virtual, and some exceptions.\n\nDavid Miller suggested to define a new device flag, set in alloc_netdev_mq()\n(so that most devices set it at init time), and carefuly unset in devices\nwhich dont want a NULL skb-\u003edst in their ndo_start_xmit().\n\nList of devices that must clear this flag is :\n\n- loopback device, because it calls netif_rx() and quoting Patrick :\n    \"ip_route_input() doesn\u0027t accept loopback addresses, so loopback packets\n     already need to have a dst_entry attached.\"\n- appletalk/ipddp.c : needs skb-\u003edst in its xmit function\n\n- And all devices that call again dev_queue_xmit() from their xmit function\n(as some classifiers need skb-\u003edst) : bonding, vlan, macvlan, eql, ifb, hdlc_fr\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7eebb0b28f755e297d355a205bb04945b256db6b",
      "tree": "ae09d5928a764f5cb58eb217ec0d910e5d332474",
      "parents": [
        "eb62efd287fe6e12d18083287e38e4a811c28256"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Apr 17 22:03:10 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 20 02:25:26 2009 -0700"
      },
      "message": "loopback: packet drops accounting\n\nWe can in some situations drop packets in netif_rx()\n\nloopback driver does not report these (unlikely) drops to its stats,\nand incorrectly change packets/bytes counts.\n\nAfter this patch applied, \"ifconfig lo\" can reports these drops as in :\n\n# ifconfig lo\nlo        Link encap:Local Loopback\n          inet addr:127.0.0.1  Mask:255.0.0.0\n          UP LOOPBACK RUNNING  MTU:16436  Metric:1\n          RX packets:692562900 errors:3228 dropped:3228 overruns:0 frame:0\n          TX packets:692562900 errors:0 dropped:0 overruns:0 carrier:0\n          collisions:0 txqueuelen:0\n          RX bytes:2865674174 (2.6 GiB)  TX bytes:2865674174 (2.6 GiB)\n\nI initialy chose to reflect those errors only in tx_dropped/tx_errors, but David\nconvinced me that it was really RX errors, as loopback_xmit() really starts\na RX process. (calling eth_type_trans() for example, that itself pulls the ethernet header)\n\nThese errors are accounted in rx_dropped/rx_errors.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "008298231abbeb91bc7be9e8b078607b816d1a4a",
      "tree": "8cb0c17720086ef97c614b96241f06aa63ce8511",
      "parents": [
        "6ab33d51713d6d60c7677c0d020910a8cb37e513"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Nov 20 20:14:53 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 20:14:53 2008 -0800"
      },
      "message": "netdev: add more functions to netdevice ops\n\nThis patch moves neigh_setup and hard_start_xmit into the network device ops\nstructure. For bisection, fix all the previously converted drivers as well.\nBonding driver took the biggest hit on this.\n\nAdded a prefetch of the hard_start_xmit in the fast path to try and reduce\nany impact this would have.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c02373bf2759dd210dc8c72c9c9b4a8f1c279cac",
      "tree": "7cf270d2d9fc6d31320b56ddee9b05d2abf1b727",
      "parents": [
        "ccad637b0c57de1825ffd34c311bf71487545ac2"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Nov 19 21:46:18 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 19 22:42:37 2008 -0800"
      },
      "message": "netdev: convert loopback to net_device_ops\n\nFirst device to convert over is the loopback device.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "505d4f73dda9e20d59da05008f1f5eb432613e71",
      "tree": "a30032d6474ce1d8dea1853c1907f4c3bdd8a19c",
      "parents": [
        "5d6d480908300a0c0b3be8b58567dfcef62c83a5"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@maxwell.aristanetworks.com",
        "time": "Fri Nov 07 22:54:20 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 07 22:54:20 2008 -0800"
      },
      "message": "net: Guaranetee the proper ordering of the loopback device. v2\n\nI was recently hunting a bug that occurred in network namespace\ncleanup.  In looking at the code it became apparrent that we have\nand will continue to have cases where if we have anything going\non in a network namespace there will be assumptions that the\nloopback device is present.   Things like sending igmp unsubscribe\nmessages when we bring down network devices invokes the routing\ncode which assumes that at least the loopback driver is present.\n\nTherefore to avoid magic initcall ordering hackery that is hard\nto follow and hard to get right insert a call to register the\nloopback device directly from net_dev_init().    This guarantes\nthat the loopback device is the first device registered and\nthe last network device to go away.\n\nBut do it carefully so we register the loopback device after\nwe clear dev_boot_phase.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@maxwell.aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3d8160b1493bcadca74fbb635d79b3928b8999cf",
      "tree": "901a01cd2170f4eddaba38e05b17683acb9cc0de",
      "parents": [
        "167c6274c30d17c41742096d1a12c32bd3b7e366"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 07 22:52:14 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 07 22:52:14 2008 -0800"
      },
      "message": "Revert \"net: Guaranetee the proper ordering of the loopback device.\"\n\nThis reverts commit ae33bc40c0d96d02f51a996482ea7e41c5152695.\n"
    },
    {
      "commit": "ae33bc40c0d96d02f51a996482ea7e41c5152695",
      "tree": "ab250ee1d4eac70ac77a4f40ed303373c41d9213",
      "parents": [
        "d0c082cea6dfb9b674b4f6e1e84025662dbd24e8"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 05 16:00:02 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 05 16:00:02 2008 -0800"
      },
      "message": "net: Guaranetee the proper ordering of the loopback device.\n\nI was recently hunting a bug that occurred in network namespace\ncleanup.  In looking at the code it became apparrent that we have\nand will continue to have cases where if we have anything going\non in a network namespace there will be assumptions that the\nloopback device is present.   Things like sending igmp unsubscribe\nmessages when we bring down network devices invokes the routing\ncode which assumes that at least the loopback driver is present.\n\nTherefore to avoid magic initcall ordering hackery that is hard\nto follow and hard to get right insert a call to register the\nloopback device directly from net_dev_init().    This guarantes\nthat the loopback device is the first device registered and\nthe last network device to go away.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "babcda74e9d96bb58fd9c6c5112dbdbff169e695",
      "tree": "fcbe5e70f1fff01ad49504171e964c387a5ad7f8",
      "parents": [
        "ab2910921064b657610a3b501358a305e13087ea"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 03 21:11:17 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 03 21:11:17 2008 -0800"
      },
      "message": "drivers/net: Kill now superfluous -\u003elast_rx stores.\n\nThe generic packet receive code takes care of setting\nnetdev-\u003elast_rx when necessary, for the sake of the\nbonding ARP monitor.\n\nDrivers need not do it any more.\n\nSome cases had to be skipped over because the drivers\nwere making use of the -\u003elast_rx value themselves.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3a8af722495469e9c550386b910c5b93c91cf107",
      "tree": "2378ed49af8922dd9b0fee6b94cf8f55644c5b49",
      "parents": [
        "e5e7ad44d05d3f8227a10a17761505fce2c08e38"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 31 00:00:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 31 00:00:33 2008 -0700"
      },
      "message": "net: Really remove all of LOOPBACK_TSO code.\n\nAs noticed by Saikiran Madugula, commit 7447ef63cf2dfdc444f4c72ae13f604350b2e25f\n(\"loopback: Remove rest of LOOPBACK_TSO code.\") got rid of\nemulate_large_send_offload() but didn\u0027t get rid of the call\nsite as well.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "04a0551c87363f100b04d28d7a15a632b70e18e7",
      "tree": "0e99521316fab64754104677c6fa6b6a63b3f922",
      "parents": [
        "6f85a124d819e1cf33b16d064a6a656fd448a735"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Aug 15 14:56:37 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 15 19:52:01 2008 -0700"
      },
      "message": "loopback: Drop obsolete ip_summed setting\n\nNow that the network stack can handle inbound packets with partial\nchecksums, we should no longer clobber the ip_summed field in the\nloopback driver.  This is because CHECKSUM_UNNECESSARY implies that\nthe checksum field is actually valid which is not true for loopback\npackets since it\u0027s only partial (and thus complemented).\n\nThis allows packets from lo to then be SNATed to an external source\nwhile still preserving the checksum\u0027s validity.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7447ef63cf2dfdc444f4c72ae13f604350b2e25f",
      "tree": "f329b96bbfb41f6e246d248ae7fca3beead7acc5",
      "parents": [
        "f22f8567cb0a530d8958d177e0f268783bd0d894"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 15 14:54:03 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 15 19:51:26 2008 -0700"
      },
      "message": "loopback: Remove rest of LOOPBACK_TSO code.\n\nIt hasn\u0027t been enabled for a long time and the generic GSO\nengine is better documentation of what is expected of a\ndevice implementing TSO.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f22f8567cb0a530d8958d177e0f268783bd0d894",
      "tree": "45232b989e5e645ef9f1c2483a2e8db60873e4b8",
      "parents": [
        "e4119a43187139736750bad5d694c6a839df045d"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Aug 15 14:52:08 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 15 19:51:25 2008 -0700"
      },
      "message": "loopback: Enable TSO\n\nThis patch enables TSO since the loopback device is naturally\ncapable of handling packets of any size.  This also means that\nwe won\u0027t enable GSO on lo which is good until GSO is fixed to\npreserve netfilter state as netfilter treats loopback packets\nin a special way.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e3c50d5d25ac09efd9acbe2b2a3e365466de84ed",
      "tree": "dc5bc3322f9e4829c2143fc4fc60532fd84ab9a1",
      "parents": [
        "6b0fb1261a4655613bed5dac0e935e733969e999"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 02:58:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:09 2008 -0700"
      },
      "message": "netdev: netdev_priv() can now be sane again.\n\nThe private area of a netdev is now at a fixed offset once more.\n\nUnfortunately, some assumptions that netdev_priv() \u003d\u003d netdev-\u003epriv\ncrept back into the tree.  In particular this happened in the\nloopback driver.  Make it use netdev-\u003eml_priv.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c346dca10840a874240c78efe3f39acf4312a1f2",
      "tree": "c04cff20124eba5cc337cc5ec260ad2513eeb065",
      "parents": [
        "7cbca67c073263c179f605bdbbdc565ab29d801d"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Tue Mar 25 21:47:49 2008 +0900"
      },
      "committer": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 26 04:39:53 2008 +0900"
      },
      "message": "[NET] NETNS: Omit net_device-\u003end_net without CONFIG_NET_NS.\n\nIntroduce per-net_device inlines: dev_net(), dev_net_set().\nWithout CONFIG_NET_NS, no namespace other than \u0026init_net exists.\nLet\u0027s explicitly define them to help compiler optimizations.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    },
    {
      "commit": "6a7657f56271bded0ddca1cb1e8772506a10c0a3",
      "tree": "81ee7414dbbf1bc9856b408c9bc49da4b5c5d32b",
      "parents": [
        "81103a52f26d8630aa0c1dcddccaebb04d7922a8"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Dec 12 11:00:04 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:25 2008 -0800"
      },
      "message": "[NET]: Remove unused define from loopback driver.\n\nThe LOOPBACK_OVERHEAD is not used in this file at all.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2d2c54e3d058a9be78c04f429fa5e090eb454daa",
      "tree": "d7c6269dc32c06d47608d3269bf352a462e69e99",
      "parents": [
        "9ca20ebc263260acfea35a1a4910203b7ce6bd5a"
      ],
      "author": {
        "name": "Emil Medve",
        "email": "Emilian.Medve@freescale.com",
        "time": "Thu Dec 27 08:17:22 2007 -0600"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jan 12 17:41:04 2008 -0500"
      },
      "message": "Fixed a small typo in the loopback driver\n\nThis is probably a result of the changes from commit\n854d836 - [NET]: Dynamically allocate the loopback device, part 2\n\nSigned-off-by: Emil Medve \u003cEmilian.Medve@Freescale.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "022cbae611a37eda80d498f8f379794c8ac3be47",
      "tree": "c6fe8fe45748127c916d32ec97601c435065d5cb",
      "parents": [
        "ed160e839d2e1118529e58b04d52dba703ca629c"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Nov 13 03:23:50 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 13 03:23:50 2007 -0800"
      },
      "message": "[NET]: Move unneeded data to initdata section.\n\nThis patch reverts Eric\u0027s commit 2b008b0a8e96b726c603c5e1a5a7a509b5f61e35\n\nIt diets .text \u0026 .data section of the kernel if CONFIG_NET_NS is not set.\nThis is safe after list operations cleanup.\n\nSigned-of-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2b008b0a8e96b726c603c5e1a5a7a509b5f61e35",
      "tree": "80d71a763d3e8365805203cf22093783e64e1bbc",
      "parents": [
        "72998d8c84247817c4b8b05b0256f29453e435f5"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Oct 26 22:54:53 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 26 22:54:53 2007 -0700"
      },
      "message": "[NET]: Marking struct pernet_operations __net_initdata was inappropriate\n\nIt is not safe to to place struct pernet_operations in a special section.\nWe need struct pernet_operations to last until we call unregister_pernet_subsys.\nWhich doesn\u0027t happen until module unload.\n\nSo marking struct pernet_operations is a disaster for modules in two ways.\n- We discard it before we call the exit method it points to.\n- Because I keep struct pernet_operations on a linked list discarding\n  it for compiled in code removes elements in the middle of a linked\n  list and does horrible things for linked insert.\n\nSo this looks safe assuming __exit_refok is not discarded\nfor modules.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d6dda32c7570bbf189cf74fbc36338d0a94e999",
      "tree": "eac71d1bf5f7c07ebf4360fd9cd48d79cab402fd",
      "parents": [
        "4ae289444b968b4cefd776ada8da519ce10e56fa"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Oct 15 12:55:33 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 15 12:55:33 2007 -0700"
      },
      "message": "[NETNS]: Don\u0027t panic on creating the namespace\u0027s loopback\n\nWhen the loopback device is failed to initialize inside the new \nnamespaces, panic() is called. Do not do it when the namespace \nin question is not the init_net.\n\nPlus cleanup the error path a bit.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4665079cbb2a3e17de82f2ab2940b9f97f37d65e",
      "tree": "8e51e9b9e6155eaeccf28783620a07b20a067d8d",
      "parents": [
        "d62a38d1ab350f787e4941e42a3d3e97971e38f5"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Oct 08 20:38:39 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:58 2007 -0700"
      },
      "message": "[NETNS]: Move some code into __init section when CONFIG_NET_NS\u003dn\n\nWith the net namespaces many code leaved the __init section,\nthus making the kernel occupy more memory than it did before.\nSince we have a config option that prohibits the namespace\ncreation, the functions that initialize/finalize some netns\nstuff are simply not needed and can be freed after the boot.\n\nCurrently, this is almost not noticeable, since few calls\nare no longer in __init, but when the namespaces will be\nmerged it will be possible to free more code. I propose to\nuse the __net_init, __net_exit and __net_initdata \"attributes\"\nfor functions/variables that are not used if the CONFIG_NET_NS\nis not set to save more space in memory.\n\nThe exiting functions cannot just reside in the __exit section,\nas noticed by David, since the init section will have\nreferences on it and the compilation will fail due to modpost\nchecks. These references can exist, since the init namespace\nnever dies and the exit callbacks are never called. So I\nintroduce the __exit_refok attribute just like it is already\ndone with the __init_refok.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9e0db4b12c7deda532ad13d37a84ee41dd691066",
      "tree": "6701d28ea9e22be4a2b9ff2904f9d7a4a3d1fe52",
      "parents": [
        "fe242cfd3390b1c7d54d60f7ebb6a4054804cd41"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Sep 27 17:09:39 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:53:29 2007 -0700"
      },
      "message": "[NET]: Bring comments in loopback.c uptodate.\n\nA hint as to why it is safe to use per cpu variables,\nand note that we actually can have multiple instances\nof the loopback device now.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "070ac3a2651e3c1c4d277c5f1981517427c386a7",
      "tree": "364fa74ca42b34e61d3d219e79212083f1f59702",
      "parents": [
        "f4618d39a34dab316090263b42cd8799f31ce277"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Sep 27 12:04:19 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:56 2007 -0700"
      },
      "message": "[NET]: Proper comment for loopback initialization order.\n\nLoopback device is special. It should be initialized at the very\nbeginning.  Initialization order has been changed by\nEric W. Biederman \u003cebiederm@xmission.com\u003e and this change is non-obvious\nand important enough to add proper comment.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3b04ddde02cf1b6f14f2697da5c20eca5715017f",
      "tree": "9da1341a5a399a507b5ea6bf5a3047506b8d8f8f",
      "parents": [
        "b95cce3576813ac3f86bafa6b5daaaaf7574b0fe"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Tue Oct 09 01:40:57 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:52 2007 -0700"
      },
      "message": "[NET]: Move hardware header operations out of netdevice.\n\nSince hardware header operations are part of the protocol class\nnot the device instance, make them into a separate object and\nsave memory.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4c94f8c0c9a82fad84bc5df453aff755cfed70b7",
      "tree": "558fdec7718f5b254408f5cf4772477e0efa0447",
      "parents": [
        "2774c7aba6c97a2535be3309a2209770953780b3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Sep 26 22:11:56 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:49 2007 -0700"
      },
      "message": "[NET]: Remove no longer relevant comment in loopback driver.\n\nIt talks about __get_cpu_var() which the driver no longer\ndoes.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2774c7aba6c97a2535be3309a2209770953780b3",
      "tree": "9327c795707f6d723c6395c31e1c060e70b5e0db",
      "parents": [
        "0cc217e16cb8ca8ef2544363571fce94259900e0"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Sep 26 22:10:56 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:49 2007 -0700"
      },
      "message": "[NET]: Make the loopback device per network namespace.\n\nThis patch makes loopback_dev per network namespace.  Adding\ncode to create a different loopback device for each network\nnamespace and adding the code to free a loopback device\nwhen a network namespace exits.\n\nThis patch modifies all users the loopback_dev so they\naccess it as init_net.loopback_dev, keeping all of the\ncode compiling and working.  A later pass will be needed to\nupdate the users to use something other than the initial network\nnamespace.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5f6d88b9149d537f3db0798f7d312be632422e15",
      "tree": "8e85e14c152a5b6c7f61ef2176cb6ed53854e280",
      "parents": [
        "9dd776b6d7b0b85966b6ddd03e2b2aae59012ab1"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Sep 26 22:08:12 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:47 2007 -0700"
      },
      "message": "[NET]: Dynamically allocate the per cpu counters for the loopback device.\n\nThis patch add support for dynamically allocating the statistics counters\nfor the loopback device and adds appropriate device methods for allocating\nand freeing the loopback device.\n\nThis completes support for creating multiple instances of the loopback\ndevice,  in preparation for creating per network namespace instances.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "854d8363f37491c955b0edc60d37b62f3d71bb67",
      "tree": "fd8f1a2de2c60ca8abcac0b8117cdc5e293c2ac4",
      "parents": [
        "de3cb747ffac5f2a4a6bb156e7e2fd5229e688e5"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "dlezcano@fr.ibm.com",
        "time": "Tue Sep 25 19:18:04 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:15 2007 -0700"
      },
      "message": "[NET]: Dynamically allocate the loopback device, part 2.\n\nDoing this makes loopback.c a better example of how to do a\nsimple network device, and it removes the special case\nsingle static allocation of a struct net_device, hopefully\nmaking maintenance easier.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nAcked-By: Kirill Korotaev \u003cdev@sw.ru\u003e\nAcked-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\n"
    },
    {
      "commit": "de3cb747ffac5f2a4a6bb156e7e2fd5229e688e5",
      "tree": "fe79764b8093843934c9b9f82f573e7a92cef406",
      "parents": [
        "556829657397b9b05baec6691ead4e22ee8d1567"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "dlezcano@fr.ibm.com",
        "time": "Tue Sep 25 19:16:28 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:14 2007 -0700"
      },
      "message": "[NET]: Dynamically allocate the loopback device, part 1.\n\nThis patch replaces all occurences to the static variable\nloopback_dev to a pointer loopback_dev. That provides the\nmindless, trivial, uninteressting change part for the dynamic\nallocation for the loopback.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nAcked-By: Kirill Korotaev \u003cdev@sw.ru\u003e\nAcked-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "88d3aafdae5c5e1d2dd9489a5c8a24e29d335f2e",
      "tree": "272ce75c30a170420ac8bbfd679c3faed9f9d20a",
      "parents": [
        "09f75cd7bf13720738e6a196cc0107ce9a5bd5a0"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Sep 15 14:41:06 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:51:17 2007 -0700"
      },
      "message": "[ETHTOOL] Provide default behaviors for a few ethtool sub-ioctls\n\nFor the operations\n\tget-tx-csum\n\tget-sg\n\tget-tso\n\tget-ufo\nthe default ethtool_op_xxx behavior is fine for all drivers, so we\npermit op\u003d\u003dNULL to imply the default behavior.\n\nThis provides a more uniform behavior across all drivers, eliminating\nethtool(8) \"ioctl not supported\" errors on older drivers that had\nnot been updated for the latest sub-ioctls.\n\nThe ethtool_op_xxx() functions are left exported, in case anyone\nwishes to call them directly from a driver-private implementation --\na not-uncommon case.  Should an ethtool_op_xxx() helper remain unused\nfor a while, except by net/core/ethtool.c, we can un-export it at a\nlater date.\n\n[ Resolved conflicts with set/get value ethtool patch... -DaveM ]\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "abf07acbb9f122218095d0d221e0f949160ccc37",
      "tree": "eca70bc6a9c97fef39500bad0bca67efdf78402f",
      "parents": [
        "36ac3135f5e824942fada4efa3204066b4b40ab1"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "dlezcano@fr.ibm.com",
        "time": "Wed Sep 12 14:54:14 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:17 2007 -0700"
      },
      "message": "[NETNS]: Fix loopback network namespace initialization.\n\nThe core patchset of the network namespace sent by\nEric Biederman does not do dynamic loopback creation.\nSo there is no call to alloc_netdev_mq which fills the\nnetwork namespace field of the netdevice.\n\nThis patch assign the loopback to the init network namespace.\n\nSigned-off-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ce286d327341295f58d89864d746a524287cfdf9",
      "tree": "ee7241e7504333cc4cf647ede551248268f865c4",
      "parents": [
        "b267b179648e46ea8e2a44f7314a23eb6aee1d6c"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Sep 12 13:53:49 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:12 2007 -0700"
      },
      "message": "[NET]: Implement network device movement between namespaces\n\nThis patch introduces NETIF_F_NETNS_LOCAL a flag to indicate\na network device is local to a single network namespace and\nshould never be moved.  Useful for pseudo devices that we\nneed an instance in each network namespace (like the loopback\ndevice) and for any device we find that cannot handle multiple\nnetwork namespaces so we may trap them in the initial network\nnamespace.\n\nThis patch introduces the function dev_change_net_namespace\na function used to move a network device from one network\nnamespace to another.  To the network device nothing\nspecial appears to happen, to the components of the network\nstack it appears as if the network device was unregistered\nin the network namespace it is in, and a new device\nwas registered in the network namespace the device\nwas moved to.\n\nThis patch sets up a namespace device destructor that\nupon the exit of a network namespace moves all of the\nmovable network devices  to the initial network namespace\nso they are not lost.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aeed9e82cd258b9699eaa6568efefba9cc6d5f01",
      "tree": "0a3cd08162e6c7b11a7fde452877571b48559620",
      "parents": [
        "7f988eab57bd22884bbc452fb04c6c18738666b3"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jul 30 16:37:19 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 31 02:28:14 2007 -0700"
      },
      "message": "[NET] loopback: Panic if registration fails\n\nBecause IPv4 and IPv6 both depend on the presence of the loopback\ndevice to function, failure in registration the loopback device should\nbe fatal.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "33036807b32d5ed1f4fdfe2d5e6bab2bb260b9f7",
      "tree": "5f33e13e08849f94ef5d0529777fff73a72aea44",
      "parents": [
        "87a596e0b8bc344bd6bfebe83b56d11fb79ee23a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Apr 10 13:25:40 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:52 2007 -0700"
      },
      "message": "[NET]: loopback driver can use loopback_dev integrated net_device_stats\n\nRusty added a new \u0027stats\u0027 field to struct net_device.\n\nloopback driver can use it instead of declaring another struct\nnet_device_stats This saves some memory.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27d7ff46a3498d3debc6ba68fb8014c702b81170",
      "tree": "b5a0c617cf8339524d3b1f1633e08eae7b94cf86",
      "parents": [
        "3dbad80ac7632f243b824d469301abb97ec634a1"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Sat Mar 31 11:55:19 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:29 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_copy_to_linear_data{_offset}\n\nTo clearly state the intent of copying to linear sk_buffs, _offset being a\noverly long variant but interesting for the sake of saving some bytes.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\n"
    },
    {
      "commit": "eddc9ec53be2ecdbf4efe0efd4a83052594f0ac0",
      "tree": "4a38ab4dbd9d61fdf5a5ea6ed61463e0b9e33ba7",
      "parents": [
        "e023dd643798c4f06c16466af90b4d250e4b8bd7"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Apr 20 22:47:35 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:10 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce ip_hdr(), remove skb-\u003enh.iph\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d56f90a7c96da5187f0cdf07ee7434fe6aa78bbc",
      "tree": "3b9073cecfbb3b6a1e25ab2b5dd2a22a43aef238",
      "parents": [
        "bbe735e4247dba32568a305553b010081c8dea99"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 10 20:50:43 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:59 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_network_header()\n\nFor the places where we need a pointer to the network header, it is still legal\nto touch skb-\u003enh.raw directly if just adding to, subtracting from or setting it\nto another layer header.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1d2bbe1cd6c7bbdc6d532cefebb66c7efb789ce",
      "tree": "03a715961ba576a11cbc0e91c5d465e4c4d95d82",
      "parents": [
        "57effc70a5be9f7804e9a99964eb7265367effca"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 10 20:45:18 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:46 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_reset_network_header(skb)\n\nFor the common, open coded \u0027skb-\u003enh.raw \u003d skb-\u003edata\u0027 operation, so that we can\nlater turn skb-\u003enh.raw into a offset, reducing the size of struct sk_buff in\n64bit land while possibly keeping it as a pointer on 32bit.\n\nThis one touches just the most simple case, next will handle the slightly more\n\"complex\" cases.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "48d49d0ccdaa9caff4636ef9c3410973d28131b5",
      "tree": "3bdf0729bf05e817d1bb9c3299906682414f8a76",
      "parents": [
        "f64955eb117ad62480b858fd69a11e6f9e74f60b"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 12:30:58 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:37 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_set_mac_header()\n\nFor the cases where we want to set skb-\u003emac.raw to an offset from skb-\u003edata.\n\nSimple cases first, the memmove ones and specially pktgen will be left for later.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4c13eb6657fe9ef7b4dc8f1a405c902e9e5234e0",
      "tree": "d338fad7a61824d8c14c079c0be437ea4ad83f01",
      "parents": [
        "029720f15dcd3c6c16824177cfc486083b229411"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 17:40:23 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:30 2007 -0700"
      },
      "message": "[ETH]: Make eth_type_trans set skb-\u003edev like the other *_type_trans\n\nOne less thing for drivers writers to worry about.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "60903f2c6616939afd0335b49697beeb7219657e",
      "tree": "99825b33f85dbb00f649f9c6e863861a8368ef0e",
      "parents": [
        "ee74baa7d83e9e0c2fdaff8122ee9cefd06cddc5"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Jan 02 00:35:48 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Jan 03 18:38:10 2007 -0800"
      },
      "message": "[NET] drivers/net/loopback.c: convert to module_init()\n\nThis patch converts drivers/net/loopback.c to using module_init().\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "58f539740b1ccfc5ef4e509ec2efe82621b546e3",
      "tree": "f0e24b555808ce919528a0c5950e188768e97f23",
      "parents": [
        "78d79423179c0efc7ec34b55d287e7be4ca07da6"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Oct 20 00:32:41 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 20 00:32:41 2006 -0700"
      },
      "message": "[NET]: Can use __get_cpu_var() instead of per_cpu() in loopback driver.\n\nAs BHs are off in loopback_xmit(), preemption cannot occurs, so we can\nuse __get_cpu_var() instead of per_cpu() (and avoid a\npreempt_enable()/preempt_disable() pair)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5175c3786c244f8b689854db24c9e79b1c6a084f",
      "tree": "459975fe6a7b6dd5294b362397b185959b4ab96d",
      "parents": [
        "9ce8ade015a3f82dbdf856df7a685878dd1cc0e1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Oct 18 20:51:57 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 18 20:51:57 2006 -0700"
      },
      "message": "[NET]: reduce per cpu ram used for loopback stats\n\nWe dont need a full struct net_device_stats (currently 23 long : 184 bytes on \nx86_64) per possible CPU, but only two counters : bytes and packets\n\nWe save few CPU cycles too in loopback_xmit() not updating 4 fields, but 2. \n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7fa6b06689085a3e2237cf810f5e0c114e00a2da",
      "tree": "729eeef31a9ad44c0635f5e27b6c924767e17238",
      "parents": [
        "1b0fee7d68f234be6b270cda51d9fcb71bebd780"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Wed Sep 27 20:33:34 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 28 18:02:49 2006 -0700"
      },
      "message": "[NET] loopback: minor statistics optimization\n\nThe loopback device status structure is a singleton and doesn\u0027t\nneed to be allocated. Add ethtool_ops hooks to show checksum always on,\nand make ethtool_ops const.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7282d491ecaee9883233a0e27283c4c79486279a",
      "tree": "172ffa70716f5493db57976ceef7652120b3332f",
      "parents": [
        "76fd85937097a0c2ec8ab23bf21dc10992d1c398"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 13 14:30:00 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 13 14:30:00 2006 -0400"
      },
      "message": "drivers/net: const-ify ethtool_ops declarations\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6aa20a2235535605db6d6d2bd850298b2fe7f31e",
      "tree": "df0b855043407b831d57f2f2c271f8aab48444f4",
      "parents": [
        "7a291083225af6e22ffaa46b3d91cfc1a1ccaab4"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 13 13:24:59 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 13 13:24:59 2006 -0400"
      },
      "message": "drivers/net: Trim trailing whitespace\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "89114afd435a486deb8583e89f490fc274444d18",
      "tree": "800e784ba59755f9f3c9926a6992e1d0f5b8eec7",
      "parents": [
        "9c6c6795eda34e4dc38ecac912a16b6314082beb"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jul 08 13:34:32 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 08 13:34:32 2006 -0700"
      },
      "message": "[NET] gso: Add skb_is_gso\n\nThis patch adds the wrapper function skb_is_gso which can be used instead\nof directly testing skb_shinfo(skb)-\u003egso_size.  This makes things a little\nnicer and allows us to change the primary key for indicating whether an skb\nis GSO (if we ever want to do that).\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7967168cefdbc63bf332d6b1548eca7cd65ebbcc",
      "tree": "c45759149ae0acdc89d746e556a0ae278d11776d",
      "parents": [
        "d4828d85d188dc70ed172802e798d3978bb6e29e"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jun 22 02:40:14 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 23 02:07:29 2006 -0700"
      },
      "message": "[NET]: Merge TSO/UFO fields in sk_buff\n\nHaving separate fields in sk_buff for TSO/UFO (tso_size/ufo_size) is not\ngoing to scale if we add any more segmentation methods (e.g., DCCP).  So\nlet\u0027s merge them.\n\nThey were used to tell the protocol of a packet.  This function has been\nsubsumed by the new gso_type field.  This is essentially a set of netdev\nfeature bits (shifted by 16 bits) that are required to process a specific\nskb.  As such it\u0027s easy to tell whether a given device can process a GSO\nskb: you just have to and the gso_type field and the netdev\u0027s features\nfield.\n\nI\u0027ve made gso_type a conjunction.  The idea is that you have a base type\n(e.g., SKB_GSO_TCPV4) that can be modified further to support new features.\nFor example, if we add a hardware TSO type that supports ECN, they would\ndeclare NETIF_F_TSO | NETIF_F_TSO_ECN.  All TSO packets with CWR set would\nhave a gso_type of SKB_GSO_TCPV4 | SKB_GSO_TCPV4_ECN while all other TSO\npackets would be SKB_GSO_TCPV4.  This means that only the CWR packets need\nto be emulated in software.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0fed48463fb20c6bcabc5cf70e2de47b30507ee1",
      "tree": "2e5633d4afe21dc79d1f0284951a4ee71c2c843c",
      "parents": [
        "0a945022778f100115d0cb6234eb28fc1b15ccaf"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Mar 28 01:56:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:05 2006 -0800"
      },
      "message": "[PATCH] for_each_possible_cpu: loopback device.\n\nThis patch replaces for_each_cpu with for_each_possible_cpu.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "394e3902c55e667945f6f1c2bdbc59842cce70f7",
      "tree": "f4bca0bdc0c291fda6f6949265aacec0669b9084",
      "parents": [
        "63872f87a151413100678f110d1556026002809e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Mar 23 03:01:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:17 2006 -0800"
      },
      "message": "[PATCH] more for_each_cpu() conversions\n\nWhen we stop allocating percpu memory for not-possible CPUs we must not touch\nthe percpu data for not-possible CPUs at all.  The correct way of doing this\nis to test cpu_possible() or to use for_each_cpu().\n\nThis patch is a kernel-wide sweep of all instances of NR_CPUS.  I found very\nfew instances of this bug, if any.  But the patch converts lots of open-coded\ntest to use the preferred helper macros.\n\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Christian Zankel \u003cchris@zankel.net\u003e\nCc: Philippe Elie \u003cphil.el@wanadoo.fr\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nCc: Jens Axboe \u003caxboe@suse.de\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a3bc068022b968a3042b48eb9a8e8b0418fb9cdd",
      "tree": "6bbc2806756924105802f4584157396fb98d282c",
      "parents": [
        "54cfb5aa0f4859bd38706eabe0118175780a542f",
        "91aa9fb573fcc50bc74d5ee64c7e9b36131f1804"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Thu Aug 18 22:14:39 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Thu Aug 18 22:14:39 2005 -0400"
      },
      "message": "Merge /spare/repo/linux-2.6/\n"
    },
    {
      "commit": "22783649568a28839c5a362f47da7819ecfcbb9f",
      "tree": "19065dd333e9e4dd456f08cb8426544b24ba479e",
      "parents": [
        "001dd250c1c68667a5c3b74979fa614e2edc9ceb"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Aug 18 14:05:18 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 18 14:05:18 2005 -0700"
      },
      "message": "[NET]: Fix comment in loopback driver.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0e920bfb0395fb16909fb98cb6e2782a1c6b73c7",
      "tree": "20f83aeaf19fd833f0a8aa36f8b9ce7bacb985da",
      "parents": [
        "18c16c696e8b2323a306af455c686df15c717206"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "76306.1226@compuserve.com",
        "time": "Sat Jul 02 21:28:23 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Jul 31 01:06:11 2005 -0400"
      },
      "message": "[PATCH] loopback: whitespace cleanup\n\nWhitespace cleanup for loopback driver.  Hopefully it fixes the last few\nannoyances.\n\nSigned-off-by: Chuck Ebbert \u003c76306.1226@compuserve.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "18c16c696e8b2323a306af455c686df15c717206",
      "tree": "a273c9fe65d970a10490b838f95e2d52e2193ed3",
      "parents": [
        "d2ae1d2ff9282ca061b6f5244eee4c28ee2b3ffa"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "76306.1226@compuserve.com",
        "time": "Sat Jul 02 21:28:22 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Jul 31 01:06:10 2005 -0400"
      },
      "message": "[PATCH] loopback: optimize stats\n\nThis patch slightly optimizes the loopback driver\u0027s stats update.\n\nSaves two loads, one add and one increment per packet sent.\n\nSigned-off-by: Chuck Ebbert \u003c76306.1226@compuserve.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "d2ae1d2ff9282ca061b6f5244eee4c28ee2b3ffa",
      "tree": "12bc14f038ed644faa6299912453f2784f755315",
      "parents": [
        "2f761478a2b436efa23659b4d5c826e53b11f91a"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "76306.1226@compuserve.com",
        "time": "Sat Jul 02 21:28:21 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Jul 31 01:06:10 2005 -0400"
      },
      "message": "[PATCH] loopback: #ifdef the TSO code\n\nThis patch #ifdefs the TSO code in the loopback driver.\n\nSaves ~800 bytes of text on i386 and avoids a conditional in the fast path.\n\nSigned-off-by: Chuck Ebbert \u003c76306.1226@compuserve.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "02c30a84e6298b6b20a56f0896ac80b47839e134",
      "tree": "031e9d68ad83c371af7ebeb6840f3ede52698663",
      "parents": [
        "125947f2ab8c45417feaa4a8800e89529ca4612f"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Thu May 05 16:16:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:49 2005 -0700"
      },
      "message": "[PATCH] update Ross Biro bouncing email address\n\nRoss moved.  Remove the bad email address so people will find the correct\none in ./CREDITS.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
