)]}'
{
  "log": [
    {
      "commit": "6ec82562ffc6f297d0de36d65776cff8e5704867",
      "tree": "5c023102ddce1ae5f5a7b05f1f42766537ef86d1",
      "parents": [
        "d40a4de0be08f005814a4fddac748fe5353208ec"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu May 06 00:53:53 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 06 00:53:53 2010 -0700"
      },
      "message": "veth: Dont kfree_skb() after dev_forward_skb()\n\nIn case of congestion, netif_rx() frees the skb, so we must assume\ndev_forward_skb() also consume skb.\n\nBug introduced by commit 445409602c092\n(veth: move loopback logic to common location)\n\nWe must change dev_forward_skb() to always consume skb, and veth to not\ndouble free it.\n\nBug report : http://marc.info/?l\u003dlinux-netdev\u0026m\u003d127310770900442\u0026w\u003d3\n\nReported-by: Martín Ferrari \u003cmartin.ferrari@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": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "3729d5021257b283f7fce33d957893162ccb2c9d",
      "tree": "d44d5333dfb0cf11cfec8b05a8c7697b5c8d4c07",
      "parents": [
        "bd38081160bb3d036db98472e537b6a7dd4da51a"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Feb 26 06:34:54 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 27 02:43:40 2010 -0800"
      },
      "message": "rtnetlink: support specifying device flags on device creation\n\ncommit e8469ed959c373c2ff9e6f488aa5a14971aebe1f\nAuthor: Patrick McHardy \u003ckaber@trash.net\u003e\nDate:   Tue Feb 23 20:41:30 2010 +0100\n\nSupport specifying the initial device flags when creating a device though\nrtnl_link. Devices allocated by rtnl_create_link() are marked as INITIALIZING\nin order to surpress netlink registration notifications. To complete setup,\nrtnl_configure_link() must be called, which performs the device flag changes\nand invokes the deferred notifiers if everything went well.\n\nTwo examples:\n\n# add macvlan to eth0\n#\n$ ip link add link eth0 up allmulticast on type macvlan\n\n[LINK]11: macvlan0@eth0: \u003cBROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP\u003e mtu 1500 qdisc noqueue state UNKNOWN\n    link/ether 26:f8:84:02:f9:2a brd ff:ff:ff:ff:ff:ff\n[ROUTE]ff00::/8 dev macvlan0  table local  metric 256  mtu 1500 advmss 1440 hoplimit 0\n[ROUTE]fe80::/64 dev macvlan0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0\n[LINK]11: macvlan0@eth0: \u003cBROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP\u003e mtu 1500\n    link/ether 26:f8:84:02:f9:2a\n[ADDR]11: macvlan0    inet6 fe80::24f8:84ff:fe02:f92a/64 scope link\n       valid_lft forever preferred_lft forever\n[ROUTE]local fe80::24f8:84ff:fe02:f92a via :: dev lo  table local  proto none  metric 0  mtu 16436 advmss 16376 hoplimit 0\n[ROUTE]default via fe80::215:e9ff:fef0:10f8 dev macvlan0  proto kernel  metric 1024  mtu 1500 advmss 1440 hoplimit 0\n[NEIGH]fe80::215:e9ff:fef0:10f8 dev macvlan0 lladdr 00:15:e9:f0:10:f8 router STALE\n[ROUTE]2001:6f8:974::/64 dev macvlan0  proto kernel  metric 256  expires 0sec mtu 1500 advmss 1440 hoplimit 0\n[PREFIX]prefix 2001:6f8:974::/64 dev macvlan0 onlink autoconf valid 14400 preferred 131084\n[ADDR]11: macvlan0    inet6 2001:6f8:974:0:24f8:84ff:fe02:f92a/64 scope global dynamic\n       valid_lft 86399sec preferred_lft 14399sec\n\n# add VLAN to eth1, eth1 is down\n#\n$ ip link add link eth1 up type vlan id 1000\nRTNETLINK answers: Network is down\n\n\u003cno events\u003e\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\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": "9b963e5d0e01461099a40117b05480f24b63381f",
      "tree": "4756d554e37bf4ab7202f2c564cbe629af98b576",
      "parents": [
        "3b8626ba01a8a745a3fdf22dd347edd708b0af13",
        "5fdd4baef6195a1f2960e901c8877e2105f832ca"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 29 00:57:15 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 29 00:57:15 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/ieee802154/fakehard.c\n\tdrivers/net/e1000e/ich8lan.c\n\tdrivers/net/e1000e/phy.c\n\tdrivers/net/netxen/netxen_nic_init.c\n\tdrivers/net/wireless/ath/ath9k/main.c\n"
    },
    {
      "commit": "445409602c09219767c06497c0dc2285eac244ed",
      "tree": "5cfbd6d94f737107f3e6356fca2457ab3a66bb44",
      "parents": [
        "1bda8aa86b89d4c9b668000127ff87172f2daa10"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Nov 26 06:07:08 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 26 15:52:58 2009 -0800"
      },
      "message": "veth: move loopback logic to common location\n\nThe veth driver contains code to forward an skb\nfrom the start_xmit function of one network\ndevice into the receive path of another device.\n\nMoving that code into a common location lets us\nreuse the code for direct forwarding of data\nbetween macvlan ports, and possibly in other\ndrivers.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2b1c8b0f925c3f5943cf95d263d72927baae88e7",
      "tree": "956b46cc040504a0545065184e322ff596ef5d16",
      "parents": [
        "56cf54831fd1be105e89a9df899e3b22442da180"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Nov 18 07:09:39 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 19 13:16:22 2009 -0800"
      },
      "message": "veth: Fix veth_get_stats()\n\nveth_get_stats() can be called in parallel on several cpus.\n\nIt\u0027s better to not reset dev-\u003estats as it could give wrong result on\none cpu. Use temporary variables, then store the final results.\n\nAlso, we should loop on every possible cpus, not only online cpus,\nor cpu hotplug can suddenly give wrong veth stats.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "81adee47dfb608df3ad0b91d230fb3cef75f0060",
      "tree": "e9d7a41872f84c1395e21915e5f92c05ab872e69",
      "parents": [
        "f7a3a1d8affe563846fc17f0e7c0cc1500190c57"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@aristanetworks.com",
        "time": "Sun Nov 08 00:53:51 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 08 00:53:51 2009 -0800"
      },
      "message": "net: Support specifying the network namespace upon device creation.\n\nThere is no good reason to not support userspace specifying the\nnetwork namespace during device creation, and it makes it easier\nto create a network device and pass it to a child network namespace\nwith a well known name.\n\nWe have to be careful to ensure that the target network namespace\nfor the new device exists through the life of the call.  To keep\nthat logic clear I have factored out the network namespace grabbing\nlogic into rtnl_link_get_net.\n\nIn addtion we need to continue to pass the source network namespace\nto the rtnl_link_ops.newlink method so that we can find the base\ndevice source network namespace.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n"
    },
    {
      "commit": "24540535d33f72505807be3e7ef2e94f3726f971",
      "tree": "8b321c52a8bd4665972fb93673492e83aa9c7df6",
      "parents": [
        "29906f6a427d2004a515ebbcdc7b28bae8f6c19c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 30 01:00:27 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 30 01:00:27 2009 -0700"
      },
      "message": "veth: Fix veth_dellink method\n\nIn commit 23289a37e2b127dfc4de1313fba15bb4c9f0cd5b\n(net: add a list_head parameter to dellink() method),\nI forgot to actually use this parameter in veth_dellink.\n\nI remember feeling a bit uncomfortable about veth_close(),\nbecause it does :\n\nnetif_carrier_off(dev);\nnetif_carrier_off(priv-\u003epeer);\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "23289a37e2b127dfc4de1313fba15bb4c9f0cd5b",
      "tree": "209edb2cb43dedb97477e1297873ada4759a1066",
      "parents": [
        "9b5e383c11b08784eb0087617f880077982ef769"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Oct 27 07:06:36 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 28 02:22:07 2009 -0700"
      },
      "message": "net: add a list_head parameter to dellink() method\n\nAdding a list_head parameter to rtnl_link_ops-\u003edellink() methods\nallow us to queue devices on a list, in order to dismantle\nthem all at once.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e7dcaa4755e35d7540bf19f316f8798357c53fa0",
      "tree": "69c41151378213382199b577f2bc7b0d8bd1cc22",
      "parents": [
        "ca0c9584b1f16bd5911893647cb7f1be82e60554"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Sat Oct 03 19:48:23 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Oct 03 19:48:23 2009 +0900"
      },
      "message": "this_cpu: Eliminate get/put_cpu\n\nThere are cases where we can use this_cpu_ptr and as the result\nof using this_cpu_ptr() we no longer need to determine the\ncurrently executing cpu.\n\nIn those places no get/put_cpu combination is needed anymore.\nThe local cpu variable can be eliminated.\n\nPreemption still needs to be disabled and enabled since the\nmodifications of the per cpu variables is not atomic. There may\nbe multiple per cpu variables modified and those must all\nbe from the same processor.\n\nAcked-by: Maciej Sosnowski \u003cmaciej.sosnowski@intel.com\u003e\nAcked-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\ncc: Eric Biederman \u003cebiederm@aristanetworks.com\u003e\ncc: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\ncc: David L Stevens \u003cdlstevens@us.ibm.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "0fc0b732eaa38beb93a6fb62f77c7bd9622c76ec",
      "tree": "2423b134116c16f027ebeae7954c098f27d6e619",
      "parents": [
        "daf09de817353f18bb81a23a023d429cfd258e62"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Sep 02 01:03:33 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 02 01:03:33 2009 -0700"
      },
      "message": "netdev: drivers should make ethtool_ops const\n\nNo need to put ethtool_ops in data, they should be const.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "424efe9caf6047ffbcd6b383ff4d2347254aabf1",
      "tree": "d0ed516baa5b452ed8bc3a88fbd061f6e415bfb9",
      "parents": [
        "6518bbb803fe02b15a3211c8db2afdff0ac4f808"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Aug 31 19:50:51 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 01 01:13:40 2009 -0700"
      },
      "message": "netdev: convert pseudo drivers to netdev_tx_t\n\nThese are all drivers that don\u0027t touch real hardware.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27a242e92f77c955433ce0347533f401ecdcd0f3",
      "tree": "54487ab8ed1aa533e8b621a816c5399242ea9d26",
      "parents": [
        "dd52856ba24ed2f67679c86f207e5a9bab1eb93b"
      ],
      "author": {
        "name": "Ben Greear",
        "email": "greearb@candelatech.com",
        "time": "Tue Jul 21 12:50:02 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 23 18:01:02 2009 -0700"
      },
      "message": "veth: Zero timestamp in xmit path.\n\nThis patch zero\u0027s the timestamp before handing the packet to\nthe peer interface.  This lets the peer recalculate the rx timestamp\nif it cares about timestamps.\n\nSigned-off-by: Ben Greear \u003cgreearb@candelatech.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": "11687a1099583273a8a98ec42af62b5bb5a69e45",
      "tree": "6af6c13ece4944985d0b0c94880ce68ac5035128",
      "parents": [
        "6a9b6546164fb380a019f92ca4d76443202fdc4f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 25 02:45:42 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 25 02:45:42 2009 -0700"
      },
      "message": "Revert \"veth: prevent oops caused by netdev destructor\"\n\nThis reverts commit ae0e8e82205c903978a79ebf5e31c670b61fa5b4.\n\nThis change had two problems:\n\n1) Since it frees the stats in the drivers\u0027 close method, we\n   can OOPS in the transmit routine.\n\n2) stats are no longer remembered across ifdown/ifup which\n   disagrees with how every other device operates.\n\nThanks to analysis and test patch from Serge E. Hallyn\nand initial OOPS report by Sachin Sant.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "60df914e295a21a223e43a7ee01e0c73c64dd111",
      "tree": "c7253fe7f23758043fb52ce69b47c4838ac55e2d",
      "parents": [
        "2df9001edc382c331f338f45d259feeaa740c418"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri May 29 15:15:30 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 29 15:15:30 2009 -0700"
      },
      "message": "veth: dont release skb-\u003edst in veth_xmit()\n\nNo need to release skb-\u003edst, its now done by core network.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ae0e8e82205c903978a79ebf5e31c670b61fa5b4",
      "tree": "78d54aa285b9a6275e4628ed1fa0965e74417161",
      "parents": [
        "6a783c9067e3f71aac61a9262fe42c1f68efd4fc"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Apr 27 03:04:58 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 27 03:04:58 2009 -0700"
      },
      "message": "veth: prevent oops caused by netdev destructor\n\nFrom: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\n\nThe veth driver will oops if sysfs hooks are open while module is removed.\n\nThe net device destructor can not point to code in a module; basically\nthere are only two possible safe values: NULL - no destructor, or\nfree_netdev - free on last use\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\n"
    },
    {
      "commit": "38d408152a86598a50680a82fe3353b506630409",
      "tree": "a285e4883bdf04eb68201f379b52fa068cf4b2ed",
      "parents": [
        "abb79972b4d1dff00f79cb0d123173abac48a6ae"
      ],
      "author": {
        "name": "Eric Biederman",
        "email": "ebiederm@aristanetworks.com",
        "time": "Tue Mar 03 23:36:04 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 03 23:36:04 2009 -0800"
      },
      "message": "veth: Allow setting the L3 MTU\n\nThe limitation to only 1500 byte mtu\u0027s limits the utility of the veth\ndevice for testing routing.  So implement implement a configurable\nMTU.\n\nFor consistency I drop packets on the receive side when they are\nlarger than the MTU.  I count those drops.  And I allow\na little padding for vlan headers.\n\nI also test the mtu when a new device is created with netlink\nbecause that path currently bypasses the current mtu setting\ncode.\n\nSigned-off-by: Eric Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2cf48a10aa1f45c7b1f1117a829f2f8a1a1309e2",
      "tree": "4b467e81ebb7aa6c6789791115426ab5837b701f",
      "parents": [
        "cac477e8f1038c41b6f29d3161ce351462ef3df7"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Feb 25 19:47:29 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 01 20:44:21 2009 -0800"
      },
      "message": "veth: Fix carrier detect\n\nThe current implementation of carrier detect in veth is broken.\nIt reports the link is down until both sides of the veth pair\nare administatively up and then forever after it reports link up.\n\nSo fix veth so that it only reports link up when both interfaces\nof the pair are administratively up.\n\nSigned-off-by: Eric Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee923623177249cf22c43419ad0e8ff926dd1f58",
      "tree": "e0e3db94cc118d93014fb037f85e2c92c1d10d9d",
      "parents": [
        "b956d41162b1f2c4b446107e9910e4719cbc75f4"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@free.fr",
        "time": "Sun Feb 22 00:04:45 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 22 00:04:45 2009 -0800"
      },
      "message": "veth : add the set_mac_address capability\n\nFix lost set_mac_address capability.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\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": "4456e7bdf74c9f27e2312a6f197b2da467541433",
      "tree": "1b06ab44cb2002b6eb5ded43d857ebf3d3f188e1",
      "parents": [
        "a2dbb88210b9877f1c53d3798fd5d717a4d45256"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Nov 19 21:50:10 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 19 22:42:39 2008 -0800"
      },
      "message": "veth: convert to net_device_ops\n\nConvert to net_device_ops function table.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3717746ef8b5a9279281b5d318496710984ed739",
      "tree": "e6f4b352ca06f4f917366b85bce9e2b6a82b1da2",
      "parents": [
        "bb7bba3d56963be59bc6764c8021290ed55205ad"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "dlezcano@fr.ibm.com",
        "time": "Tue Oct 28 22:08:46 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 28 23:02:33 2008 -0700"
      },
      "message": "veth: remove unused list\n\nThe veth network device is stored in a list in the netdev private.\nAFAICS, this list is never used so I removed this list from the code.\n\nSigned-off-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bb7bba3d56963be59bc6764c8021290ed55205ad",
      "tree": "e9fc1c38e37f203d193d0636963ee7fc5d4ce3f8",
      "parents": [
        "fdb46ee752ed05c94bac71fe3decdb5175ec6e1f"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "dlezcano@fr.ibm.com",
        "time": "Tue Oct 28 22:08:19 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 28 23:02:33 2008 -0700"
      },
      "message": "veth: Remove useless veth field\n\nThe veth private structure contains a netdev pointer refering to its peer.\nThis field is never used and it is pointless because if we can access,\nthe veth_priv, that means we already have the netdev which is stored\nin veth_priv-\u003edev.\n\nSigned-off-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\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": "c15853f2c1c9baaa27bbc494cd183be96f6d9bb9",
      "tree": "0f5735eb9c3fedc715f58d4aeeeed162eabb5d3a",
      "parents": [
        "fa907895b7b776208a1406efe5ba7ffe0f49f507"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "dlezcano@fr.ibm.com",
        "time": "Wed Feb 20 00:21:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 20 00:21:47 2008 -0800"
      },
      "message": "veth: fix dev refcount race\n\nWhen deleting the veth driver, veth_close calls netif_carrier_off\nfor the two extremities of the network device. netif_carrier_off on\nthe peer device will fire an event and hold a reference on the peer\ndevice. Just after, the peer is unregistered taking the rtnl_lock while\nthe linkwatch_event is scheduled. If __linkwatch_run_queue does not\noccurs before the unregistering, unregister_netdevice will wait for\nthe dev refcount to reach zero holding the rtnl_lock and linkwatch_event\nwill wait for the rtnl_lock and hold the dev refcount.\n\nSigned-off-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "68365458a4252fa993b91a00f7a0b18fed399f0d",
      "tree": "824b1f32ba3b955c018626127602c365f986ccfc",
      "parents": [
        "d4782c323d10d3698b71b6a6b3c7bdad33824658"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sun Jan 20 17:25:14 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 20 20:31:45 2008 -0800"
      },
      "message": "[NET]: rtnl_link: fix use-after-free\n\nWhen unregistering the rtnl_link_ops, all existing devices using\nthe ops are destroyed. With nested devices this may lead to a\nuse-after-free despite the use of for_each_netdev_safe() in case\nthe upper device is next in the device list and is destroyed\nby the NETDEV_UNREGISTER notifier.\n\nThe easy fix is to restart scanning the device list after removing\na device. Alternatively we could add new devices to the front of\nthe list to avoid having dependant devices follow the device they\ndepend on. A third option would be to only restart scanning if\ndev-\u003eiflink of the next device matches dev-\u003eifindex of the current\none. For now this seems like the safest solution.\n\nWith this patch, the veth rtnl_link_ops unregistration can use\nrtnl_link_unregister() directly since it now also handles destruction\nof multiple devices at once.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ecef969e5b376f98b142e22deb1cec2f23e4f5d6",
      "tree": "d414bbb2f0c8937705256e09ab162e2ae6f46f8c",
      "parents": [
        "75ec533ec3335913009c32de878d5ed7cbe0d41c"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Tue Dec 25 17:23:59 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 26 19:36:35 2007 -0800"
      },
      "message": "[VETH]: move veth.h to include/linux\n\nMove veth.h from net/ to linux/ since it is a user api, and add it to\nuser header processing Kbuild.\n\n[ Use header-y as suggested by Sam Ravnborg.  -DaveM ]\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b9f2c0440d806e01968c3ed4def930a43be248ad",
      "tree": "b8e4668b0a4eab842fc33402e92b15f6c63cbc18",
      "parents": [
        "753f492093da7a40141bfe083073400f518f4c68"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Oct 03 18:07:32 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:51:45 2007 -0700"
      },
      "message": "[netdrvr] Stop using legacy hooks -\u003eself_test_count, -\u003eget_stats_count\n\nThese have been superceded by the new -\u003eget_sset_count() hook.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "881d966b48b035ab3f3aeaae0f3d3f9b584f45b2",
      "tree": "c579d59a4107cbbe9e2b85939bc0d496b815c887",
      "parents": [
        "b4b510290b056b86611757ce1175a230f1080f53"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Sep 17 11:56:21 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:10 2007 -0700"
      },
      "message": "[NET]: Make the device list and device lookups per namespace.\n\nThis patch makes most of the generic device layer network\nnamespace safe.  This patch makes dev_base_head a\nnetwork namespace variable, and then it picks up\na few associated variables.  The functions:\ndev_getbyhwaddr\ndev_getfirsthwbytype\ndev_get_by_flags\ndev_get_by_name\n__dev_get_by_name\ndev_get_by_index\n__dev_get_by_index\ndev_ioctl\ndev_ethtool\ndev_load\nwireless_process_ioctl\n\nwere modified to take a network namespace argument, and\ndeal with it.\n\nvlan_ioctl_set and brioctl_set were modified so their\nhooks will receive a network namespace argument.\n\nSo basically anthing in the core of the network stack that was\naffected to by the change of dev_base was modified to handle\nmultiple network namespaces.  The rest of the network stack was\nsimply modified to explicitly use \u0026init_net the initial network\nnamespace.  This can be fixed when those components of the network\nstack are modified to handle multiple network namespaces.\n\nFor now the ifindex generator is left global.\n\nFundametally ifindex numbers are per namespace, or else\nwe will have corner case problems with migration when\nwe get that far.\n\nAt the same time there are assumptions in the network stack\nthat the ifindex of a network device won\u0027t change.  Making\nthe ifindex number global seems a good compromise until\nthe network stack can cope with ifindex changes when\nyou change namespaces, and the like.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e314dbdc1c0dc6a548ecf0afce28ecfd538ff568",
      "tree": "f774e598ebb997c108b1d757cd4b27f7bbca9a28",
      "parents": [
        "e71992889ee289a87f6641cfa40d64a5699bcb53"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Tue Sep 25 16:14:46 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:46 2007 -0700"
      },
      "message": "[NET]: Virtual ethernet device driver.\n\nVeth stands for Virtual ETHernet. It is a simple tunnel driver\nthat works at the link layer and looks like a pair of ethernet\ndevices interconnected with each other.\n\nMainly it allows to communicate between network namespaces but\nit can be used as is as well.\n\nThe newlink callback is organized that way to make it easy to\ncreate the peer device in the separate namespace when we have\nthem in kernel.\n\nThis implementation uses another interface - the RTM_NRELINK\nmessage introduced by Patric.\n\nBug fixes from Daniel Lezcano.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
