)]}'
{
  "log": [
    {
      "commit": "932ff279a43ab7257942cddff2595acd541cc49b",
      "tree": "e60130673a20d71becdac858c2589d8dfbf3ae1f",
      "parents": [
        "bf0857ea32addb6bc8b46383604b218b8ec09f19"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jun 09 12:20:56 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:30:14 2006 -0700"
      },
      "message": "[NET]: Add netif_tx_lock\n\nVarious drivers use xmit_lock internally to synchronise with their\ntransmission routines.  They do so without setting xmit_lock_owner.\nThis is fine as long as netpoll is not in use.\n\nWith netpoll it is possible for deadlocks to occur if xmit_lock_owner\nisn\u0027t set.  This is because if a printk occurs while xmit_lock is held\nand xmit_lock_owner is not set can cause netpoll to attempt to take\nxmit_lock recursively.\n\nWhile it is possible to resolve this by getting netpoll to use\ntrylock, it is suboptimal because netpoll\u0027s sole objective is to\nmaximise the chance of getting the printk out on the wire.  So\ndelaying or dropping the message is to be avoided as much as possible.\n\nSo the only alternative is to always set xmit_lock_owner.  The\nfollowing patch does this by introducing the netif_tx_lock family of\nfunctions that take care of setting/unsetting xmit_lock_owner.\n\nI renamed xmit_lock to _xmit_lock to indicate that it should not be\nused directly.  I didn\u0027t provide irq versions of the netif_tx_lock\nfunctions since xmit_lock is meant to be a BH-disabling lock.\n\nThis is pretty much a straight text substitution except for a small\nbug fix in winbond.  It currently uses\nnetif_stop_queue/spin_unlock_wait to stop transmission.  This is\nunsafe as an IRQ can potentially wake up the queue.  So it is safer to\nuse netif_tx_disable.\n\nThe hamradio bits used spin_lock_irq but it is unnecessary as\nxmit_lock must never be taken in an IRQ handler.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bd89efc532fe41f867f848144cc8b42054ddf6f9",
      "tree": "fcf90049cb5a15bf6689cdbc6038c3fe22079009",
      "parents": [
        "ef34814426862c41c061520d4ac833be5914b5ba"
      ],
      "author": {
        "name": "Simon Kelley",
        "email": "simon@thekelleys.org.uk",
        "time": "Fri May 12 14:56:08 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 12 14:56:08 2006 -0700"
      },
      "message": "[NEIGH]: Fix IP-over-ATM and ARP interaction.\n\nThe classical IP over ATM code maintains its own IPv4 \u003c-\u003e \u003cATM stuff\u003e\nARP table, using the standard neighbour-table code. The\nneigh_table_init function adds this neighbour table to a linked list\nof all neighbor tables which is used by the functions neigh_delete()\nneigh_add() and neightbl_set(), all called by the netlink code.\n\nOnce the ATM neighbour table is added to the list, there are two\ntables with family \u003d\u003d AF_INET there, and ARP entries sent via netlink\ngo into the first table with matching family. This is indeterminate\nand often wrong.\n\nTo see the bug, on a kernel with CLIP enabled, create a standard IPv4\nARP entry by pinging an unused address on a local subnet. Then attempt\nto complete that entry by doing\n\nip neigh replace \u003cip address\u003e lladdr \u003csome mac address\u003e nud reachable\n\nLooking at the ARP tables by using \n\nip neigh show\n\nwill reveal two ARP entries for the same address. One of these can be\nfound in /proc/net/arp, and the other in /proc/net/atm/arp.\n\nThis patch adds a new function, neigh_table_init_no_netlink() which\ndoes everything the neigh_table_init() does, except add the table to\nthe netlink all-arp-tables chain. In addition neigh_table_init() has a\ncheck that all tables on the chain have a distinct address family.\nThe init call in clip.c is changed to call\nneigh_table_init_no_netlink().\n\nSince ATM ARP tables are rather more complicated than can currently be\nhandled by the available rtattrs in the netlink protocol, no\nfunctionality is lost by this patch, and non-ATM ARP manipulation via\nnetlink is rescued. A more complete solution would involve a rtattr\nfor ATM ARP entries and some way for the netlink code to give\nneigh_add and friends more information than just address family with\nwhich to find the correct ARP table.\n\n[ I\u0027ve changed the assertion checking in neigh_table_init() to not\n  use BUG_ON() while holding neigh_tbl_lock.  Instead we remember that\n  we found an existing tbl with the same family, and after dropping\n  the lock we\u0027ll give a diagnostic kernel log message and a stack dump.\n  -DaveM ]\n\nSigned-off-by: Simon Kelley \u003csimon@thekelleys.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4909e488f65fc729fc0f8d42bd1600c56a8bd83c",
      "tree": "89a0db95b179fea83100a064d914e1665c4bca0c",
      "parents": [
        "5ff765f3d0b9367319d29ab0c0f55349da2fd53e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Fri Apr 14 16:01:26 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 14 16:01:26 2006 -0700"
      },
      "message": "[ATM] clip: add module info\n\nAdd module information\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5ff765f3d0b9367319d29ab0c0f55349da2fd53e",
      "tree": "f7add0ab41bd6d2a983ff39191edca799fe6561b",
      "parents": [
        "dcdb02752ff13a64433c36f2937a58d93ae7a19e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Fri Apr 14 16:00:59 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 14 16:00:59 2006 -0700"
      },
      "message": "[ATM] clip: notifier related cleanups\n\nCleanup some code around notifier.  Don\u0027t need (void) casts to ignore\nreturn values, and use C90 style initializer. Just ignore unused device\nevents.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dcdb02752ff13a64433c36f2937a58d93ae7a19e",
      "tree": "559dc600a14fa2fac5997961c2628ee2c5c6d107",
      "parents": [
        "e49e76db031fdfaadb4907a319ea3a1dc9d2925f"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Fri Apr 14 16:00:25 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 14 16:00:25 2006 -0700"
      },
      "message": "[ATM] clip: get rid of PROC_FS ifdef\n\nDon\u0027t need the ifdef here since create_proc_entry() is stubbed to\nalways return NULL.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e49e76db031fdfaadb4907a319ea3a1dc9d2925f",
      "tree": "552320f27f1a62d7cbc09e7ba1c5bedeec82ad4a",
      "parents": [
        "2d9073922bc73f8cb847ce354f0896205f6981a1"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Fri Apr 14 15:59:37 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 14 15:59:37 2006 -0700"
      },
      "message": "[ATM] clip: run through Lindent\n\nRun CLIP driver through Lindent script to fix formatting.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2d9073922bc73f8cb847ce354f0896205f6981a1",
      "tree": "f6a9db5cec30edd2a16ba79575cf2d28c5180b9a",
      "parents": [
        "f3a0592b37b83e56a7f47826f552b35a2c3b2fc9"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Fri Apr 14 15:56:02 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 14 15:56:02 2006 -0700"
      },
      "message": "[ATM]: Clip timer race.\n\nBy inspection, the clip idle timer code is racy on SMP.\nHere is a safe version of timer management.\nUntested, I don\u0027t have ATM hardware.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f3a0592b37b83e56a7f47826f552b35a2c3b2fc9",
      "tree": "8bdb6f8da73f6c2221067ac5630f57dc7f04efad",
      "parents": [
        "b8a99520f78e23e47f9efffeb0060c1385064ff6"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Fri Apr 14 15:07:27 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 14 15:07:27 2006 -0700"
      },
      "message": "[ATM]: clip causes unregister hang\n\nIf Classical IP over ATM module is loaded, its neighbor table gets\npopulated when permanent neighbor entries are created; but these entries\nare not flushed when the device is removed. Since the entry never gets\nflushed the unregister of the network device never completes.\n\nThis version of the patch also adds locking around the reference to\nthe atm arp daemon to avoid races with events and daemon state changes.\n(Note: barrier() was never really safe)\n\nBug-reference: http://bugzilla.kernel.org/show_bug.cgi?id\u003d6295\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aa837b5bbd92ca3791345e809d0027594faa738b",
      "tree": "4c0c106011e882d3e466a2c573ae8dd543b76fc8",
      "parents": [
        "e9e678006ee865b0f7e53069b0e519141a710a6e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:30:23 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:30:23 2006 -0800"
      },
      "message": "[ATM]: Fix build after neigh-\u003eparms-\u003eneigh_destructor change.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4fc268d24ceb9f4150777c1b5b2b8e6214e56b2b",
      "tree": "d2aaf0b5986b03e6129ed3ccd65b9f706cd59c7f",
      "parents": [
        "16f7e0fe2ecc30f30652e8185e1772cdebe39109"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:14 2006 -0800"
      },
      "message": "[PATCH] capable/capability.h (net/)\n\nnet: Use \u003clinux/capability.h\u003e where capable() is used.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e5ed639913eea3e4783a550291775ab78dd84966",
      "tree": "e6e915aa686d2a7125181fc83a847e1955a8ba46",
      "parents": [
        "a5e7c210fefd2454c757a3542e41063407ca7108"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Oct 03 14:35:55 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 03 14:35:55 2005 -0700"
      },
      "message": "[IPV4]: Replace __in_dev_get with __in_dev_get_rcu/rtnl\n\nThe following patch renames __in_dev_get() to __in_dev_get_rtnl() and\nintroduces __in_dev_get_rcu() to cover the second case.\n\n1) RCU with refcnt should use in_dev_get().\n2) RCU without refcnt should use __in_dev_get_rcu().\n3) All others must hold RTNL and use __in_dev_get_rtnl().\n\nThere is one exception in net/ipv4/route.c which is in fact a pre-existing\nrace condition.  I\u0027ve marked it as such so that we remember to fix it.\n\nThis patch is based on suggestions and prior work by Suzanne Wood and\nPaul McKenney.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\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"
    }
  ]
}
