)]}'
{
  "log": [
    {
      "commit": "105e53f863c04e1d9e5bb34bf753c9fdbce6a60c",
      "tree": "63500c7cb130348b70279cdbfdfb278de6fc83ad",
      "parents": [
        "81bf52d8622f05cfe89893fd5c1101efd85f855b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun May 01 20:50:31 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue May 10 22:53:46 2011 +0200"
      },
      "message": "firewire: sbp2: parallelize login, reconnect, logout\n\nThe struct sbp2_logical_unit.work items can all be executed in parallel\nbut are not reentrant.  Furthermore, reconnect or re-login work must be\nexecuted in a WQ_MEM_RECLAIM workqueue.\n\nHence replace the old single-threaded firewire-sbp2 workqueue by a\nconcurrency-managed but non-reentrant workqueue with rescuer.\nfirewire-core already maintains one, hence use this one.\n\nIn earlier versions of this change, I observed occasional failures of\nparallel INQUIRY to an Initio INIC-2430 FireWire 800 to dual IDE bridge.\nMore testing indicates that parallel INQUIRY is not actually a problem,\nbut too quick successions of logout and login + INQUIRY, e.g. a quick\nsequence of cable plugout and plugin, can result in failed INQUIRY.\nThis does not seem to be something that should or could be addressed by\nserialization.\n\nAnother dual-LU device to which I currently have access to, an\nOXUF924DSB FireWire 800 to dual SATA bridge with firmware from MacPower,\nhas been successfully tested with this too.\n\nThis change is beneficial to environments with two or more FireWire\nstorage devices, especially if they are located on the same bus.\nManagement tasks that should be performed as soon and as quickly as\npossible, especially reconnect, are no longer held up by tasks on other\ndevices that may take a long time, especially login with INQUIRY and sd\nor sr driver probe.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "81bf52d8622f05cfe89893fd5c1101efd85f855b",
      "tree": "eaad1608312ce1995082c06951af5a194fd66a52",
      "parents": [
        "b75ca5ea8e439893121ad80406a3c04c4b7612ab"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun May 01 21:06:42 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue May 10 22:53:46 2011 +0200"
      },
      "message": "firewire: sbp2: octlet AT payloads can be stack-allocated\n\nWe do not need slab allocations for ORB pointer write transactions\nanymore in order to satisfy streaming DMA mapping constraints, thanks to\ncommit da28947e7e36 \"firewire: ohci: avoid separate DMA mapping for\nsmall AT payloads\".\n\n(Besides, the slab-allocated buffers that firewire-sbp2 used to provide\nfor 8-byte write requests were still not fully portable since they\nshared a cacheline with unrelated CPU-accessed data.)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b75ca5ea8e439893121ad80406a3c04c4b7612ab",
      "tree": "9a260ae737d99d66aa3d42fdfb0bda2125ca47e2",
      "parents": [
        "6ea9e7bbfc389a12d52646449a201fe933ccd663"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 22 12:21:44 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue May 10 22:53:45 2011 +0200"
      },
      "message": "firewire: sbp2: omit Scsi_Host lock from queuecommand\n\nfirewire-sbp2 already takes care for internal serialization where\nrequired (ORB list accesses), and it does not use cmd-\u003eserial_number\ninternally.  Hence it is safe to not grab the shost lock around\nqueuecommand.\n\nWhile we are at housekeeping, drop a redundant struct member:\nsbp2_command_orb.done is set once in a hot path and dereferenced once in\na hot path.  We can as well dereference sbp2_command_orb.cmd-\u003escsi_done\ninstead.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "6ea9e7bbfc389a12d52646449a201fe933ccd663",
      "tree": "f84e89a394d45db4f30e1286966f69be62f203da",
      "parents": [
        "13882a82ee1646336c3996c93b4a560a55d2a419"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 13 13:39:46 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue May 10 22:53:45 2011 +0200"
      },
      "message": "firewire: core: use non-reentrant workqueue with rescuer\n\nfirewire-core manages the following types of work items:\n\nfw_card.br_work:\n  - resets the bus on a card and possibly sends a PHY packet before that\n  - does not sleep for long or not at all\n  - is scheduled via fw_schedule_bus_reset() by\n      - firewire-ohci\u0027s pci_probe method\n      - firewire-ohci\u0027s set_config_rom method, called by kernelspace\n        protocol drivers and userspace drivers which add/remove\n\tConfiguration ROM descriptors\n      - userspace drivers which use the bus reset ioctl\n      - itself if the last reset happened less than 2 seconds ago\n\nfw_card.bm_work:\n  - performs bus management duties\n  - usually does not (but may in corner cases) sleep for long\n  - is scheduled via fw_schedule_bm_work() by\n      - firewire-ohci\u0027s self-ID-complete IRQ handler tasklet\n      - firewire-core\u0027s fw_device.work instances whenever the root node\n        device was (successfully or unsuccessfully) discovered,\n\trefreshed, or rediscovered\n      - itself in case of resource allocation failures or in order to\n        obey the 125ms bus manager arbitration interval\n\nfw_device.work:\n  - performs node probe, update, shutdown, revival, removal; including\n    kernel driver probe, update, shutdown and bus reset notification to\n    userspace drivers\n  - usually sleeps moderately long, in corner cases very long\n  - is scheduled by\n      - firewire-ohci\u0027s self-ID-complete IRQ handler tasklet via the\n        core\u0027s fw_node_event\n      - firewire-ohci\u0027s pci_remove method via core\u0027s fw_destroy_nodes/\n        fw_node_event\n      - itself during retries, e.g. while a node is powering up\n\niso_resource.work:\n  - accesses registers at the Isochronous Resource Manager node\n  - usually does not (but may in corner cases) sleep for long\n  - is scheduled via schedule_iso_resource() by\n      - the owning userspace driver at addition and removal of the\n        resource\n      - firewire-core\u0027s fw_device.work instances after bus reset\n      - itself in case of resource allocation if necessary to obey the\n        1000ms reallocation period after bus reset\n\nfw_card.br_work instances should not, and instances of the others must\nnot, be executed in parallel by multiple CPUs -- but were not protected\nagainst that.  Hence allocate a non-reentrant workqueue for them.\n\nfw_device.work may be used in the memory reclaim path in case of SBP-2\ndevice updates.  Hence we need a workqueue with rescuer and cannot use\nsystem_nrt_wq.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "13882a82ee1646336c3996c93b4a560a55d2a419",
      "tree": "8a144d874a0ac46273a7e2f2dd344458d7eb4bfa",
      "parents": [
        "f30e6d3e419bfb5540fa82ba7eca01d578556e6b"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon May 02 09:33:56 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue May 10 22:53:45 2011 +0200"
      },
      "message": "firewire: optimize iso queueing by setting wake only after the last packet\n\nWhen queueing iso packets, the run time is dominated by the two\nMMIO accesses that set the DMA context\u0027s wake bit.  Because most\ndrivers submit packets in batches, we can save much time by\nremoving all but the last wakeup.\n\nThe internal kernel API is changed to require a call to\nfw_iso_context_queue_flush() after a batch of queued packets.\nThe user space API does not change, so one call to\nFW_CDEV_IOC_QUEUE_ISO must specify multiple packets to take\nadvantage of this optimization.\n\nIn my measurements, this patch reduces the time needed to queue\nfifty skip packets from userspace to one sixth on a 2.5 GHz CPU,\nor to one third at 800 MHz.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "f30e6d3e419bfb5540fa82ba7eca01d578556e6b",
      "tree": "e4d6e7bad161a76b09557bf7513358ae1ce8f7fb",
      "parents": [
        "020abf03cd659388f94cb328e1e1df0656e0d7ff"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 22 15:13:54 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue May 10 22:53:44 2011 +0200"
      },
      "message": "firewire: octlet AT payloads can be stack-allocated\n\nWe do not need slab allocations anymore in order to satisfy\nstreaming DMA mapping constraints, thanks to commit da28947e7e36\n\"firewire: ohci: avoid separate DMA mapping for small AT payloads\".\n\n(Besides, the slab-allocated buffers that firewire-core, firewire-sbp2,\nand firedtv used to provide for 8-byte write and lock requests were\nstill not fully portable since they crossed cacheline boundaries or\nshared a cacheline with unrelated CPU-accessed data.  snd-firewire-lib\ngot this aspect right by using an extra kmalloc/ kfree just for the\n8-byte transaction buffer.)\n\nThis change replaces kmalloc\u0027ed lock transaction scratch buffers in\nfirewire-core, firedtv, and snd-firewire-lib by local stack allocations.\nPerhaps the most notable result of the change is simpler locking because\nthere is no need to serialize usages of preallocated per-device buffers\nanymore.  Also, allocations and deallocations are simpler.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nAcked-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "020abf03cd659388f94cb328e1e1df0656e0d7ff",
      "tree": "40d05011708ad1b4a05928d167eb120420581aa6",
      "parents": [
        "0ff8fbc61727c926883eec381fbd3d32d1fab504",
        "693d92a1bbc9e42681c42ed190bd42b636ca876f"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue May 10 20:52:07 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue May 10 22:50:41 2011 +0200"
      },
      "message": "Merge tag \u0027v2.6.39-rc7\u0027\n\nin order to pull in changes in drivers/media/dvb/firewire/ and\nsound/firewire/.\n"
    },
    {
      "commit": "8db72a7d7268630e04ec285fbd3e90733b2eddf9",
      "tree": "bb41f5ce688f9595b5734b02c48ef53d2cc067bd",
      "parents": [
        "8a3d8ed027b563d2875cd3df816fb4a888a8551e",
        "2e053a27d9d5ad5e0831e002cbf8043836fb2060"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 04 14:21:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 04 14:21:39 2011 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: Fix for broken configrom updates in quick succession\n"
    },
    {
      "commit": "2e053a27d9d5ad5e0831e002cbf8043836fb2060",
      "tree": "4e3ed1110128cbb1ba3b5baf4e45161300ad58c2",
      "parents": [
        "115881d395959b75c8c3bb94913f2ce869b8aa7a"
      ],
      "author": {
        "name": "B.J. Buchalter",
        "email": "bj@mhlabs.com",
        "time": "Mon May 02 13:33:42 2011 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon May 02 22:55:22 2011 +0200"
      },
      "message": "firewire: Fix for broken configrom updates in quick succession\n\nCurrent implementation of ohci_set_config_rom() uses a deferred\nbus reset via fw_schedule_bus_reset(). If clients add multiple\nunit descriptors to the config_rom in quick succession, the\ndeferred bus reset may not have fired before succeeding update\nrequests have come in. This can lead to an incorrect partial\nupdate of the config_rom for both addition and removal of\nconfig_rom descriptors, as the ohci_set_config_rom() routine\nwill return -EBUSY if a previous pending update has not been\ncompleted yet; the requested update just gets dropped on the floor.\n\nThis patch recognizes that the \"in-flight\" update can be modified\nuntil it has been processed by the bus-reset, and the locking\nin the bus_reset_tasklet ensures that the update is done atomically\nwith respect to modifications made by ohci_set_config_rom(). The\n-EBUSY error case is simply removed.\n\n[Stefan R:  The bug always existed at least theoretically.  But it\nbecame easy to trigger since 2.6.36 commit 02d37bed188c \"firewire: core:\nintegrate software-forced bus resets with bus management\" which\nintroduced long mandatory delays between janitorial bus resets.]\n\nSigned-off-by: Benjamin Buchalter \u003cbj@mhlabs.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (trivial style changes)\nCc: \u003cstable@kernel.org\u003e # 2.6.36.y and newer\n"
    },
    {
      "commit": "0ff8fbc61727c926883eec381fbd3d32d1fab504",
      "tree": "37261139bea74569bf4a41bccd5d47d4b406b6a3",
      "parents": [
        "da28947e7e3602669e27d5e9ce787436ed662fa4"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Apr 12 07:54:59 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Apr 19 20:00:11 2011 +0200"
      },
      "message": "firewire: ohci: optimize find_branch_descriptor()\n\nWhen z\u003d\u003d2, the condition \"key \u003d\u003d 2\" is superfluous because it cannot\noccur without \"b \u003d\u003d 3\", as a descriptor with b!\u003d3 and key\u003d\u003d2 would be\nan OUTPUT_MORE_IMMEDIATE descriptor which cannot be used alone.\n\nAlso remove magic numbers and needless computations on the b field.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "da28947e7e3602669e27d5e9ce787436ed662fa4",
      "tree": "33b3cfb25fddbe12b4f19f02ce3253872eed2436",
      "parents": [
        "ecf8328e59447b83a1f79628487e0e9f8801db84"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Apr 11 09:57:54 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Apr 19 20:00:11 2011 +0200"
      },
      "message": "firewire: ohci: avoid separate DMA mapping for small AT payloads\n\nFor AT packet payloads of up to eight bytes, we have enough unused space\nin the DMA descriptors list so that we can put a copy of the payload\nthere and thus avoid having to create a separate streaming DMA mapping\nfor the payload buffer.\n\nIn a CPU-bound microbenchmark that just sends 8-byte packets, bandwidth\nwas measured to increase by 5.7 %, from 1009 KB/s to 1067 KB/s.  In\npractice, the only performance-sensitive usage of small asynchronous\npackets is the SBP-2 driver\u0027s write to the ORB_POINTER register during\nSCSI command submission.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "ecf8328e59447b83a1f79628487e0e9f8801db84",
      "tree": "20ea90d6a38687a48c28ad185c612d0dece86e6f",
      "parents": [
        "115881d395959b75c8c3bb94913f2ce869b8aa7a"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Apr 11 09:56:12 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Apr 19 20:00:10 2011 +0200"
      },
      "message": "firewire: ohci: do not start DMA contexts before link is enabled\n\nOHCI 1.1 5.7.3 not only forbids enabling or starting any DMA contexts\nbefore the linkEnable bit is set, but also explicitly warns of undefined\nbehaviour if this order is violated.\n\nDon\u0027t violate it then.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "c3ca48f062a37c2f79560a9b0b9f1b08039aa248",
      "tree": "9a9a9561b155e3bb805bdbccf5cb2f715ec7bf50",
      "parents": [
        "4e76ae4406449811c0b743ccf0612ef6ffcf2acb",
        "115881d395959b75c8c3bb94913f2ce869b8aa7a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 21 10:05:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 21 10:05:22 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: core: ignore link-active bit of new nodes, fix device recognition\n  firewire: sbp2: revert obsolete \u0027fix stall with \"Unsolicited response\"\u0027\n  firewire: core: increase default SPLIT_TIMEOUT value\n  firewire: ohci: Misleading kfree in ohci.c::pci_probe/remove\n  firewire: ohci: omit IntEvent.busReset check rom AT queueing\n  firewire: ohci: prevent starting of iso contexts with empty queue\n  firewire: ohci: prevent iso completion callbacks after context stop\n  firewire: core: rename some variables\n  firewire: nosy: should work on Power Mac G4 PCI too\n  firewire: core: fix card-\u003ereset_jiffies overflow\n  firewire: cdev: remove unneeded reference\n  firewire: cdev: always wait for outbound transactions to complete\n  firewire: cdev: remove unneeded idr_find() from complete_transaction()\n  firewire: ohci: log dead DMA contexts\n"
    },
    {
      "commit": "115881d395959b75c8c3bb94913f2ce869b8aa7a",
      "tree": "8beae4353389d5d26bbd6c7f4b7ca9f45d38aff9",
      "parents": [
        "7a4e1e9c682cd87fe8a749b435b13afeef083c34"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 15 00:08:41 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Mar 20 16:45:25 2011 +0100"
      },
      "message": "firewire: core: ignore link-active bit of new nodes, fix device recognition\n\nLike the older ieee1394 core driver, firewire-core skipped scanning of\nany new node whose PHY sent a self ID without \"link active\" bit.  If a\ndevice had this bit off mistakenly, it meant that it was inaccessible to\nkernel drivers with the old IEEE 1394 driver stack but could still be\naccessed by userspace drivers through the raw1394 interface.\n\nBut with firewire-core, userspace drivers don\u0027t get to see such buggy\ndevices anymore.  This is effectively a driver regression since this\ndevice bug is otherwise harmless.\n\nWe now attempt to scan all devices, even repeaters that don\u0027t have a\nlink or powered-down devices that have everything but their PHY shut\ndown when plugged in.  This results in futile repeated scanning attempts\nin case of such devices that really don\u0027t have an active link, but this\ndoesn\u0027t hurt since recent workqueue infrastructure lets us run more\nconcurrent scanning jobs than we can shake a stick at.\n\nThis should fix accessibility of Focusrite Saffire PRO 26 I/O:\nhttp://sourceforge.net/mailarchive/forum.php?thread_name\u003d20110314215622.5c751bb0%40stein\u0026forum_name\u003dffado-user\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "7a4e1e9c682cd87fe8a749b435b13afeef083c34",
      "tree": "4a2d0558222d25a2d37fc215cc95090ace00ffa7",
      "parents": [
        "dd5eeb99f47d18c05efffcd247c0aa07eaa9ffaa"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 15 00:04:42 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Mar 20 16:45:24 2011 +0100"
      },
      "message": "firewire: sbp2: revert obsolete \u0027fix stall with \"Unsolicited response\"\u0027\n\nNow that firewire-core sets the local node\u0027s SPLIT_TIMEOUT to 2 seconds\nper default, commit a481e97d3cdc40b9d58271675bd4f0abb79d4872 is no\nlonger required.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "dd5eeb99f47d18c05efffcd247c0aa07eaa9ffaa",
      "tree": "ea2852c5436fab65afbebaf696a0db5b8d0dcf1e",
      "parents": [
        "d838d2c09af0820e306e3e9e31f97e873823b0b4"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Mar 07 11:21:15 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Mar 20 16:45:24 2011 +0100"
      },
      "message": "firewire: core: increase default SPLIT_TIMEOUT value\n\nThe SPLIT_TIMEOUT mechanism is intended to detect requests that somehow\ngot lost.  However, when the timeout value is too low, transactions that\ncould have been completed successfully will be cancelled.  Furthermore,\nthere are chips whose firmwares ignore the configured split timeout and\nsend late split response; known examples are the DM1x00 (BeBoB), TCD22x0\n(DICE), and some OXUF936QSE firmwares.\n\nThis patch changes the default timeout to two seconds, which happens to\nbe the default on other OSes, too.\n\nActual lost requests are extremely rare, so there should be no practical\ndownside to increasing the split timeout even on devices that work\ncorrectly.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "31ef9134eb52636d383a7d0626cbbd345cb94f2f",
      "tree": "5d994932a8773e844190cbea43ef31d67f605cf8",
      "parents": [
        "a5abba989deceb731047425812d268daf7536575"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Mar 15 07:53:21 2011 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Tue Mar 15 08:42:22 2011 +0100"
      },
      "message": "ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver\n\nAdd a driver for two playback-only FireWire devices based on the OXFW970\nchip.\n\nv2: better AMDTP API abstraction; fix fw_unit leak; small fixes\nv3: cache the iPCR value\nv4: FireWave constraints; fix fw_device reference counting;\n    fix PCR caching; small changes and fixes\nv5: volume/mute support; fix crashing due to pcm stop races\nv6: fix build; one-channel volume for LaCie\nv7: use signed values to make volume (range checks) work; fix function\n    block IDs for volume/mute; always use channel 0 for LaCie volume\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nAcked-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nTested-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "d838d2c09af0820e306e3e9e31f97e873823b0b4",
      "tree": "b51cb6854bac7282c925f67b612ee22e946445c2",
      "parents": [
        "b6258fc1feabda868694ad5fdc7ca8edf3ef30ec"
      ],
      "author": {
        "name": "Oleg Drokin",
        "email": "green@linuxhacker.ru",
        "time": "Fri Mar 11 04:17:27 2011 +0300"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Mar 14 23:30:57 2011 +0100"
      },
      "message": "firewire: ohci: Misleading kfree in ohci.c::pci_probe/remove\n\nIt seems drivers/firewire/ohci.c is making some optimistic assumptions\nabout struct fw_ohci and that member \"card\" will always remain the first\nmember of the struct.\nPlus it\u0027s probably going to confuse a lot of static code analyzers too.\n\nSo I wonder if there is a good reason not to free the ohci struct just\nlike it was allocated instead of the tricky \u0026ohci-\u003ecard way?\n\nSigned-off-by: Oleg Drokin \u003cgreen@linuxhacker.ru\u003e\n\nIt is perhaps just a rudiment from before mainline submission of the\ndriver.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b6258fc1feabda868694ad5fdc7ca8edf3ef30ec",
      "tree": "db2a06bde078d146c4ec32ab34ebe7a1779356ea",
      "parents": [
        "44b74d909dc943fd9384930a141450cb17133511"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 26 15:08:35 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Mar 14 23:30:56 2011 +0100"
      },
      "message": "firewire: ohci: omit IntEvent.busReset check rom AT queueing\n\nSince commit 82b662dc4102 \"flush AT contexts after bus reset for OHCI 1.2\",\nthe driver takes care of any AT packets that were enqueued during a bus\nreset phase.  The check from commit 76f73ca1b291 is therefore no longer\nnecessary and the MMIO read can be avoided.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "44b74d909dc943fd9384930a141450cb17133511",
      "tree": "19861b5b1213d6f0e9571f6c640095f7d74b642c",
      "parents": [
        "e81cbebdfc384f9c2ae91225f16ef994118e5e2c"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed Feb 23 09:27:40 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 26 15:11:04 2011 +0100"
      },
      "message": "firewire: ohci: prevent starting of iso contexts with empty queue\n\nIf a misguided program tried to start an isochronous context before it\nhas queued any packets, the call would appear to succeed, but the\ncontext would not actually go into the running state, and the OHCI\ncontroller would then raise an unrecoverableError interrupt because the\nfirst Z value is zero and thus invalid.  The driver logs such errors,\nbut there is no mechanism to report this back to the program.\n\nAdd an explicit check so that this error can be returned synchronously.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e81cbebdfc384f9c2ae91225f16ef994118e5e2c",
      "tree": "7bdb493f5bbb2d175966a8bd5336145c9e871ac3",
      "parents": [
        "5aaffc65a27dd9db65455c2c9ab3ede57238d2f5"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed Feb 16 10:32:11 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 26 15:11:03 2011 +0100"
      },
      "message": "firewire: ohci: prevent iso completion callbacks after context stop\n\nTo prevent the iso packet callback from being called after\nfw_iso_context_stop() has returned, make sure that the\ncontext\u0027s tasklet has finished executing before that.\n\nThis fixes access-after-free bugs that have so far been\nobserved only in the upcoming snd-firewire-speakers driver,\nbut can theoretically also happen in the firedtv driver.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5aaffc65a27dd9db65455c2c9ab3ede57238d2f5",
      "tree": "70f621a701752d255907956e76b8983892142ccd",
      "parents": [
        "8fd2af11d2fe1d50621e958747744f1c93e5b758"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Jan 31 11:58:58 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 26 15:11:03 2011 +0100"
      },
      "message": "firewire: core: rename some variables\n\nIn manage_channel(), rename the variables \"c\" and \"i\" to the more\nexpressive \"bit\" and \"channel\".\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8fd2af11d2fe1d50621e958747744f1c93e5b758",
      "tree": "25fee98e38d3b63e9ba86458af876d2729574bc8",
      "parents": [
        "e71084af58cf15e6043338500eeaf6281d0a62af"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 23 12:26:51 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 26 15:11:03 2011 +0100"
      },
      "message": "firewire: nosy: should work on Power Mac G4 PCI too\n\nThe first board generation of Power Mac G4 (\"Yikes!\", those with PCI\ngraphics) still had a PCILynx controller like their G3 predecessors,\nbut not the later AGP models.  (Jonathan Woithe recalls to have heard\nof it, and some web sources reinforce it.)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e71084af58cf15e6043338500eeaf6281d0a62af",
      "tree": "d757d4891a4f93f7a07c1f12448d3be3be748fa1",
      "parents": [
        "dbc9880fa731fe2482a706bbabb4165269233063"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sat Jan 22 15:05:03 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 23 12:31:01 2011 +0100"
      },
      "message": "firewire: core: fix card-\u003ereset_jiffies overflow\n\nOn a 32-bit machine with, e.g., HZ\u003d1000, jiffies will overflow after\nabout 50 days, so if there are between 25 and 50 days between bus\nresets, the card-\u003ereset_jiffies comparisons can get wrong results.\n\nTo fix this, ensure that this timestamp always uses 64 bits.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: \"Stefan Richter\" \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "dbc9880fa731fe2482a706bbabb4165269233063",
      "tree": "288e46fb5df60dc582e74fd20565a802bb31502d",
      "parents": [
        "5a5e62da9be255439e8ce59f96828775b7b33374"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Jan 10 17:29:03 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 23 12:31:01 2011 +0100"
      },
      "message": "firewire: cdev: remove unneeded reference\n\nFor outbound transactions, the IDR\u0027s and the callback\u0027s references now\nhave exactly the same lifetime, so we do not need both of them.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: \"Stefan Richter\" \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5a5e62da9be255439e8ce59f96828775b7b33374",
      "tree": "61c3154c6574f52b0b2981ad7698275fc0693c5b",
      "parents": [
        "3e204dfcaff0e7f6c4d9873fb8c9d948ec5ab2da"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Jan 10 17:28:39 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 23 12:31:00 2011 +0100"
      },
      "message": "firewire: cdev: always wait for outbound transactions to complete\n\nWe must not use fw_cancel_transaction() because it cannot correctly\nabort still-active transactions.  The only place in core-cdev where this\nmatters is when the file is released.  Instead of trying to abort the\ntransactions, we wait for them to complete normally, i.e., until all\noutbound transaction resources have been removed from the IDR tree.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: \"Stefan Richter\" \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "3e204dfcaff0e7f6c4d9873fb8c9d948ec5ab2da",
      "tree": "77d823df1360861fb4edd7cdf0549ea849c8a001",
      "parents": [
        "f117a3e3004381ccadadc5156178c283815ca393"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Jan 10 17:28:27 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 23 12:31:00 2011 +0100"
      },
      "message": "firewire: cdev: remove unneeded idr_find() from complete_transaction()\n\nOutbound transactions are never aborted with release_client_resource(),\nso it is not necessary for complete_transaction() to check whether the\nresource is still registered.  Only shutdown_resource() can abort such\nan transaction, and this is already handled with the in_shutdown check.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: \"Stefan Richter\" \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "f117a3e3004381ccadadc5156178c283815ca393",
      "tree": "afc150347ea9a50aec8ca7b4677d0267547d183b",
      "parents": [
        "6044565af458e7fa6e748bff437ecc49dea88d79"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Jan 10 17:21:35 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 23 12:31:00 2011 +0100"
      },
      "message": "firewire: ohci: log dead DMA contexts\n\nWhen a DMA context goes into the dead state (and the controller thus\nstops working correctly), logging this error and the controller\u0027s error\ncode might be helpful for debugging.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a1d3f5b70d13b7035f925de1f2ba0003a04b9ac5",
      "tree": "9c4252d29637f1ccf393259b0709e65e5678f16d",
      "parents": [
        "7971b96d922ccaaa2b732462c8f927af4259db60",
        "6044565af458e7fa6e748bff437ecc49dea88d79",
        "324719978dbb3ffad5a2e3d85af6c5dbbb766b99"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 21 13:34:39 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 21 13:34:39 2011 -0800"
      },
      "message": "Merge branches \u0027fixes\u0027 and \u0027fwnet\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: core: fix unstable I/O with Canon camcorder\n\n* \u0027fwnet\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: net: is not experimental anymore\n  firewire: net: invalidate ARP entries of removed nodes\n"
    },
    {
      "commit": "324719978dbb3ffad5a2e3d85af6c5dbbb766b99",
      "tree": "af2d92b19eeacf20cb5153d35392c0b24ed0059a",
      "parents": [
        "74a145049938b73b7e5421423f64a254d4192d3f"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jan 20 00:07:46 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jan 21 00:36:00 2011 +0100"
      },
      "message": "firewire: net: is not experimental anymore\n\nthanks to Clemens\u0027 and Maxim\u0027s fixes to firewire-ohci and -net in the\nlast two kernel releases.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "74a145049938b73b7e5421423f64a254d4192d3f",
      "tree": "fc79d839596b87449dbb34317d1d282c2e54b6b7",
      "parents": [
        "c56eb8fb6dccb83d9fe62fd4dc00c834de9bc470"
      ],
      "author": {
        "name": "Maxim Levitsky",
        "email": "maximlevitsky@gmail.com",
        "time": "Mon Nov 29 04:09:52 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jan 21 00:36:00 2011 +0100"
      },
      "message": "firewire: net: invalidate ARP entries of removed nodes\n\nThis makes it possible to resume communication with a node that dropped\noff the bus for a brief period.  Otherwise communication will only be\npossible after ARP cache entry timeouts.\n\nSigned-off-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (rebased)\n"
    },
    {
      "commit": "6044565af458e7fa6e748bff437ecc49dea88d79",
      "tree": "874808ca8f1d8f5413c8e9302e5f52d9c4cfb4f1",
      "parents": [
        "1427130425c1239d977e8891c3a8923f53a6e352"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 15 18:19:48 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jan 21 00:27:46 2011 +0100"
      },
      "message": "firewire: core: fix unstable I/O with Canon camcorder\n\nRegression since commit 10389536742c, \"firewire: core: check for 1394a\ncompliant IRM, fix inaccessibility of Sony camcorder\":\n\nThe camcorder Canon MV5i generates lots of bus resets when asynchronous\nrequests are sent to it (e.g. Config ROM read requests or FCP Command\nwrite requests) if the camcorder is not root node.  This causes drop-\nouts in videos or makes the camcorder entirely inaccessible.\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d633260\n\nFix this by allowing any Canon device, even if it is a pre-1394a IRM\nlike MV5i are, to remain root node (if it is at least Cycle Master\ncapable).  With the FireWire controller cards that I tested, MV5i always\nbecomes root node when plugged in and left to its own devices.\n\nReported-by: Ralf Lange\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: \u003cstable@kernel.org\u003e # 2.6.32.y and newer\n"
    },
    {
      "commit": "1427130425c1239d977e8891c3a8923f53a6e352",
      "tree": "940207bbaf155d7ed36c6b8fab201dae6773ec1f",
      "parents": [
        "410cf2bd3dc6ec1ed9e1b36b25b9d7aa927ed14e"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jan 13 10:12:17 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jan 13 15:48:29 2011 +0100"
      },
      "message": "firewire: ohci: fix compilation on arches without PAGE_KERNEL_RO\n\nPAGE_KERNEL_RO is not available on all architectures, so its use\nin the new AR code broke compilation on sparc64.\n\nBecause the read-only mapping was just a debugging aid, just use\nPAGE_KERNEL instead.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n\nJames Bottomley wrote:\n\u003e On Thu, 2011-01-13 at 08:27 +0100, Clemens Ladisch wrote:\n\u003e\u003e firewire: ohci: fix compilation on arches without PAGE_KERNEL_RO, e.g. sparc\n\u003e\u003e\n\u003e\u003e PAGE_KERNEL_RO is not available on all architectures, so its use in the\n\u003e\u003e new AR code broke compilation on sparc64.\n\u003e\u003e\n\u003e\u003e Because the R/O mapping is only used to catch drivers that try to write\n\u003e\u003e to the reception buffer and not actually required for correct operation,\n\u003e\u003e we can just use a normal PAGE_KERNEL mapping where _RO is not available.\n[...]\n\u003e\u003e +/*\n\u003e\u003e + * For archs where PAGE_KERNEL_RO is not supported;\n\u003e\u003e + * mapping the AR buffers readonly for the CPU is just a debugging aid.\n\u003e\u003e + */\n\u003e\u003e +#ifndef PAGE_KERNEL_RO\n\u003e\u003e +#define PAGE_KERNEL_RO PAGE_KERNEL\n\u003e\u003e +#endif\n\u003e\n\u003e This might cause interesting issues on sparc64 if it ever acquired a\n\u003e PAGE_KERNEL_RO.  Sparc64 has extern pgprot_t for it\u0027s PAGE_KERNEL types\n\u003e rather than #defines, so the #ifdef check wouldn\u0027t see this.\n\u003e\n\u003e I think either PAGE_PROT_RO becomes part of our arch API (so all\n\u003e architectures are forced to add it), or, if it\u0027s not part of the API,\n\u003e ohci isn\u0027t entitled to use it.  The latter seems simplest since you have\n\u003e no real use for write protection anyway.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "410cf2bd3dc6ec1ed9e1b36b25b9d7aa927ed14e",
      "tree": "4226510c642e882fde0cc801e626492577b61fd0",
      "parents": [
        "693a50b511818e07a131efc944cba1a504b63d3d"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Dec 13 14:56:02 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 04 08:48:34 2011 +0100"
      },
      "message": "firewire: use split transaction timeout only for split transactions\n\nInstead of starting the split transaction timeout timer when any request\nis submitted, start it only when the destination\u0027s ACK_PENDING has been\nreceived.  This prevents us from using a timeout that is too short, and,\nif the controller\u0027s AT queue is emptying very slowly, from cancelling\na packet that has not yet been sent.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "693a50b511818e07a131efc944cba1a504b63d3d",
      "tree": "f2791e96a50e10ec07223a9aa3b0719768221ca8",
      "parents": [
        "386a4153a2c1455e424f280d636efa3c91864466"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 01 15:17:05 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 04 08:48:33 2011 +0100"
      },
      "message": "firewire: ohci: consolidate context status flags\n\n\"firewire: ohci: restart iso DMA contexts on resume from low power mode\"\nadded the flag struct context.active and \"firewire: ohci: cache the\ncontext run bit\" added struct context.running.\n\nThese flags contain the same information; combine them.\nAlso, normalize whitespace in pci_resume().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "386a4153a2c1455e424f280d636efa3c91864466",
      "tree": "b99bc0351da1d37808d633cb8d64c1030dc37479",
      "parents": [
        "78dec56d6a56322e1b728d51f3a7def416d36b34"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Fri Dec 24 14:42:46 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 04 08:48:33 2011 +0100"
      },
      "message": "firewire: ohci: cache the context run bit\n\nThe DMA context run control bit is entirely controlled by software, so\nit is safe to cache it.  This allows the driver to avoid doing an\nadditional MMIO read when queueing an AT packet.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "78dec56d6a56322e1b728d51f3a7def416d36b34",
      "tree": "cecebe0b2376af8a774172286d4682bc5a697bfc",
      "parents": [
        "82b662dc41027527675740de15344d1b4e34958e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 01 15:15:40 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 04 08:48:33 2011 +0100"
      },
      "message": "firewire: ohci: flush AT contexts after bus reset - addendum\n\nAdd comments\n  - on why bus_reset_tasklet flushes AT queues,\n  - that commit 76f73ca1b291 can possibly be reverted now.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nAcked-by: Jarod Wilson \u003cjarod@redhat.com\u003e\n"
    },
    {
      "commit": "82b662dc41027527675740de15344d1b4e34958e",
      "tree": "e9e38e035e426c40b5f52f48da7928872fe61f5c",
      "parents": [
        "c16714704bb35165e5b85d927873dcc643772648"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Fri Dec 24 14:40:15 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jan 03 22:34:48 2011 +0100"
      },
      "message": "firewire: ohci: flush AT contexts after bus reset for OHCI 1.2\n\nThe OHCI 1.2 (draft) specification, clause 7.2.3.3, allows and\nrecommends that, after a bus reset, the controller does not flush all\nthe packets in the AT queues.  Therefore, the driver has to do this\nitself.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c16714704bb35165e5b85d927873dcc643772648",
      "tree": "c8aa70b7d7aaf3984a7c1b8579bd7f2ae29ec39d",
      "parents": [
        "18bb36f9fab5980efeff063755c037a622f0231c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Dec 17 22:22:33 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 19 15:27:02 2010 +0100"
      },
      "message": "firewire: net: set carrier state at ifup\n\nAt ifup, carrier status would be shown on even if it actually was off.\nAlso add an include for ethtool_ops rather than to rely on the one from\nnetdevice.h.\n\nNote, we can alas not use fwnet_device_mutex to serialize access to\ndev-\u003epeer_count (as I originally wanted).  This would cause a lock\ninversion:\n  - fwnet_probe | takes fwnet_device_mutex\n      + register_netdev | takes rtnl_mutex\n  - devinet_ioctl | takes rtnl_mutex\n      + fwnet_open | ...must not take fwnet_device_mutex\n\nHence use the dev-\u003elock spinlock for serialization.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "18bb36f9fab5980efeff063755c037a622f0231c",
      "tree": "f12d16c98aab9934306d29dc7584095479077813",
      "parents": [
        "c4d6fd40df38eb4c187565d48807f5f902481ba8"
      ],
      "author": {
        "name": "Maxim Levitsky",
        "email": "maximlevitsky@gmail.com",
        "time": "Wed Dec 08 04:22:57 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 19 15:27:01 2010 +0100"
      },
      "message": "firewire: net: add carrier detection\n\nTo make userland, e.g. NetworkManager work with firewire, we need to\ndetect whether cable is plugged or not.  Simple and correct way of doing\nthat is just counting number of peers.  No peers - no link and vice\nversa.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c4d6fd40df38eb4c187565d48807f5f902481ba8",
      "tree": "076b1e225faf7341149825449c528d2b99356005",
      "parents": [
        "dd23736e092035b71df1117482b71fdfb5634239"
      ],
      "author": {
        "name": "Maxim Levitsky",
        "email": "maximlevitsky@gmail.com",
        "time": "Mon Nov 29 04:09:53 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:15 2010 +0100"
      },
      "message": "firewire: net: ratelimit error messages\n\nUnfortunately its easy to trigger such error messages by removing the\ncable while sending streams of data over the link.\n\nSuch errors are normal, and therefore this patch stops firewire-net from\nflooding the kernel log with these errors, by combining series of same\nerrors together.\n\nSigned-off-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\n\n(Stefan R:)  Eventually we should remove this logging when firewire-net\nand related firewire-ohci facilities have been stabilized.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "dd23736e092035b71df1117482b71fdfb5634239",
      "tree": "82e5ca95a4065f57e6c0e6504b3458d592a7c7f0",
      "parents": [
        "8662b6b029636c35e5876e184d90daf6b0072667"
      ],
      "author": {
        "name": "Maxim Levitsky",
        "email": "maximlevitsky@gmail.com",
        "time": "Mon Nov 29 04:09:50 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:15 2010 +0100"
      },
      "message": "firewire: ohci: restart iso DMA contexts on resume from low power mode\n\nRestore iso channels DMA so that iso channels could continue to work\nafter resume from RAM/disk.\n\nSigned-off-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8662b6b029636c35e5876e184d90daf6b0072667",
      "tree": "448ac2fb1db32087cb414f9f00ca420fc6ac3d7e",
      "parents": [
        "ec766a7970126f99665992c0b0b10bd60a4d6208"
      ],
      "author": {
        "name": "Maxim Levitsky",
        "email": "maximlevitsky@gmail.com",
        "time": "Mon Nov 29 04:09:49 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:15 2010 +0100"
      },
      "message": "firewire: ohci: restore GUID on resume.\n\nSome lousy BIOSes, e.g. my Aspire 5720 BIOS forget to restore the GUID\nregister on resume from RAM.\n\nFix that by setting it to the last value that was read from it.\n\nSigned-off-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "ec766a7970126f99665992c0b0b10bd60a4d6208",
      "tree": "dc049e0bcb3e1fb33a68efea8760391af62f6681",
      "parents": [
        "2dd5bed59356e03610bebe1a37c397788df50b9b"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Nov 30 08:25:17 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:15 2010 +0100"
      },
      "message": "firewire: ohci: use common buffer for self IDs and AR descriptors\n\nThe buffers used for the selfIDs packets and the AR request and response\ndescriptors end up using three pages because dma_alloc_coherent()\nallocates at least one page per call.  However, these data structures\nwould all fit into 4 KB, so we can save space by using a common buffer\nfor them.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "2dd5bed59356e03610bebe1a37c397788df50b9b",
      "tree": "c1d069389a923d3b33ead320003e39d19ee86975",
      "parents": [
        "5b06db166c4d38638980283505259fa165d4f369"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Nov 30 08:25:05 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:14 2010 +0100"
      },
      "message": "firewire: ohci: optimize iso context checks in the interrupt handler\n\nWhen the isochRx/isochTx bit is clear, we do not need to read the\ncorresponding iso interrupt event register.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5b06db166c4d38638980283505259fa165d4f369",
      "tree": "3384d55b420987325ffabf523ded740b1daac2c4",
      "parents": [
        "8327b37b18addfc6f8cf41a2f1a4490b656377b9"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Nov 30 08:24:47 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:14 2010 +0100"
      },
      "message": "firewire: make PHY packet header format consistent\n\nChange the header of PHY packets to be sent to include a pseudo\ntransaction code.  This makes the header consistent with that of\nreceived PHY packets, and allows at_context_queue_packet() and\nlog_ar_at_event() to see the packet type directly instead of having\nto deduce it from the header length or even from the header contents.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8327b37b18addfc6f8cf41a2f1a4490b656377b9",
      "tree": "ff9f3ccefccc5ab3b6bf0b5b7690af6a451230cc",
      "parents": [
        "e597e9898abe45beff4696159c7fe5c96f53e581"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Nov 30 08:24:32 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:14 2010 +0100"
      },
      "message": "firewire: ohci: properly clear posted write errors\n\nTo remove the error information from the controller\u0027s queue and to allow\nmore posted writes, the driver has to read the failed posted write\naddress before clearing the postedWriteErr interrupt bit.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n\n(Stefan R:) The spec is somewhat fuzzy about the actual requirements.\nTo err on the safe side, let\u0027s do these two read accesses.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e597e9898abe45beff4696159c7fe5c96f53e581",
      "tree": "e50555f1356e9c5ad206215df1eed4e0e33bd517",
      "parents": [
        "c088ab30ebf184afae01d919c77cebcfdce39df3"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Nov 30 08:24:19 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:14 2010 +0100"
      },
      "message": "firewire: ohci: flush MMIO writes in the interrupt handler\n\nMake sure that interrupt event clear bit writes are executed before the\ninterrupt handler returns.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c088ab30ebf184afae01d919c77cebcfdce39df3",
      "tree": "7a66936c37b0c938db2eb398bdb763a648281393",
      "parents": [
        "7a39d8b82165462729d09066bddb395a19025acd"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Nov 30 08:24:01 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:13 2010 +0100"
      },
      "message": "firewire: ohci: fix AT context initialization error handling\n\nAdd proper error handling for the context_init() calls.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "7a39d8b82165462729d09066bddb395a19025acd",
      "tree": "c0fea8d963b7f421e97dccacb059cfca610072de",
      "parents": [
        "5878730be4e3d0c9527d6f2f688874e38acacc98"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Fri Nov 26 08:57:31 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:13 2010 +0100"
      },
      "message": "firewire: ohci: Asynchronous Reception rewrite\n\nMove the AR DMA descriptors out of the buffer pages, and map the buffer\npages linearly into the kernel\u0027s address space.  This allows the driver\nto ignore any page boundaries in the DMA data and thus to avoid any\ncopying around of packet payloads.\n\nThis fixes the bug where S800 packets that are so big (\u003e 4080 bytes)\nthat they can be split over three pages were not handled correctly.\n\nDue to the changed algorithm, we can now use arbitrarily many buffer\npages, which improves performance because the controller can more easily\nunload its DMA FIFO.\n\nFurthermore, using streaming DMA mappings should improve perfomance on\narchitectures where coherent DMA mappings are not cacheable.  Even on\nother architectures, the caching behaviour should be improved slightly\nbecause the CPU no longer writes to the buffer pages.\n\nv2: Detect the last filled buffer page by searching the descriptor\u0027s\n    residual count value fields in order (like in the old code), instead\n    of going backwards through the transfer status fields; it looks as\n    if some controllers do not set the latter correctly.\n\nv3: Fix an old resume bug that would now make the handler run into\n    a BUG_ON, and replace that check with more useful error handling.\n    Increase the buffer size for better performance with non-TI chips.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n\nMaxim Levitsky writes:\n    Works almost perfectly.  I can still see RCODE_BUSY errors\n    sometimes, not very often though.  64K here eliminates these errors\n    completely.  This is most likely due to nouveau drivers and lowest\n    perf level I use to lower card temperature.  That increases\n    latencies too much I think.  Besides that the IO is just perfect.\n\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5878730be4e3d0c9527d6f2f688874e38acacc98",
      "tree": "49cbdaefffddac39378cf8ad861b6313f2f89773",
      "parents": [
        "60a74a6ff86b4e90b9558956589390efdeb4e924"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sat Oct 30 14:08:27 2010 -0700"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 12 15:47:03 2010 +0100"
      },
      "message": "firewire: core: Update WARN uses\n\nAdd missing newlines.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "60a74a6ff86b4e90b9558956589390efdeb4e924",
      "tree": "188cfc02511b8e8a21e324efd9046f9e5b8c097a",
      "parents": [
        "9993e0fe0f5f29c69e79efcb271ffc9843002985"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 23 13:18:56 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 12 15:47:02 2010 +0100"
      },
      "message": "firewire: nosy: char device is not seekable\n\nAmend .open handler accordingly and remove the .llseek handler.\n.llseek \u003d NULL means no_llseek (return error) since commit 776c163b1b93.\n\nThe only client that uses this interface is nosy-dump in linux/tools/firewire\nand it knows not to seek in this char dev.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "9993e0fe0f5f29c69e79efcb271ffc9843002985",
      "tree": "ed35a971df3613385819d58bf79817b7100c2992",
      "parents": [
        "af0cdf4947818becfe209610b209315578645ab4"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Dec 07 20:32:40 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 12 15:47:02 2010 +0100"
      },
      "message": "firewire: ohci: fix regression with Agere FW643 rev 06, disable MSI\n\nAgere FW643 rev 06, listed as \"11c1:5901 (rev 06) (prog-if 10 [OHCI])\",\nproduced SBP-2 I/O errors since kernel 2.6.36.  Disabling MSI fixes it.\n\nSince MSI work on Agere FW643-E (same vendor and device ID, but rev 07),\nintroduce a device revision field into firewire-ohci\u0027s quirks list so\nthat different quirks can be defined for older and newer revisions.\n\nReported-by: Jonathan Isom \u003cjeisom@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: \u003cstable@kernel.org\u003e # 2.6.36.y\n"
    },
    {
      "commit": "af0cdf4947818becfe209610b209315578645ab4",
      "tree": "6294d93f9eccfb857769929d1269aedd32681fc9",
      "parents": [
        "cf7d7e5a1980d1116ee152d25dac382b112b9c17"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Dec 07 19:16:02 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 12 15:47:02 2010 +0100"
      },
      "message": "firewire: ohci: fix regression with VIA VT6315, disable MSI\n\n\"VIA Technologies, Inc. VT6315 Series Firewire Controller [1106:3403]\"\ndoes not generate any interrupts if Message Signaled Interrupts were\nenabled.  This is a regression since kernel 2.6.36 in which MSI support\nwas added to firewire-ohci.  Hence blacklist MSI on all VIA controllers.\n\nReported-by: Robin Cook \u003crcook@wyrms.net\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: \u003cstable@kernel.org\u003e # 2.6.36.y\n"
    },
    {
      "commit": "75f5d2c9bd36047364d1fb35c0720ab37df3be02",
      "tree": "20f7bfba3397366e0f4526dcdbdb20f23559d8a5",
      "parents": [
        "0f639a3c5ca63dd76ee07de9b02ebf0178ce9a17",
        "b2268830f5cf29d94b3e4a2af0b795a8f28776fe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 28 12:24:20 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 28 12:24:20 2010 -0800"
      },
      "message": "Merge branch \u0027fwnet\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027fwnet\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: net: throttle TX queue before running out of tlabels\n  firewire: net: replace lists by counters\n  firewire: net: fix memory leaks\n  firewire: net: count stats.tx_packets and stats.tx_bytes\n"
    },
    {
      "commit": "b2268830f5cf29d94b3e4a2af0b795a8f28776fe",
      "tree": "a52483756446f1e09dcd80b5243d899612cf5caa",
      "parents": [
        "48553011cea504796e513350740781ac6745f556"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Nov 14 14:35:40 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Nov 17 00:08:49 2010 +0100"
      },
      "message": "firewire: net: throttle TX queue before running out of tlabels\n\nThis prevents firewire-net from submitting write requests in fast\nsuccession until failure due to all 64 transaction labels were used up\nfor unfinished split transactions.  The netif_stop/wake_queue API is\nused for this purpose.\n\nWithout this stop/wake mechanism, datagrams were simply lost whenever\nthe tlabel pool was exhausted.  Plus, tlabel exhaustion by firewire-net\nalso prevented other unrelated outbound transactions to be initiated.\n\nThe chosen queue depth was checked by me to hit the maximum possible\nthroughput with an OS X peer whose receive DMA is good enough to never\nreject requests due to busy inbound request FIFO.  Current Linux peers\nshow a mixed picture of -5%...+15% change in bandwidth; their current\nbottleneck are RCODE_BUSY situations (fewer or more, depending on TX\nqueue depth) due to too small AR buffer in firewire-ohci.\n\nMaxim Levitsky tested this change with similar watermarks with a Linux\npeer and some pending firewire-ohci improvements that address the\nRCODE_BUSY problem and confirmed that these TX queue limits are good.\n\nNote:  This removes some netif_wake_queue from reception code paths.\nThey were apparently copy\u0026paste artefacts from a nonsensical\nnetif_wake_queue use in the older eth1394 driver.  This belongs only\ninto the transmit path.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\n"
    },
    {
      "commit": "48553011cea504796e513350740781ac6745f556",
      "tree": "f90a9e23ecd00c9c476e61e6e2c2fdd6cc552008",
      "parents": [
        "7ee11fa8d0a84b05cefe12b0bebc05ab0ea89cd6"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Nov 06 23:18:23 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Nov 17 00:08:48 2010 +0100"
      },
      "message": "firewire: net: replace lists by counters\n\nThe current transmit code does not at all make use of\n  - fwnet_device.packet_list\nand only very limited use of\n  - fwnet_device.broadcasted_list,\n  - fwnet_device.queued_packets.\nTheir current function is to track whether the TX soft-IRQ finished\ndealing with an skb when the AT-req tasklet takes over, and to discard\npending tx datagrams (if there are any) when the local node is removed.\n\nThe latter does actually contain a race condition bug with TX soft-IRQ\nand AT-req tasklet.\n\nInstead of these lists and the corresponding link in fwnet_packet_task,\n  - a flag in fwnet_packet_task to track whether fwnet_tx is done,\n  - a counter of queued datagrams in fwnet_device\ndo the job as well.\n\nThe above mentioned theoretic race condition is resolved by letting\nfwnet_remove sleep until all datagrams were flushed.  It may sleep\nalmost arbitrarily long since fwnet_remove is executed in the context of\na multithreaded (concurrency managed) workqueue.\n\nThe type of max_payload is changed to u16 here to avoid waste in struct\nfwnet_packet_task.  This value cannot exceed 4096 per IEEE 1394:2008\ntable 16-18 (or 32678 per specification of packet headers, if there is\never going to be something else than beta mode).\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "7ee11fa8d0a84b05cefe12b0bebc05ab0ea89cd6",
      "tree": "ed0f67e8b3687aef93acd50db1f635d43c8073f5",
      "parents": [
        "902bca00dc6e3b3ff5fbb1e32e5dbb45d5f30579"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Nov 06 16:57:28 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Nov 17 00:08:48 2010 +0100"
      },
      "message": "firewire: net: fix memory leaks\n\na) fwnet_transmit_packet_done used to poison ptask-\u003ept_link by list_del.\nIf fwnet_send_packet checked later whether it was responsible to clean\nup (in the border case that the TX soft IRQ was outpaced by the AT-req\ntasklet on another CPU), it missed this because ptask-\u003ept_link was no\nlonger shown as empty.\n\nb) If fwnet_write_complete got an rcode other than RCODE_COMPLETE, we\nmissed to free the skb and ptask entirely.\n\nAlso, count stats.tx_dropped and stats.tx_errors when rcode !\u003d 0.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "902bca00dc6e3b3ff5fbb1e32e5dbb45d5f30579",
      "tree": "4800783df10844fc3f41071fe4446cea957f63e4",
      "parents": [
        "e53beacd23d9cb47590da6a7a7f6d417b941a994"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Nov 06 12:36:13 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Nov 17 00:08:48 2010 +0100"
      },
      "message": "firewire: net: count stats.tx_packets and stats.tx_bytes\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "f281233d3eba15fb225d21ae2e228fd4553d824a",
      "tree": "51134454ba8acb558735f90be5540f7d756483e3",
      "parents": [
        "bdbd01ac444bffb3c9aefed3059d12554059b320"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Nov 16 02:10:29 2010 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 16 13:33:23 2010 -0800"
      },
      "message": "SCSI host lock push-down\n\nMove the mid-layer\u0027s -\u003equeuecommand() invocation from being locked\nwith the host lock to being unlocked to facilitate speeding up the\ncritical path for drivers who don\u0027t need this lock taken anyway.\n\nThe patch below presents a simple SCSI host lock push-down as an\nequivalent transformation.  No locking or other behavior should change\nwith this patch.  All existing bugs and locking orders are preserved.\n\nAdditionally, add one parameter to queuecommand,\n\tstruct Scsi_Host *\nand remove one parameter from queuecommand,\n\tvoid (*done)(struct scsi_cmnd *)\n\nScsi_Host* is a convenient pointer that most host drivers need anyway,\nand \u0027done\u0027 is redundant to struct scsi_cmnd-\u003escsi_done.\n\nMinimal code disturbance was attempted with this change.  Most drivers\nneeded only two one-line modifications for their host lock push-down.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nAcked-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f69fa76482e654f7d94e4aa40ea0ebf04363396a",
      "tree": "3cb1976afa6daf39a9e45551671ecfb5bb580e08",
      "parents": [
        "2e5c36722d4c9c86281f25a1e963a6078c7fce6a",
        "693fa7792e9db9f32da9436e633976fbacd04b55"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 05 14:17:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 05 14:17:22 2010 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: ohci: fix race when reading count in AR descriptor\n  firewire: ohci: avoid reallocation of AR buffers\n  firewire: ohci: fix race in AR split packet handling\n  firewire: ohci: fix buffer overflow in AR split packet handling\n"
    },
    {
      "commit": "693fa7792e9db9f32da9436e633976fbacd04b55",
      "tree": "227078047db9c8f3497133769b1b9b1f7b681fa1",
      "parents": [
        "837596a61ba8f9bb53bb7aa27d17328ff9b2bcd5"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 25 11:43:05 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 30 23:37:20 2010 +0200"
      },
      "message": "firewire: ohci: fix race when reading count in AR descriptor\n\nIf the controller is storing a split packet and therefore changing\nd-\u003eres_count to zero between the two reads by the driver, we end up with\nan end pointer that is not at a packet boundary, and therefore overflow\nthe buffer when handling the split packet.\n\nTo fix this, read the field once, atomically.  The compiler usually\nmerges the two reads anyway, but for correctness, we have to enforce it.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "837596a61ba8f9bb53bb7aa27d17328ff9b2bcd5",
      "tree": "a9b2ba0d4382a1c0ad75182662570f61b5e03e57",
      "parents": [
        "a1f805e5e73a8fe166b71c6592d3837df0cd5e2e"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 25 11:42:42 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 30 23:37:20 2010 +0200"
      },
      "message": "firewire: ohci: avoid reallocation of AR buffers\n\nFreeing an AR buffer page just to allocate a new page immediately\nafterwards is not only a pointless effort but also dangerous because\nthe allocation can fail, which would result in an oops later.\n\nSplit ar_context_add_page() into two functions so that we can reuse\nthe old page directly.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a1f805e5e73a8fe166b71c6592d3837df0cd5e2e",
      "tree": "f8bc4a2d8d0bcaf4a1b7d4c547d7a2525459f852",
      "parents": [
        "85f7ffd5d2b320f73912b15fe8cef34bae297daf"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 25 11:42:20 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 30 23:37:19 2010 +0200"
      },
      "message": "firewire: ohci: fix race in AR split packet handling\n\nWhen handling an AR buffer that has been completely filled, we assumed\nthat its descriptor will not be read by the controller and can be\noverwritten.  However, when the last received packet happens to end at\nthe end of the buffer, the controller might not yet have moved on to the\nnext buffer and might read the branch address later.  If we overwrite\nand free the page before that, the DMA context will either go dead\nbecause of an invalid Z value, or go off into some random memory.\n\nTo fix this, ensure that the descriptor does not get overwritten by\nusing only the actual buffer instead of the entire page for reassembling\nthe split packet.  Furthermore, to avoid freeing the page too early,\nmove on to the next buffer only when some data in it guarantees that the\ncontroller has moved on.\n\nThis should eliminate the remaining firewire-net problems.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: 2.6.22-2.6.36 \u003cstable@kernel.org\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "85f7ffd5d2b320f73912b15fe8cef34bae297daf",
      "tree": "d9151979bb3834bd1254239a42247a668f059133",
      "parents": [
        "f6f94e2ab1b33f0082ac22d71f66385a60d8157f"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 25 11:41:53 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 30 23:37:19 2010 +0200"
      },
      "message": "firewire: ohci: fix buffer overflow in AR split packet handling\n\nWhen the controller had to split a received asynchronous packet into two\nbuffers, the driver tries to reassemble it by copying both parts into\nthe first page.  However, if size + rest \u003e PAGE_SIZE, i.e., if the yet\nunhandled packets before the split packet, the split packet itself, and\nany received packets after the split packet are together larger than one\npage, then the memory after the first page would get overwritten.\n\nTo fix this, do not try to copy the data of all unhandled packets at\nonce, but copy the possibly needed data every time when handling\na packet.\n\nThis gets rid of most of the infamous crashes and data corruptions when\nusing firewire-net.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: 2.6.22-2.6.36 \u003cstable@kernel.org\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (cast PAGE_SIZE to size_t)\n"
    },
    {
      "commit": "b7d41a9fbb364c67d91c3588e117eba547e2d4bf",
      "tree": "abf95ce77eaa8b7aed30fded4d3592b4af152a99",
      "parents": [
        "da47c19e5c746829042933c8f945a71e2b62d6fc",
        "66fa12c571d35e3cd62574c65f1785a460105397"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 08:05:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 08:05:29 2010 -0700"
      },
      "message": "Merge branch \u0027ieee1394-removal\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027ieee1394-removal\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  ieee1394: remove the old IEEE 1394 driver stack\n  ieee1394: move init_ohci1394_dma to drivers/firewire/\n\nFix trivial change/delete conflict: drivers/ieee1394/eth1394.c is\ngetting removed, but was modified by the networking merge.\n"
    },
    {
      "commit": "5f05647dd81c11a6a165ccc8f0c1370b16f3bcb0",
      "tree": "7851ef1c93aa1aba7ef327ca4b75fd35e6d10f29",
      "parents": [
        "02f36038c568111ad4fc433f6fa760ff5e38fab4",
        "ec37a48d1d16c30b655ac5280209edf52a6775d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 11:47:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 11:47:02 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1699 commits)\n  bnx2/bnx2x: Unsupported Ethtool operations should return -EINVAL.\n  vlan: Calling vlan_hwaccel_do_receive() is always valid.\n  tproxy: use the interface primary IP address as a default value for --on-ip\n  tproxy: added IPv6 support to the socket match\n  cxgb3: function namespace cleanup\n  tproxy: added IPv6 support to the TPROXY target\n  tproxy: added IPv6 socket lookup function to nf_tproxy_core\n  be2net: Changes to use only priority codes allowed by f/w\n  tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabled\n  tproxy: added tproxy sockopt interface in the IPV6 layer\n  tproxy: added udp6_lib_lookup function\n  tproxy: added const specifiers to udp lookup functions\n  tproxy: split off ipv6 defragmentation to a separate module\n  l2tp: small cleanup\n  nf_nat: restrict ICMP translation for embedded header\n  can: mcp251x: fix generation of error frames\n  can: mcp251x: fix endless loop in interrupt handler if CANINTF_MERRF is set\n  can-raw: add msg_flags to distinguish local traffic\n  9p: client code cleanup\n  rds: make local functions/variables static\n  ...\n\nFix up conflicts in net/core/dev.c, drivers/net/pcmcia/smc91c92_cs.c and\ndrivers/net/wireless/ath/ath9k/debug.c as per David\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "2198a10b501fd4443430cb17e065a9e859cc58c9",
      "tree": "87f3781d293da0f8f8f61615905eb7bf62b7c128",
      "parents": [
        "9941fb62762253774cc6177d0b9172ece5133fe1",
        "db5a753bf198ef7a50e17d2ff358adf37efe8648"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 21 08:43:05 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 21 08:43:05 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/core/dev.c\n"
    },
    {
      "commit": "aa0170fff3c26bf2b42159af2dd9cf86444c292a",
      "tree": "0a64674f2fa51883c66e96c743dd4c4e86d98a49",
      "parents": [
        "cd07202cc8262e1669edff0d97715f3dd9260917"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 17 14:09:12 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 17 14:09:12 2010 +0200"
      },
      "message": "firewire: ohci: fix TI TSB82AA2 regression since 2.6.35\n\nRevert commit 54672386ccf36ffa21d1de8e75624af83f9b0eeb\n\"firewire: ohci: fix up configuration of TI chips\".\nIt caused massive slow-down and data corruption with a TSB82AA2 based\nStarTech EC1394B2 ExpressCard and FireWire 800 harddisks.\n\nhttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/657081\nhttp://thread.gmane.org/gmane.linux.kernel.firewire.user/4013\n\nThe fact that some card EEPROMs do not program these enhancements may be\nrelated to TSB81BA3 phy chip errata, if not to bugs of TSB82AA2 itself.\nWe could re-add these configuration steps, but only conditional on a\nwhitelist of cards on which these enhancements bring a proven positive\neffect.\n\nReported-and-tested-by: Eric Shattow \u003clucent@gmail.com\u003e\nCc: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: \u003cstable@kernel.org\u003e 2.6.35\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "66fa12c571d35e3cd62574c65f1785a460105397",
      "tree": "b4f8de3d5ca827d2b134ed628628a7bff46967ca",
      "parents": [
        "1ef5b816c0eaf84f91106cfc0893069c49e86113"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 10 00:12:20 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Oct 11 14:48:03 2010 +0200"
      },
      "message": "ieee1394: remove the old IEEE 1394 driver stack\n\nThe drivers\n  - ohci1394 (controller driver)\n  - ieee1394 (core)\n  - dv1394, raw1394, video1394 (userspace ABI)\n  - eth1394, sbp2 (protocol drivers)\nare replaced by\n  - firewire-ohci (controller driver)\n  - firewire-core (core and userspace ABI)\n  - firewire-net, firewire-sbp2 (protocol drivers)\nwhich are more featureful, better performing, and more secure than the older\ndrivers; all with a smaller and more modern code base.\n\nThe driver firedtv in drivers/media/dvb/firewire/ contains backends to both\nieee1394 and firewire-core.  Its ieee1394 backend code can be removed in an\nindependent commit; firedtv as-is builds and works fine without ieee1394.\n\nThe driver pcilynx (an incomplete controller driver) is deleted without\nreplacement since PCILynx cards are extremely rare.  Owners of these cards\nuse them with the stand-alone bus sniffer driver nosy instead.\n\nThe drivers nosy and init_ohci1394_dma which do not interact with either of\nthe two IEEE 1394 stacks are not affected by the ieee1394 subsystem removal.\n\nThere are still some issues with the newer firewire subsystem compared to\nthe older one:\n  - The rare and quirky controllers ALi M52xx, Apple UniNorth v1, NVIDIA\n    NForce2 are even less well supported by firewire-ohci than by ohci1394.\n    I am looking into the M52xx issue.\n  - The experimental firewire-net is reportedly less stable than its\n    experimental cousin eth1394.\n  - Audio playback of a certain group of audio devices (ones based on DICE\n    chipset with EAP; supported by prerelease FFADO code) does not work yet.\n    This issue is still under investigation.\n  - There were some ieee1394 based out-of-the-mainline drivers.  Of them,\n    only lisight, an audio driver for iSight webcams, seems still useful.\n    Work is underway to reimplement it on top of firewire-core.\n\nAll these remainig issues are minor; they should not stand in the way of\noverall better user experience of IEEE 1394 on Linux, together with a\nreduction in support efforts and maintenance burden.  The coexistence of two\nIEEE 1394 kernel driver stacks in the mainline since 2.6.22 shall end now,\nas announced earlier this year.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1ef5b816c0eaf84f91106cfc0893069c49e86113",
      "tree": "5db2c91a18ce2aa40177c2c968b0ed5f15de251b",
      "parents": [
        "cb655d0f3d57c23db51b981648e452988c0223f9"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 10 00:54:02 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Oct 11 14:48:03 2010 +0200"
      },
      "message": "ieee1394: move init_ohci1394_dma to drivers/firewire/\n\nbecause drivers/ieee1394/ will be deleted.\n\nAdditional changes:\n  - add some #include directives\n  - adjust to use firewire/ohci.h instead of ieee1394/ohci1394.h,\n    replace struct ti_ohci by a minimal struct ohci,\n    replace quadlet_t from ieee1394_types.h by u32\n  - two or three trivial stylistic changes\n  - __iomem annotation\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "69259abb64d4da77273bf59accfc9fa79e7165f4",
      "tree": "bd043ab03a788b749c8d5ae4049d8defae9abf34",
      "parents": [
        "dd53df265b1ee7a1fbbc76bb62c3bec2383bbd44",
        "12e94471b2be5ef9b55b10004a3a2cd819490036"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 06 19:39:31 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 06 19:39:31 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/pcmcia/pcnet_cs.c\n\tnet/caif/caif_socket.c\n"
    },
    {
      "commit": "e548833df83c3554229eff0672900bfe958b45fd",
      "tree": "85efc4a76dc356593d6d394776aeb845dc580fb6",
      "parents": [
        "cbd9da7be869f676afc204e1a664163778c770bd",
        "053d8f6622701f849fda2ca2c9ae596c13599ba9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 09 22:27:33 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 09 22:27:33 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/mac80211/main.c\n"
    },
    {
      "commit": "970f4be85ae6ecf97b711a3a2a1d5cecd3ea0534",
      "tree": "4088ff5bf8d3d020ddfe53fdb6d4252ff3457914",
      "parents": [
        "a4dc090b6cb445257d2a8e44f85395ced6d1ed3e"
      ],
      "author": {
        "name": "Heikki Lindholm",
        "email": "holin@iki.fi",
        "time": "Mon Sep 06 22:30:45 2010 +0300"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Sep 08 21:25:55 2010 +0200"
      },
      "message": "firewire: ohci: activate cycle timer register quirk on Ricoh chips\n\nThe Ricoh FireWire controllers appear to have the non-atomic cycle\ntimer register access bug, so, activate the driver workaround by\ndefault.\n\nThe behaviour was observed on:\nRicoh Co Ltd R5C552 IEEE 1394 Controller [1180:0552] and\nRicoh Co Ltd R5C832 IEEE 1394 Controller [1180:0832] (rev 04).\n\nSigned-off-by: Heikki Lindholm \u003cholin@iki.fi\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a4dc090b6cb445257d2a8e44f85395ced6d1ed3e",
      "tree": "1cba172819b1395237adb69e34dfa469a63dbb68",
      "parents": [
        "2222bcb76790f4f61f39ec1514946a7593b07e02"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Aug 28 14:21:26 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Aug 29 09:17:31 2010 +0200"
      },
      "message": "firewire: ohci: work around VIA and NEC PHY packet reception bug\n\nVIA VT6306, VIA VT6308, and NEC OrangeLink controllers do not write\npacket event codes for received PHY packets (or perhaps write\nevt_no_status, hard to tell).  Work around it by overwriting the\npacket\u0027s ACK by ack_complete, so that upper layers that listen to PHY\npacket reception get to see these packets.\n\n(Also tested:  TI TSB82AA2, TI TSB43AB22/A, TI XIO2213A, Agere FW643,\nJMicron JMB381 --- these do not exhibit this bug.)\n\nClemens proposed a quirks flag for that, IOW whitelist known misbehaving\ncontrollers for this workaround.  Though to me it seems harmless enough\nto enable for all controllers.\n\nThe log_ar_at_event() debug log will continue to show the original\nstatus from the DMA unit.\n\nReported-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e (VT6308)\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "2222bcb76790f4f61f39ec1514946a7593b07e02",
      "tree": "f479ec53c083071d70935b51eb7adab844233779",
      "parents": [
        "1bf145fed572583d4cb7c1784689a0b42c997ba6"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed Aug 18 15:05:02 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Aug 19 20:28:25 2010 +0200"
      },
      "message": "firewire: core: do not use del_timer_sync() in interrupt context\n\nBecause we might be in interrupt context, replace del_timer_sync() with\ndel_timer().  If the timer is already running, we know that it will\nclean up the transaction, so we do not need to do any further processing\nin the normal transaction handler.\n\nMany thanks to Yong Zhang for diagnosing this.\n\nReported-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1bf145fed572583d4cb7c1784689a0b42c997ba6",
      "tree": "3ef524b2af2ea77f2ea99478b8a4058a8cf07d13",
      "parents": [
        "a481e97d3cdc40b9d58271675bd4f0abb79d4872"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 16 23:45:54 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Aug 19 20:28:25 2010 +0200"
      },
      "message": "firewire: net: fix unicast reception RCODE in failure paths\n\nThe incoming request hander fwnet_receive_packet() expects subsequent\ndatagram handling code to return non-zero on errors.  However, almost\nnone of the failure paths did so.  Fix them all.\n\n(This error reporting is used to send and RCODE_CONFLICT_ERROR to the\nsender node in such failure cases.  Two modes of failure exist:  Out of\nmemory, or firewire-net is unaware of any peer node to which a fragment\nor an ARP packet belongs.  However, it is unclear whether a sender can\nactually make use of such information.  A Linux peer apparently can\u0027t.\nMaybe it should all be simplified to void functions.)\n\nReported-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a481e97d3cdc40b9d58271675bd4f0abb79d4872",
      "tree": "c860d626fbee5f1fb2bc9511fa7fb3c586801c56",
      "parents": [
        "6c74340bce253ea95c9ee801b3c411a333937edf"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 16 22:13:34 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Aug 19 20:28:25 2010 +0200"
      },
      "message": "firewire: sbp2: fix stall with \"Unsolicited response\"\n\nFix I/O stalls with some 4-bay RAID enclosures which are based on\nOXUF936QSE:\n  - Onnto dataTale RSM4QO, old firmware (not anymore with current\n    firmware),\n  - inXtron Hydra Super-S LCM, old as well as current firmware\nwhen used in RAID-5 mode, perhaps also in other RAID modes.\n\nThe stalls happen during heavy or moderate disk traffic in periods that\nare a multiple of 5 minutes, roughly twice per hour.  They are caused\nby the target responding too late to an ORB_Pointer register write:\nThe target responds after Split_Timeout, hence firewire-core cancels\nthe transaction, and firewire-sbp2 fails the SCSI request.  The SCSI\ncore retries the request, that fails again (and again), hence SCSI core\ncalls firewire-sbp2\u0027s abort handler (and even the Management_Agent\nregister write in the abort handler has the transaction timeout\nproblem).\n\nDuring all that, the process which issued the I/O is stalled in I/O\nwait state.\n\nMeanwhile, the target actually acts on the first failed SCSI request:\nIt responds to the ORB_Pointer write later (seen in the kernel log as\n\"firewire_core: Unsolicited response\") and also finishes the SCSI\nrequest with proper status (seen in the kernel log as \"firewire_sbp2:\nstatus write for unknown orb\").\n\nSo let\u0027s just ignore RCODE_CANCELLED in the transaction callback and\nwait for the target to complete the ORB nevertheless.  This requires\na small modification is sbp2_cancel_orbs(); it now needs to call\norb-\u003ecallback() regardless whether fw_cancel_transaction() found the\ntransaction unfinished or finished.\n\nA different solution is to increase Split_Timeout on the local node.\n(Tested: 2000ms timeout; maybe 1000ms or something like that works too.\n200ms is insufficient.  Standard is 100ms.)  However, I rather not do\nthis because any software on any node could change the Split_Timeout to\nsomething unsuitable.  Or such a large Split_Timeout may be undesirable\nfor other purposes.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "6c74340bce253ea95c9ee801b3c411a333937edf",
      "tree": "4be487165cfc295cba5613094430248f6fb968e9",
      "parents": [
        "840fe6359c1db978d01fceb8a023f5f6efdf7f1c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 16 21:58:03 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Aug 19 20:28:25 2010 +0200"
      },
      "message": "firewire: sbp2: fix memory leak in sbp2_cancel_orbs or at send error\n\nWhen an ORB was canceled (Command ORB i.e. SCSI request timed out, or\nManagement ORB timed out), or there was a send error in the initial\ntransaction, we missed to drop one of the ORB\u0027s references and thus\nleaked memory.\n\nBackground:\nIn total, we hold 3 references to each Operation Request Block:\n  - 1 during sbp2_scsi_queuecommand() or sbp2_send_management_orb()\n    respectively,\n  - 1 for the duration of the write transaction to the ORB_Pointer or\n    Management_Agent register of the target,\n  - 1 for as long as the ORB stays within the lu-\u003eorb_list, until\n    the ORB is unlinked from the list and the orb-\u003ecallback was\n    executed.\n\nThe latter one of these 3 references is finished\n  - normally by sbp2_status_write() when the target wrote status\n    for a pending ORB,\n  - or by sbp2_cancel_orbs() in case of an ORB time-out,\n  - or by complete_transaction() in case of a send error.\nOf them, the latter two lacked the kref_put.\n\nAdd the missing kref_put()s.  Add comments to the gets and puts of\nreferences for transaction callbacks and ORB callbacks so that it is\neasier to see what is supposed to happen.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "01414802054c382072b6cb9a1bdc6e243c74b2d5",
      "tree": "f09b05eb9fff16a69d83ec28653992d1bae8d74c",
      "parents": [
        "bb8a10bbd10a45db0eb45bac520489bdbc0917ef"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Tue Aug 17 02:31:15 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 17 02:31:15 2010 -0700"
      },
      "message": "ethtool: Provide a default implementation of ethtool_ops::get_drvinfo\n\nThe driver name and bus address for a net_device can normally be found\nthrough the driver model now.  Instead of requiring drivers to provide\nthis information redundantly through the ethtool_ops::get_drvinfo\noperation, use the driver model to do so if the driver does not define\nthe operation.  Since ETHTOOL_GDRVINFO no longer requires the driver\nto implement any operations, do not require net_device::ethtool_ops to\nbe set either.\n\nRemove implementations of get_drvinfo and ethtool_ops that provide\nonly this information.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e78483c5aeb0d7fbb0e365802145f1045e62957e",
      "tree": "cc1c4733486f562b26ab812ce38ff8026da70007",
      "parents": [
        "9fe6206f400646a2322096b56c59891d530e8d51",
        "b20d02e37eeabf34b40c3995c2dbb0af53da3c57",
        "20802224298ce9dfd99a7e26b675fc0c8ae26cac"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 02 09:33:25 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 02 10:09:04 2010 +0200"
      },
      "message": "Merge firewire branches to be released post v2.6.35\n\nConflicts:\n\tdrivers/firewire/core-card.c\n\tdrivers/firewire/core-cdev.c\n\nand forgotten #include \u003clinux/time.h\u003e in drivers/firewire/ohci.c\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "20802224298ce9dfd99a7e26b675fc0c8ae26cac",
      "tree": "a00ead28ffc6b5032f1d83a22f7503fdc2c1f0ec",
      "parents": [
        "872e330e38806d835bd6c311c93ab998e2fb9058"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Aug 01 12:23:14 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 02 08:59:52 2010 +0200"
      },
      "message": "firewire: core: add forgotten dummy driver methods, remove unused ones\n\nThere is an at least theoretic race condition in which .start_iso etc.\ncould still be called between when the dummy driver is bound to the card\nand when the children devices are being shut down.  Add dummy_start_iso\nand friends.\n\nOn the other hand, .enable, .set_config_rom, .read_csr, write_csr do not\nneed to be implemented by the dummy driver, as commented.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "872e330e38806d835bd6c311c93ab998e2fb9058",
      "tree": "92497ce79b1157761b1aebdb63b8d74f68d42c15",
      "parents": [
        "ae2a97661482c1d0f1aa41b837da95054d0e9a1b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 18:19:22 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:09:18 2010 +0200"
      },
      "message": "firewire: add isochronous multichannel reception\n\nThis adds the DMA context programming and userspace ABI for multichannel\nreception, i.e. for listening on multiple channel numbers by means of a\nsingle DMA context.\n\nThe use case is reception of more streams than there are IR DMA units\noffered by the link layer.  This is already implemented by the older\nohci1394 + ieee1394 + raw1394 stack.  And as discussed recently on\nlinux1394-devel, this feature is occasionally used in practice.\n\nThe big drawbacks of this mode are that buffer layout and interrupt\ngeneration necessarily differ from single-channel reception:  Headers\nand trailers are not stripped from packets, packets are not aligned with\nbuffer chunks, interrupts are per buffer chunk, not per packet.\n\nThese drawbacks also cause a rather hefty code footprint to support this\nrarely used OHCI-1394 feature.  (367 lines added, among them 94 lines of\nadded userspace ABI documentation.)\n\nThis implementation enforces that a multichannel reception context may\nonly listen to channels to which no single-channel context on the same\nlink layer is presently listening to.  OHCI-1394 would allow to overlay\nsingle-channel contexts by the multi-channel context, but this would be\na departure from the present first-come-first-served policy of IR\ncontext creation.\n\nThe implementation is heavily based on an earlier one by Jay Fenlason.\nThanks Jay.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "ae2a97661482c1d0f1aa41b837da95054d0e9a1b",
      "tree": "d80b34cc5895c18af5e092ff7c56c1cefb0e1983",
      "parents": [
        "69e61d0c07fa28a05f699723a88d49e0014019b6"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 09:31:56 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:09:18 2010 +0200"
      },
      "message": "firewire: core: small clarifications in core-cdev\n\nMake a note on the seemingly unused linux/sched.h.\nRename an irritatingly named variable.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "69e61d0c07fa28a05f699723a88d49e0014019b6",
      "tree": "dc17f40f9765506b511b31a2a4afddc2f2c938c4",
      "parents": [
        "e5b06c077c592e7e1623641520787a3da7b7c6bf"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jul 28 23:49:45 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:06:25 2010 +0200"
      },
      "message": "firewire: core: remove unused code\n\nioctl_create_iso_context enforces ctx-\u003eheader_size \u003e\u003d 4.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e5b06c077c592e7e1623641520787a3da7b7c6bf",
      "tree": "92669edec5be2e06ed1b971e611a7683bb33ab75",
      "parents": [
        "071595ebdc66d70219e2d1ce746016f64b2b19e7"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jul 28 15:50:00 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:06:25 2010 +0200"
      },
      "message": "firewire: ohci: release channel in error path\n\nfirewire-ohci keeps book of which isochronous channels are occupied by\nIR DMA contexts, so that there cannot be more than one context listening\nto a certain channel.\n\nIf IR context creation failed due to an out-of-memory condition, this\nbookkeeping leaked a channel.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "071595ebdc66d70219e2d1ce746016f64b2b19e7",
      "tree": "3083b0de17a6d0633420ffda1dfa04a0b4b880b2",
      "parents": [
        "8e2b2b46ea4ca5ef790dddf78b360ed736a62d7c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 13:20:33 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:06:25 2010 +0200"
      },
      "message": "firewire: ohci: use memory barriers to order descriptor updates\n\nWhen we append to a DMA program, we need to ensure that the order in\nwhich initialization of the new descriptors and update of the\nbranch_address of the old tail descriptor, as seen by the PCI device,\nhappen as intended.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "9f6d3c4b76314c40c866a935d78c80fd284768bd",
      "tree": "ccb994e8ebe7a36b8bed804c79ce9f117455f041",
      "parents": [
        "aed69d2b79bb5af008526998e466da6d0eac7ae5"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:58:05 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:11 2010 +0200"
      },
      "message": "tools/firewire: add userspace front-end of nosy\n\nThis adds nosy-dump, the userspace part of nosy, the IEEE 1394 traffic\nsniffer for Texas Instruments PCILynx/ PCILynx2 based cards.  Author is\nKristian Høgsberg.\n\nThe files added here are taken from\ngit://anongit.freedesktop.org/~krh/nosy commit ee29be97 (2009-11-10)\nwith the following changes by Stefan Richter:\n  - Parts pertaining to the kernel module removed from Makefile.\n  - dist target removed from the Makefile.\n  - Mentioned nosy-dump in the Kconfig help to nosy\u0027s kernel component.\n  - Add copyright notice to nosy-dump.c.  This is a duplicate of the\n    respective notice in the kernel component nosy.c except for a time\n    span of 2002 - 2006, according to Kristian\u0027s git log.\n\n\"git shortlog decode-fcp.c list.h nosy-dump.[ch]\" from nosy\u0027s git\nrepository:\n\nJonathan Woithe (1):\n      Save logs on Ctrl-C\n\nKristian Høgsberg (11):\n      Pull over nosy from mercurial repo.\n      Remove some fields from default view, add logging feature.\n      Use infinite time out for poll(), mark more detail fields.\n      Fix byte ordering macro.\n      Add decoding of iso data and lock packets.\n      Add flag to indicate data length field.\n      Add cycle start packet decoding, add --iso and --cycle-start flags.\n      Distinguish between phy-packets and 0-length iso data.\n      Fix transaction and stats view.\n      Add simple AV/C decoder.\n      Don\u0027t break down on big payloads.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nAcked-by: Kristian Høgsberg \u003ckrh@bitplanet.net\u003e\n"
    },
    {
      "commit": "7429b17d30a19fd52a0c07de9d3959746d321e15",
      "tree": "2dc1e07547893ed804fd06b84eb24a86a38cc571",
      "parents": [
        "fd8c8d46ca9402c15383d2cf0bc3ee7740de3b62"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:11 2010 +0200"
      },
      "message": "firewire: nosy: use generic printk macros\n\nReplace home-grown printk wrapper macros by ones from kernel.h and\ndevice.h.\n\nAlso raise the log level in set_phy_reg() from debug to error because\nthese are really error conditions.  Could even be WARN_ON.  Lower the\nlog level in the device probe and driver shutdown from notice to info.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "fd8c8d46ca9402c15383d2cf0bc3ee7740de3b62",
      "tree": "66a33db3ea837f2fb6c66e077a9b5fae7009c3ba",
      "parents": [
        "c89db7b8bc88d8288dcfbe7a885b950d2560d564"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:11 2010 +0200"
      },
      "message": "firewire: nosy: endianess fixes and annotations\n\n1.)  The DMA programs (struct pcl) are PCI-endian \u003d little endian data\n(except for the 3rd quadlet in a PCL which the controller does not\ntouch).  Annotate them as such.\n\nFix all accesses of the PCL to work with big endian CPUs also.  Not\nactually tested, I only have a little endian PC to test with.  This\nincludes replacement of a bitfield struct pcl_status by open-coded\nshift and mask operations.\n\n2.)  The two __attribute__ ((packed)) at struct pcl are not really\nrequired since it consists of u32/__le32 only, i.e. there will be no\npadding with or without the attribute.\n\n3.)  The received IEEE 1394 data are byteswapped by the controller from\nIEEE 1394 endian \u003d big endian to PCI endian \u003d little endian because the\nPCL_BIGENDIAN control bit is set.  Therefore annotate the DMA buffer as\na __le32 array.\n\nFix the one access of the DMA buffer (the check of the transaction code\nof link packets) to work with big endian CPUs.  Also fix the two\naccesses of the client bounce buffer (the reading of packet length).\n\n4.)  Add a comment to the userspace ABI header that all of the data gets\nout as little endian data, except for the timestamp which is CPU endian.\n(We could make it little endian too, but why?  Vice versa, an ioctl\ncould be added to dump packet data in big endian byte order...)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c89db7b8bc88d8288dcfbe7a885b950d2560d564",
      "tree": "b6588c1c885f6219a55aff794681e39062408ad4",
      "parents": [
        "424d66cedae8bebb00fdb917fc8430f7b8a655cf"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:11 2010 +0200"
      },
      "message": "firewire: nosy: annotate __user pointers and __iomem pointers\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "424d66cedae8bebb00fdb917fc8430f7b8a655cf",
      "tree": "cd232df29974be404978d47a2257c9422272d304",
      "parents": [
        "b6d9c125e6610591c04ca9045f641e35ce1a9226"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:11 2010 +0200"
      },
      "message": "firewire: nosy: fix device shutdown with active client\n\nFix race between nosy_open() and remove_card() by replacing the\nunprotected array of card pointers by a mutex-protected list of cards.\n\nMake card instances reference-counted and let each client hold a\nreference.\n\nNotify clients about card removal via POLLHUP in poll()\u0027s events\nbitmap; also let read() fail with errno\u003dENODEV if the card was removed\nand everything in the buffer was read.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b6d9c125e6610591c04ca9045f641e35ce1a9226",
      "tree": "416672c79a3ee4b0764561ba5ebcf9ed3ba4d5c7",
      "parents": [
        "165476671f731b4c3d6cf401d0e1886f4a4f4a8e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: handle errors in device probe\n\nand add a missing pci_disable_device() to device shutdown.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "165476671f731b4c3d6cf401d0e1886f4a4f4a8e",
      "tree": "59bba3913c7bb3a023394bce86bb0ea79d95f1ed",
      "parents": [
        "55e77c06c6017a70630cf599770369b8ba07c841"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: fix IRQ handler for card ejection\n\nUntested, I don\u0027t have a PCILynx CardBus card.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "55e77c06c6017a70630cf599770369b8ba07c841",
      "tree": "5fe5940bd0e0326afad0898b521490b53c894adf",
      "parents": [
        "685c3f80b6d88478a6428676f9daab59faf3cd4b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: unroll some simple functions\n\nnosy_start/stop_snoop() and nosy_add/remove_client() are simple enough\nto be inlined into their callers.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "685c3f80b6d88478a6428676f9daab59faf3cd4b",
      "tree": "3f1f93927c0241ba12d887bcf7b90fc52d760884",
      "parents": [
        "a2d39db9dec0e7e403f54c9cf98b7dbc82b4c44a"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: use flagless variants of spinlock accessors\n\nnosy_start/stop_snoop() are always only called by the ioctl method, i.e.\nwith IRQs enabled.  packet_handler() and bus_reset_handler() are always\nonly called by the IRQ handler.  Hence neither one needs to track IRQ\nflags.\n\nTo underline the call context of packet_handler() and\nbus_reset_handler(), rename these functions to *_irq_handler().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a2d39db9dec0e7e403f54c9cf98b7dbc82b4c44a",
      "tree": "86e4e8447f83cefa4ae4809051fffad04b8229ef",
      "parents": [
        "c7b2a99c66e7b40d8843a70f2981e375eeedf062"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: fix list corruption by NOSY_IOC_STOP\n\nnosy_stop_snoop() would blow up the second time it was called without\nnosy_start_snoop() in between.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    }
  ],
  "next": "c7b2a99c66e7b40d8843a70f2981e375eeedf062"
}
