)]}'
{
  "log": [
    {
      "commit": "7889b60ee71eafaf50699a154a2455424bb92daa",
      "tree": "d5bb3a4d274bf186e32605284a34a36398475818",
      "parents": [
        "cbae787c0f288c3ad385ad4165ae30b5500a1f23"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:09:28 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:52 2009 +0100"
      },
      "message": "firewire: core: optimize propagation of BROADCAST_CHANNEL\n\nCache the test result of whether a device implements BROADCAST_CHANNEL.\nThis minimizes traffic on the bus after each bus reset.  A majority of\ndevices does not implement BROADCAST_CHANNEL.\n\nRemove busy retries; just rely on the hardware to retry requests to busy\nresponders.  Remove unnecessary log messages.\n\nRename the flag is_irm to broadcast_channel_allocated to better reflect\nits meaning.  Reset the flag earlier in fw_core_handle_bus_reset.\n\nPass the generation down as a call parameter; that way generation can\u0027t\nbe newer than card-\u003ebroadcast_channel_allocated and device-\u003enode_id.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "cbae787c0f288c3ad385ad4165ae30b5500a1f23",
      "tree": "89946d56640109660ddba5e90dc10ce5249cf265",
      "parents": [
        "e1dc7cab43619a2fbc90fd4cd712bd3fff703768"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:08:37 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:51 2009 +0100"
      },
      "message": "firewire: core: simplify broadcast channel allocation\n\nfw-iso.c has channel allocation code now, use it.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e1dc7cab43619a2fbc90fd4cd712bd3fff703768",
      "tree": "71c0868fbd395e7dd67e4add14aa5b247b9693ce",
      "parents": [
        "a38a00fdef98a8eda23a25e54490b32865bc7c33"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:07:46 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:51 2009 +0100"
      },
      "message": "firewire: core: increase bus manager grace period\n\nPer IEEE 1394 clause 8.4.2.5, bus manager capable nodes which are not\nincumbent shall wait at least 125ms before trying to establish\nthemselves as bus manager.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a38a00fdef98a8eda23a25e54490b32865bc7c33",
      "tree": "e62895872fc14e779ddfb8ed1eaee9b81bed67d9",
      "parents": [
        "18e9b10fcdc090d3a38606958167d5923c7099b7"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:07:06 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:51 2009 +0100"
      },
      "message": "firewire: core: drop unused call parameters of close_transaction\n\nAll callers inserted NULL and 0 here.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "18e9b10fcdc090d3a38606958167d5923c7099b7",
      "tree": "fd83055d908e8786afc9b3fbc791b57b2ba10c33",
      "parents": [
        "664d8010b170ae8b3ce9268b4f4da934d27b0491"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:02:21 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:50 2009 +0100"
      },
      "message": "firewire: cdev: add closure to async stream ioctl\n\nThis changes the as yet unreleased FW_CDEV_IOC_SEND_STREAM_PACKET ioctl\nto generate an fw_cdev_event_response event just like the other two\nioctls for asynchronous request transmission do.  This way, clients get\nfeedback on successful or unsuccessful transmission.\n\nThis also adds input validation for length, tag, channel, sy, speed.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "664d8010b170ae8b3ce9268b4f4da934d27b0491",
      "tree": "2e7f8e304267d0a925402dd0abf6f6a319c9a163",
      "parents": [
        "207fbefb18de9bc6f871e4008da29879c90cb67e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:01:54 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:50 2009 +0100"
      },
      "message": "firewire: cdev: simplify FW_CDEV_IOC_SEND_REQUEST return value\n\nThis changes the ioctl() return value of FW_CDEV_IOC_SEND_REQUEST and of\nthe as yet unreleased FW_CDEV_IOC_SEND_BROADCAST_REQUEST.  They used to\nreturn\n\tsizeof(struct fw_cdev_send_request *) + data_length\n\nwhich is obviously a failed attempt to emulate the return value of\nraw1394\u0027s respective interface which uses write() instead of ioctl().\n\nHowever, the first summand, as size of a kernel pointer, is entirely\nmeaningless to clients and the second summand is already known to\nclients.  And the result does not resemble raw1394\u0027s write() return\ncode anyway.\n\nSo simplify it to a constant non-negative value, i.e. 0.  The only\ndangers here would be that future client implementations check for error\nby ret !\u003d 0 instead of ret \u003c 0 when running on top of an old kernel; or\nthat current clients interpret ret \u003d 0 or more as failure.  But both are\nhypothetical cases which don\u0027t justify to return irritating values.\n\nWhile we touch this code, also remove \"\u0026 0x1f\" from tcode in the call of\nfw_send_request.  The tcode cannot be bigger than 0x1f at this point.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "207fbefb18de9bc6f871e4008da29879c90cb67e",
      "tree": "a1f24a4b814ee43ca3e8dffa290e3db84a68d5b9",
      "parents": [
        "de487da8ca5839d057e1f4b57ee3f387e180b800"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:01:08 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:50 2009 +0100"
      },
      "message": "firewire: cdev: fix race of ioctl_send_request with bus reset\n\nThe bus reset handler concurrently frees client-\u003edevice-\u003enode.  Use\ndevice-\u003enode_id instead.  This is equivalent to device-\u003enode-\u003enode_id\nwhile device-\u003egeneration is current.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "de487da8ca5839d057e1f4b57ee3f387e180b800",
      "tree": "92003bce782f3f1bf49183637d6dac6367c19dd0",
      "parents": [
        "c8a25900f35e575938c791507894c036c0f2ca7d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:00:23 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:50 2009 +0100"
      },
      "message": "firewire: cdev: secure add_descriptor ioctl\n\nThe access permissions and ownership or ACL of /dev/fw* character device\nfiles will typically be set based on the device type of the respective\nnodes, as obtained by firewire-core from descriptors in the device\u0027s\nconfiguration ROM.  An example policy is to deny write permission by\ndefault but grant write permission to files of AV/C video and audio\ndevices and IIDC video devices.\n\nThe FW_CDEV_IOC_ADD_DESCRIPTOR ioctl could be used to partly subvert\nsuch a policy:  Find a device file with relaxed permissions, use the\nioctl to add a descriptor with AV/C marker to the local node\u0027s ROM, thus\ngain access to the local node\u0027s character device file.  (This is only\npossible if there are udev scripts installed which actively relax\npermissions for known device types and if there is a device of such a\ntype connected.)\n\nAccessibility of the local node\u0027s device file is relevant to host\nsecurity if the host contains two or more IEEE 1394 link layer\ncontrollers which are plugged into a single bus.\n\nTherefore change the ABI to deny FW_CDEV_IOC_ADD_DESCRIPTOR if the file\nbelongs to a remote node.  (This change has no impact on known\nimplementers of the ABI:  None of them uses the ioctl yet.)\n\nAlso clarify the documentation:  The ioctl affects all local nodes, not\njust one local node.\n\nCc: stable@kernel.org\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c8a25900f35e575938c791507894c036c0f2ca7d",
      "tree": "e413f9e098dea94c74fd0aab35a511800043c97b",
      "parents": [
        "6104ee92d62ea3638b67494fcf061cb4b9b9d518"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 20:59:16 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:49 2009 +0100"
      },
      "message": "firewire: cdev: amendment to \"add ioctl to query maximum transmission speed\"\n\nThe as yet unreleased FW_CDEV_IOC_GET_SPEED ioctl puts only a single\ninteger into the parameter buffer.  We can use ioctl()\u0027s return value\ninstead.\n\n(Also: Some whitespace change in firewire-cdev.h.)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "6104ee92d62ea3638b67494fcf061cb4b9b9d518",
      "tree": "899549d281a47f6aaae7a1645b5cb7d882f8e194",
      "parents": [
        "f8c2287c65f8f72000102fc058232669e4540bc4"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Mon Feb 23 15:59:34 2009 -0500"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:49 2009 +0100"
      },
      "message": "firewire: broadcast channel support\n\nThis patch adds the ISO broadcast channel support that is required of a\n1394a IRM.  In specific, if the local device the IRM, it allocates ISO\nchannel 31 and sets the broadcast channel register of all devices on the\nlocal bus to BROADCAST_CHANNEL_INITIAL | BROADCAST_CHANNEL_VALID to indicate\nthat channel 31 can be use for broadcast messages.\n\nOne minor complication is that on startup the local device may become IRM\nbefore all the devices on the bus have been enumerated by the stack.  Therefore\nwe have to keep a \"the local device is IRM\" flag and possibly set the\nbroadcast channel register of new devices at enumeration time.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "f8c2287c65f8f72000102fc058232669e4540bc4",
      "tree": "a82393fbdd3a2b20f8e499537b10eb9e61dae941",
      "parents": [
        "ba27e1f7bf220799cd3d7503f82bda71b8ebe8c5"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Thu Mar 05 19:08:40 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:49 2009 +0100"
      },
      "message": "firewire: implement asynchronous stream transmission\n\nAllow userspace and other firewire drivers (fw-ipv4 I\u0027m looking at\nyou!) to send Asynchronous Transmit Streams as described in 7.8.3 of\nrelease 1.1 of the 1394 Open Host Controller Interface Specification.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (tweaks)\n"
    },
    {
      "commit": "ba27e1f7bf220799cd3d7503f82bda71b8ebe8c5",
      "tree": "0d08f399eae860e112f3031a09be674c679d9189",
      "parents": [
        "e1eff7a393d4a4e3ad1cf65fcba899146840bfd2"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Mar 05 19:07:00 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:48 2009 +0100"
      },
      "message": "firewire: core: normalize a function argument name\n\nIt\u0027s called \"payload\" rather than \"data\" almost everywhere in\nfw-transaction.c.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e1eff7a393d4a4e3ad1cf65fcba899146840bfd2",
      "tree": "88a040babea1853f40072ed199a78b60f4dcb387",
      "parents": [
        "d01b01787680a1156ff6a554e40baa460bb88efb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Feb 03 17:55:19 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:48 2009 +0100"
      },
      "message": "firewire: normalize a variable name\n\nStandardize on  if (err)\n                        handle_error;\n           and  if (ret \u003c 0)\n                        handle_error;\n\nDon\u0027t call a variable err if we store values in it which mean success.\nAlso, offset some return statements by a blank line since this how we do\nit in drivers/firewire.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d01b01787680a1156ff6a554e40baa460bb88efb",
      "tree": "b4ccc2860654a358e26216cee52d94ee00f57e49",
      "parents": [
        "aed808927410d0b1d80378492059f22a46974267"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 17 22:45:54 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:47 2009 +0100"
      },
      "message": "firewire: core: remove condition which is always false\n\nreread_bus_info_block() only gets to see devices whose config_rom_length\nis at least 6 (ROM header, bus info block, root directory header).\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "aed808927410d0b1d80378492059f22a46974267",
      "tree": "faad596a85c99c90fa1988bc891dad9b15e9bca6",
      "parents": [
        "41f321c2ecf416f9dcf76de989e9059fd699c8c1"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 17 22:45:54 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:47 2009 +0100"
      },
      "message": "firewire: core: move some functions\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "41f321c2ecf416f9dcf76de989e9059fd699c8c1",
      "tree": "a2b569521ec178be36bc610811b6d4c86faec3af",
      "parents": [
        "81610b8fbfc027a67707ff567d490819a3d55844"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 17 22:45:54 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:47 2009 +0100"
      },
      "message": "firewire: core: clean up includes\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "81610b8fbfc027a67707ff567d490819a3d55844",
      "tree": "b828ef4868938534fb17d75659246715179a29f5",
      "parents": [
        "5d9cb7d276a9c465fef5a771792eac2cf1929f2b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 11 13:44:46 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:46 2009 +0100"
      },
      "message": "firewire: cdev: simplify a schedule_delayed_work wrapper\n\nThe kernel API documentation says that queue_delayed_work() returns 0\n(only) if the work was already queued.  The return codes of\nschedule_delayed_work() are not documented but the same.\n\nIn init_iso_resource(), the work has never been queued yet, hence we\ncan assume schedule_delayed_work() to be a guaranteed success there.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5d9cb7d276a9c465fef5a771792eac2cf1929f2b",
      "tree": "46fb54d0e462debe4016830ee1fa9f7292fb511b",
      "parents": [
        "77258da403be4cfce84b6abcdb515ad0bd1f92f1"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jan 08 23:07:40 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:46 2009 +0100"
      },
      "message": "firewire: cdev: add ioctls for iso resource management, amendment\n\nSome fixes:\n  - Remove stale documentation.\n  - Fix a !\u003d vs. \u003d\u003d thinko that got in the way of channel management.\n  - Try bandwidth deallocation even if channel deallocation failed.\n\nA simplification:\n  - fw_cdev_allocate_iso_resource.channels is now ordered like\n    libdc1394\u0027s dc1394_iso_allocate_channel() channels_allowed\n    argument.\n\nBy the way, I looked closer at cards from NEC, TI, and VIA, and noticed\nthat they all don\u0027t implement IEEE 1394a behaviour which is meant to\ndeviate from IEEE 1212\u0027s notion of lock compare-swap.  This means that\nwe have to do two lock transactions instead of one in many cases where\none transaction would already succeed on a fully 1394a compliant IRM.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "36a755cfc398fc50abc74055d4478c1b067dac55",
      "tree": "fbf8208d5b0314ee9b523a9edaf0b3343e4add39",
      "parents": [
        "3ba949868a6dc082b24cba5c3bf3f50de7391433"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jan 05 20:28:10 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:46 2009 +0100"
      },
      "message": "firewire: cdev: shut down iso context before freeing the buffer\n\nDMA must be halted before we DMA-unmap and free the DMA buffer.  Since\nwe cannot rely on the client to stop the context before it closes the\nfd, we have to reorder fw_iso_buffer_destroy vs. fw_iso_context_destroy.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "3ba949868a6dc082b24cba5c3bf3f50de7391433",
      "tree": "67111ee78f57bae142182a43b5193802c1183d22",
      "parents": [
        "5d3fd692a7196a9045fb606f891f5987959b65a0"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:45 2009 +0100"
      },
      "message": "firewire: cdev: replace some spin_lock_irqsave by spin_lock_irq\n\nAll of these functions are entered with IRQs enabled.\nHence the unconditional spin_unlock_irq can be used.\n\nFunction:                  Caller context:\n    dequeue_event()            client process, via read(2)\n    fill_bus_reset_event()     fw-device.c update worqueue job\n    release_client_resource()  client process, via ioctl(2)\n    fw_device_op_release()     client process, via close(2)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5d3fd692a7196a9045fb606f891f5987959b65a0",
      "tree": "f5dd0b2db4171ea05c70035e29b2cc7ff7f82850",
      "parents": [
        "1566f3dc3e5986a16c7bbb3bb95bb691251a8d25"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:45 2009 +0100"
      },
      "message": "firewire: cdev: extend transaction payload size check\n\nMake the size check of ioctl_send_request and\nioctl_send_broadcast_request speed dependent.  Also change the error\nreturn code from -EINVAL to -EIO to distinguish this from other errors\nconcerning the ioctl parameters.\n\nAnother payload size limit for which we don\u0027t check here though is the\nremote node\u0027s Bus_Info_Block.max_rec.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1566f3dc3e5986a16c7bbb3bb95bb691251a8d25",
      "tree": "3a6a5f6c29cbd9d71354fede1e6da69273ec803d",
      "parents": [
        "acfe8333572cad5dc70fce18ac966be0446548d7"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:45 2009 +0100"
      },
      "message": "firewire: cdev: restrict broadcast write requests to Units Space\n\nWe don\u0027t want random users write to Memory Space (e.g. PCs with physical\nDMA filters down) or to core CSRs like Reset_Start.\n\nThis does not protect SBP-2 target CSRs.  But properly behaving SBP-2\ntargets ignore broadcast write requests to these registers, and the\nmaximum damage which can happen with laxer targets is DOS.  But there\nare ways to create DOS situations anyway if there are devices with weak\ndevice file permissions (like audio/video devices) present at the same\nbus as an SBP-2 target.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "acfe8333572cad5dc70fce18ac966be0446548d7",
      "tree": "7402f2c6759465c351d735855990620e24a644e2",
      "parents": [
        "33580a3ef5ba3bc0ee1b520df82a24bb37ce28f0"
      ],
      "author": {
        "name": "Jay Fenlason, Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:44 2009 +0100"
      },
      "message": "firewire: cdev: add ioctl for broadcast write requests\n\nWrite transactions to the broadcast node ID are a convenient way to\ntrigger functions of multiple nodes at once.  IIDC is a protocol which\ncan make use of this if multiple cameras with same command_regs_base are\nconnected at the same bus.\n\nBased on\n    Date: Wed, 10 Sep 2008 11:32:16 -0400\n    From: Jay Fenlason \u003cfenlason@redhat.com\u003e\n    Subject: [patch] SEND_BROADCAST_REQUEST\nChanges:  ioctl_send_request() and ioctl_send_broadcast_request() now\nshare code.  Broadcast speed corrected to S100.  Check for proper tcode.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "33580a3ef5ba3bc0ee1b520df82a24bb37ce28f0",
      "tree": "3bd567d8c5244a049eef32147f4fb84f6a19a184",
      "parents": [
        "1ec3c0269d7196118cc7c403654ca5f19ef4d584"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:44 2009 +0100"
      },
      "message": "firewire: cdev: add ioctl to query maximum transmission speed\n\nWhile the speed of asynchronous transactions is automatically chosen by\nthe kernel, the speed of isochronous streams has to be chosen by the\ninitiating client.\n\nIn case of 1394a bus topologies, the maximum possible speed could be\nfigured out with some effort by evaluation of the remote node\u0027s link\nspeed field in the config ROM, the local node\u0027s link speed field, and\nthe PHY speeds and topologic information in the local node\u0027s or IRM\u0027s\ntopology map CSR.  However, this does not work in case of 1394b buses.\n\nHence add an ioctl to export the maximum speed which the kernel already\ndetermined.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1ec3c0269d7196118cc7c403654ca5f19ef4d584",
      "tree": "087bdf8db274f29f92762adf0ed6cef1bae2ce5d",
      "parents": [
        "b1bda4cdc2037447bd66753bf5ccab66d91b0b59"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:44 2009 +0100"
      },
      "message": "firewire: cdev: add ioctls for manual iso resource management\n\nThis adds ioctls for allocation and deallocation of a channel or/and\nbandwidth without auto-reallocation and without auto-deallocation.\n\nThe benefit of these ioctls is that libraw1394-style isochronous\nresource management can be implemented without write access to the IRM\u0027s\ncharacter device file.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b1bda4cdc2037447bd66753bf5ccab66d91b0b59",
      "tree": "6aae47fb85125c15150d6d306354de5deb1e316f",
      "parents": [
        "b769bd17656f991c5588c676376e5ec77d25997a"
      ],
      "author": {
        "name": "Jay Fenlason, Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:43 2009 +0100"
      },
      "message": "firewire: cdev: add ioctls for isochronous resource management\n\nBased on\n    Date: Tue, 18 Nov 2008 11:41:27 -0500\n    From: Jay Fenlason \u003cfenlason@redhat.com\u003e\n    Subject: [Patch V4] Add ISO resource management support\nwith several changes to the ABI and implementation.  Only the part of\nthe ABI which enables auto-reallocation and auto-deallocation is\nincluded here.\n\nThis implements ioctls for kernel-assisted allocation of isochronous\nchannels and isochronous bandwidth.  The benefits are:\n  - The client does not have to have write access to the /dev/fw* device\n    corresponding to the IRM.\n  - The client does not have to perform reallocation after bus resets.\n  - Channel and bandwidth are deallocated by the kernel if the file is\n    closed before the client deallocated the resources.  Thus resources\n    are released even if the client crashes.\n\nIt is anticipated that future in-kernel code (firewire-core IRM code;\nthe firewire port of firedtv), will use the fw-iso.c portions of this\ncode too.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nTested-by: David Moore \u003cdcm@acm.org\u003e\n"
    },
    {
      "commit": "b769bd17656f991c5588c676376e5ec77d25997a",
      "tree": "6f637a16cde9a88b763226b4dbb7adf3f4ccfe91",
      "parents": [
        "be5bbd6756b44602a3f281af05c2f416fa9bd1c6"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:43 2009 +0100"
      },
      "message": "firewire: core: topology header fix\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "be5bbd6756b44602a3f281af05c2f416fa9bd1c6",
      "tree": "1b22ed8b6135f2cbf058c508bb1ffb8cfcbceb1d",
      "parents": [
        "97c18b7fd6df4ae0d32509f292a2eb0d4b26d623"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:43 2009 +0100"
      },
      "message": "firewire: cdev: sort includes\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "97c18b7fd6df4ae0d32509f292a2eb0d4b26d623",
      "tree": "bd8f79c6577bd57a09275988e01ac7ea783f9d08",
      "parents": [
        "fb4430367b0bbee2420132faf16c7c762a39c0bb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:43 2009 +0100"
      },
      "message": "firewire: cdev: unify names of struct types and of their instances\n\nto indicate that they are specializations of struct event or of struct\nclient_resource, respectively.\n\nstruct response was both an event and a client_resource; it is now split\ninto struct outbound_transaction_resource and ~_event in order to\ndocument more explicitly which types of client resources exist.\n\nstruct request and struct_request_event are renamed to struct\ninbound_transaction_resource and ~_event because requests and responses\noccur in outbound and in inbound transactions.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "fb4430367b0bbee2420132faf16c7c762a39c0bb",
      "tree": "d5def952cdb381863d7a2b7eb0e421d7757c7d4d",
      "parents": [
        "632321ecd99bf85c982a75f8329b4ecbb95b3a8f"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:42 2009 +0100"
      },
      "message": "firewire: cdev: reference-count client instances\n\nThe lifetime of struct client instances must be longer than the lifetime\nof any client resource.\n\nThis fixes a possible race between fw_device_op_release and transaction\ncompletions.  It also prepares for new ioctls for isochronous resource\nmanagement which will involve delayed processing of client resources.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nReviewed-by: David Moore \u003cdcm@acm.org\u003e\n"
    },
    {
      "commit": "4817ed240232e89583b0506c2d8e426739af5da3",
      "tree": "95d8220f1cae2df2490488dd35381c7d73a5be7b",
      "parents": [
        "a459b8ab9c176143fecef8ace4b70d6dbd7a8113"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 21 16:39:46 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:41 2009 +0100"
      },
      "message": "firewire: prevent creation of multiple IR DMA contexts for the same channel\n\nOHCI-1394 1.1 clause 10.4.3 says:  \"If more than one IR DMA context\nspecifies receives for packets from the same isochronous channel, the\ncontext destination for that channel\u0027s packets is undefined.\"\n\nAny userspace client and in the future also kernelspace clients can\nallocate IR DMA contexts for any channel.  We don\u0027t want them to\ninterfere with each other, hence it is preferable to return -EBUSY if\nallocation of a second context for a channel is attempted.\n\nNotes:\n  - This limitation is OHCI-1394 specific, therefore its proper place of\n    implementation is down in the low-level driver.\n\n  - Since the \u003clinux/firewire-cdev.h\u003e ABI simply maps one userspace iso\n    client context to one hardware iso context, this OHCI-1394\n    limitation alas requires userspace to implement its own multiplexing\n    of iso reception from the same channel and card to multiple clients\n    when needed.\n\n  - The limitation is independent of channel allocation at the IRM; the\n    latter is really only important for the initiation of iso \n    transmission but not of iso reception.\n\n  - We don\u0027t need to do the same for IT DMA because OHCI-1394 does not\n    have any ties between IT contexts and channels.  Only the voluntary\n    channel allocation protocol via the IRM, globally to the FireWire\n    bus, can ensure proper isochronous transmit behaviour anyway.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a459b8ab9c176143fecef8ace4b70d6dbd7a8113",
      "tree": "2c1faebb488f692b8f0bb7d075cb347099851164",
      "parents": [
        "da62df141e3f879445e3daef36bd3a12c90841e2"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 21 16:49:57 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:41 2009 +0100"
      },
      "message": "firewire: cdev: use list_first_entry\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "da62df141e3f879445e3daef36bd3a12c90841e2",
      "tree": "d359d9c0d34145e5e42d2e805c9bd52f651ab045",
      "parents": [
        "53dca51175cc2f66d21aeb1e70146cca65c53dad"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 21:47:36 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:40 2009 +0100"
      },
      "message": "firewire: core: remove unused definitions\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "53dca51175cc2f66d21aeb1e70146cca65c53dad",
      "tree": "da729da20cc4ca1cb994fa6659be7f23259f7097",
      "parents": [
        "2dbd7d7e2327b0c2cc4e2de903e1cfa19980a504"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 21:47:04 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:40 2009 +0100"
      },
      "message": "firewire: remove line breaks before function names\n\ntype\n    function_name(parameters);\n\nis nice to look at but was not used consistently.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "2dbd7d7e2327b0c2cc4e2de903e1cfa19980a504",
      "tree": "c0efb5bbd26bc2e18a61bf44d0c53db9494a096c",
      "parents": [
        "c490a6dec6cc1b7f0eab56b9fbd565129b3dea2e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 21:45:45 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:39 2009 +0100"
      },
      "message": "firewire: standardize a variable name\n\n\"ret\" is the new \"retval\".\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c490a6dec6cc1b7f0eab56b9fbd565129b3dea2e",
      "tree": "1b177202b9c8d04f52e8a06572c67b139613c879",
      "parents": [
        "44be21b63e0c551df21253540b7f216f0d18928e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 21:45:14 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:39 2009 +0100"
      },
      "message": "firewire: core: remove obsolete assertions\n\nThis code never changes.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "44be21b63e0c551df21253540b7f216f0d18928e",
      "tree": "3ebabb3763d54537ccfc14262690996a4161cfa0",
      "parents": [
        "3e0b5f0d7cb5fef402517e41eebff5a0f0e65a13"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 19:21:31 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:39 2009 +0100"
      },
      "message": "firewire: core: remove outdated comment\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "3e0b5f0d7cb5fef402517e41eebff5a0f0e65a13",
      "tree": "b712284afebff56dd2e104242f4e6665aaf6c8e4",
      "parents": [
        "45ee3199eb3e4233b755a9bb353a0527a4c58b5f"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 19:21:01 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:38 2009 +0100"
      },
      "message": "firewire: cdev: address handler input validation\n\nLike before my commit 1415d9189e8c59aa9c77a3bba419dcea062c145f,\nfw_core_add_address_handler() does not align the address region now.\nInstead the caller is required to pass valid parameters.\n\nSince one of the callers of fw_core_add_address_handler() is the cdev\nuserspace interface, we now check for valid input.  If the client is\nbuggy, we give it a hint with -EINVAL.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "45ee3199eb3e4233b755a9bb353a0527a4c58b5f",
      "tree": "4fa2ab6e54af7cb6aceab1cea1b5676836644841",
      "parents": [
        "97811e347310766030a648fdf0e407b2c91a39c1"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Sun Dec 21 16:47:17 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:38 2009 +0100"
      },
      "message": "firewire: cdev: use an idr rather than a linked list for resources\n\nThe current code uses a linked list and a counter for storing\nresources and the corresponding handle numbers.  By changing to an idr\nwe can be safe from counter wrap-around giving two resources the same\nhandle.\n\nFurthermore, the deallocation ioctls now check whether the resource to\nbe freed is of the intended type.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\n\nSome rework by Stefan R:\n  - The idr API documentation says we get an ID within 0...0x7fffffff.\n    Hence we can rest assured that idr handles fit into cdev handles.\n  - Fix some races.  Add a client-\u003ein_shutdown flag for this purpose.\n  - Add allocation retry to add_client_resource().\n  - It is possible to use idr_for_each() in fw_device_op_release().\n  - Fix ioctl_send_response() regression.\n  - Small style changes.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "97811e347310766030a648fdf0e407b2c91a39c1",
      "tree": "61710722bac7ffd91915e09f42e0412727bba53b",
      "parents": [
        "1f3125af8ed7410cc0ebcc0acd59bbfc1ae0057a"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 19:19:23 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:38 2009 +0100"
      },
      "message": "firewire: cdev: fix race of fw_device_op_release with bus reset\n\nUnlink the client from the fw_device earlier in order to prevent bus\nreset events being added to client-\u003eevent_list during shutdown.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1f3125af8ed7410cc0ebcc0acd59bbfc1ae0057a",
      "tree": "3e0cd754d86b8780b164bd507564fd2355c7db29",
      "parents": [
        "bf8e3355ec8f4e472f9841e94203cd759b45226e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Dec 05 22:44:42 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:37 2009 +0100"
      },
      "message": "firewire: cdev: tcodes input validation\n\nThe behaviour of fw-transaction.c::fw_send_request is ill-defined for\nany other tcodes than read/ write/ lock request tcodes.  Therefore\nprevent requests with wrong tcodes from entering the transaction layer.\n\nMaybe fw_send_request should check them itself, but I am not inclined to\nchange it and fw_fill_request from void-valued functions to ones which\nreturn error codes and pass those up.  Besides, maybe fw_send_request is\ngoing to support one more tcode than ioctl_send_request in the future\n(TCODE_STREAM_DATA).\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d67cfb9613f373d76daa2c8d209629601424ca12",
      "tree": "64d5633a8531fd1b978bef2104c6eee5303d3d8c",
      "parents": [
        "cf417e5494582453c033d8cac9e1352e74215435"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 05 10:37:11 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:37 2009 +0100"
      },
      "message": "firewire: convert client_list_lock to mutex\n\nSo far it is only taken in non-atomic contexts.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "cf417e5494582453c033d8cac9e1352e74215435",
      "tree": "a1681ef863c8c4219506e16b7982e51dc0718387",
      "parents": [
        "1aa292bb1c53500e3ab570b955d03afa97a9404d"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Fri Oct 03 11:19:09 2008 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:36 2009 +0100"
      },
      "message": "firewire: add a client_list_lock\n\nThis adds a client_list_lock, which only protects the device\u0027s\nclient_list, so that future versions of the driver can call code that\ntakes the card-\u003elock while holding the client_list_lock.  Adding this\nlock is much simpler than adding __ versions of all the functions that\nthe future version may need.  The one ordering issue is to make sure\ncode never takes the client_list_lock with card-\u003elock held.  Since\nclient_list_lock is only used in three places, that isn\u0027t hard.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\n\nUpdate fill_bus_reset_event() accordingly.  Include linux/spinlock.h.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1aa292bb1c53500e3ab570b955d03afa97a9404d",
      "tree": "738675d2cd801012b6626628223c2a20c6e5d352",
      "parents": [
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "David Moore",
        "email": "dcm@acm.org",
        "time": "Tue Jul 22 23:23:40 2008 -0700"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:35 2009 +0100"
      },
      "message": "firewire: Include iso timestamp in headers when header_size \u003e 4\n\nPreviously, when an iso context had header_size \u003e 4, the iso header\n(len/tag/channel/tcode/sy) was passed to userspace followed by quadlets\nstripped from the payload.  This patch changes the behavior:\nheader_size \u003d 8 now passes the header quadlet followed by the timestamp\nquadlet.  When header_size \u003e 8, quadlets are stripped from the payload.\nThe header_size \u003d 4 case remains identical.\n\nSince this alters the semantics of the API, the firewire API version\nneeds to be bumped concurrently with this change.\n\nThis change also refactors the header copying code slightly to be much\neasier to read.\n\nSigned-off-by: David Moore \u003cdcm@acm.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b7479febdecf8e12951aecb0b405e4655aa3dae6",
      "tree": "ccc9c5c692a6e515194a190d9efd184faa610a1e",
      "parents": [
        "1448d7c6a2ff96d3b52ecae49e2d0f046a097fe0"
      ],
      "author": {
        "name": "Petr Vandrovec",
        "email": "petr@vandrovec.name",
        "time": "Sun Feb 01 01:29:35 2009 -0800"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 01 11:17:24 2009 +0100"
      },
      "message": "firewire: core: Remove card from list of cards when enable fails\n\nSigned-off-by: Petr Vandrovec \u003cpetr@vandrovec.name\u003e\n\nAfter a controller initialization failure, addition of another card got\nstuck due to card_list corruption.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c8c4707cf7ca8ff7dcc1653447e48cb3de0bf114",
      "tree": "ec762cadd6708c5fb309e53dab6763c14b6f822c",
      "parents": [
        "5e2125677fd72d36396cc537466e07ffcbbd4b2b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jan 29 00:11:59 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jan 29 20:19:48 2009 +0100"
      },
      "message": "firewire: sbp2: add workarounds for 2nd and 3rd generation iPods\n\nAccording to https://bugs.launchpad.net/bugs/294391\n  - 3rd generation iPods need the \"fix capacity\" workaround after all\n    (apparently they crash after the last sector was accessed),\n  - 2nd generation iPods need the \"128 kB maximum request size\"\n    workaround.\n\nAlas both iPod generations feature the same model ID in the config ROM,\nhence we can only define a shared quirks list entry for them.  Luckily\nthe fix capacity workaround did not show a negative effect in Jarod\u0027s\ntests with 2nd gen. iPod.\n\nA side note:  Apple computers in target mode (or at least an x86 Mac\nmini) don\u0027t have firmware_version and model_id, hence none of the iPod\nquirks list entries is active for them.\n\nTested-by: Jarod Wilson \u003cjarod@redhat.com\u003e\nAcked-by: Jarod Wilson \u003cjarod@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5e2125677fd72d36396cc537466e07ffcbbd4b2b",
      "tree": "ad20a0cf11e5cafa83064412ccf91c05baba6e2e",
      "parents": [
        "f746072abc12d0e10ecd7847f1846157fde15987"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jan 28 01:03:34 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jan 28 20:31:08 2009 +0100"
      },
      "message": "firewire: sbp2: fix DMA mapping leak on the failure path\n\nReported-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nwho also provided a first version of the fix.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "f746072abc12d0e10ecd7847f1846157fde15987",
      "tree": "b58abd8312e1fe845f99aaa6a6071d1d04cd6d24",
      "parents": [
        "a08e100aece16e33a45b82924ad85f4066c4ed1c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 24 19:41:46 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jan 28 20:31:07 2009 +0100"
      },
      "message": "firewire: sbp2: define some magic numbers as macros\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a08e100aece16e33a45b82924ad85f4066c4ed1c",
      "tree": "7d231251c6b8abdf14614098954f49c6cb5843f6",
      "parents": [
        "c1fbdd78517a9323ea5f5767c8ceb10aabc40fc2"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 24 19:41:46 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jan 28 20:31:07 2009 +0100"
      },
      "message": "firewire: sbp2: fix payload limit at S1600 and S3200\n\n1394-2008 clause 16.3.4.1 (1394b-2002 clause 16.3.1.1) defines tighter\nlimits than 1394-2008 clause 6.2.2.3 (1394a-2000 clause 6.2.2.3).\n\nOur previously too large limit doesn\u0027t matter though if the controller\nreports its max_receive correctly.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e747a5c0be3efe5465e45c8e326bc766b1288be6",
      "tree": "a9abc47b46e079e38f4477f858dd6ddd791c546c",
      "parents": [
        "64c634ef83991b390ec0503e61f16efb0ba3c60b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 24 20:35:38 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 24 20:40:12 2009 +0100"
      },
      "message": "firewire: core: optimize card shutdown\n\nThis fixes a regression by \"firewire: keep highlevel drivers attached\nduring brief connection loss\":  There were 2 seconds unnecessary waiting\nadded to the shutdown procedure of each controller.\n\nWe use card-\u003elink as status flag to signal the device handler that there\nis no use to wait for a come-back.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8b7b6afaa84708d08139daa08538ca3e56c351f1",
      "tree": "91b1d27a08f6e28c13f8163cc2dfbba4022029f0",
      "parents": [
        "b006854955254a971096c120d4ef115a7c6145fb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 20 19:10:58 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 24 11:17:27 2009 +0100"
      },
      "message": "firewire: ohci: increase AT req. retries, fix ack_busy_X from Panasonic camcorders and others\n\nCamcorders have a tendency to fail read requests to their config ROM and\nwrite request to their FCP command register with ack_busy_X.  This has\nbecome a problem with newer kernels and especially Panasonic camcorders,\ncausing AV/C in dvgrab and kino to fail.  Dvgrab for example frequently\nlogs \"send oops\"; kino reports loss of AV/C control.  I suspect that\nlower CPU scheduling latencies in newer kernels made this issue more\nprominent now.\n\nAccording to\nhttps://sourceforge.net/tracker/?func\u003ddetail\u0026atid\u003d114103\u0026aid\u003d2492640\u0026group_id\u003d14103\nthis can be fixed by configuring the FireWire controller for more\nhardware retries for request transmission; these retries are evidently\nmore successful than libavc1394\u0027s own retry loop (typically 3 tries on\ntop of hardware retries).\n\nPresumably the same issue has been reported at\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d449252 and\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d477279 .\n\nIn a quick test with a JVC camcorder (which didn\u0027t malfunction like the\nreported camcorders), this change decreased the number of ack_busy_X\nfrom 16 in three runs of dvgrab to 4 in three runs of the same capture\nduration.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b006854955254a971096c120d4ef115a7c6145fb",
      "tree": "91c3c3a50c8ed60464701893119d44f63b50f293",
      "parents": [
        "3d36a0df3b473fb53531484df227f2da8bc7494b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jan 05 20:43:23 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 24 11:17:27 2009 +0100"
      },
      "message": "firewire: ohci: change \"context_stop: still active\" log message\n\nThe present message is mostly just noise.  We only need to be notified\nif the \"active\" flag does not go off before the retry loop terminates.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "3d36a0df3b473fb53531484df227f2da8bc7494b",
      "tree": "f0fcb758c8e68f1e5389ccd895d98efcc55ed0e8",
      "parents": [
        "8cd0bbbdff7471163cc6a058be8b8610ddd01d6b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 17 22:45:54 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 20 19:29:52 2009 +0100"
      },
      "message": "firewire: keep highlevel drivers attached during brief connection loss\n\nThere are situations when nodes vanish from the bus and come back\nquickly thereafter:\n  - When certain bus-powered hubs are plugged in,\n  - when certain devices are plugged into 6-port hubs,\n  - when certain disk enclosures are switched from self-power to bus\n    power or vice versa and break the daisy chain during the transition,\n  - when the user plugs a cable out and quickly plugs it back in, e.g.\n    to reorder a daisy chain (works on Mac OS X if done quickly enough),\n  - when certain hubs temporarily malfunction during high bus traffic.\n\nUntil now, firewire-core reported affected nodes as lost to the\nhighlevel drivers (firewire-sbp2 and userspace drivers).  We now delay\nthe destruction of device representations until after at least two\nseconds after the last bus reset.  If a \"new\" device is detected in this\nperiod whose bus information block and root directory header match that\nof a device which is pending for deletion, we resurrect that device and\nsend update calls to highlevel drivers.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8cd0bbbdff7471163cc6a058be8b8610ddd01d6b",
      "tree": "de25f60d599ddef9a0ee88357dc418dbdf95b51d",
      "parents": [
        "a5c7f4710fba334bf613d705f97b4471b36446f8"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Mar 24 20:56:40 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 20 19:29:51 2009 +0100"
      },
      "message": "firewire: unnecessary BM delay after generation rollover\n\nNoticed by Jarod Wilson:  The bus manager work was unnecessarily delayed\neach time the bus generation counter rolled over.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "a5c7f4710fba334bf613d705f97b4471b36446f8",
      "tree": "85deaf0584aea866a976245bae3c0d99bbca579f",
      "parents": [
        "1de9e8e70f5acc441550ca75433563d91b269bbe"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Mar 19 22:02:40 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 20 19:29:51 2009 +0100"
      },
      "message": "firewire: insist on successive self ID complete events\n\nThe whole topology code only works if the old and new topologies which\nare compared come from immediately successive self ID complete events.\n\nIf there happened bus resets without self ID complete events in the\nmeantime, or self ID complete events with invalid selfIDs, the topology\ncomparison could identify nodes wrongly, or more likely just corrupt\nkernel memory or panic right away.\n\nWe now discard all nodes of the old topology and treat all current nodes\nas new ones if the current self ID generation is not the previous one\nplus 1.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "6230582320b721e6cf2581d048cb688dca97f504",
      "tree": "2babcf29c086cf77b8df9fbe54303214b1be01ad",
      "parents": [
        "73d59314e6ed268d6f322ae1bdd723b23fa5a4ed"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jan 09 20:49:37 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jan 09 23:22:32 2009 +0100"
      },
      "message": "firewire: core: fix sleep in atomic context due to driver core change\n\nDue to commit 2831fe6f9cc4e16c103504ee09a47a084297c0f3, \"driver core:\ncreate a private portion of struct device\", device_initialize() can no\nlonger be called from atomic contexts.\n\nWe now defer it until after config ROM probing.  This requires changes\nto the bus manager code because this may use a device before it was\nprobed.\n\nReported-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c8a12d45d543905a2718fccafd612edbd73a1341",
      "tree": "b14e18eb68be2da1e9971ce5094ccc54b9030ef8",
      "parents": [
        "d6f95a3d14dc403881b23ad268ec1e3600c4e6b4"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Nov 29 19:00:56 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 23:50:38 2009 +0100"
      },
      "message": "firewire: reorder struct fw_card for better cache efficiency\n\ntopology_map is by far the largest member in struct fw_card.  Move it to\nthe very end of the struct so that card pointer dereferences have better\nchances to hit the CPU cache.\n\nThis requires to increase the topology_map backing store to the size\nspecified in IEEE 1394, i.e. 256 rather than 255 quadlets.  Otherwise\nthe topology_map response handler may access invalid memory.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d6f95a3d14dc403881b23ad268ec1e3600c4e6b4",
      "tree": "5c5662fed71f11afa75d55ea5179e7d47da6a24a",
      "parents": [
        "0fa1986f3a6c385b3bca0b6a051c30e548bda30d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Nov 29 18:56:47 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 23:50:38 2009 +0100"
      },
      "message": "firewire: fix resetting of bus manager retry counter\n\nAn earlier change, maybe long ago, removed the copying of self_id_count\ninto card-\u003eself_id_count.  Since then each bus reset cleared\ncard-\u003ebm_retries even when it shouldn\u0027t.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "0fa1986f3a6c385b3bca0b6a051c30e548bda30d",
      "tree": "5b61ce9579a520f89bc4c000bfe3496e58d4f47a",
      "parents": [
        "2cc489c21338950c2b4097dec48864bdf7b30f1b"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Sat Nov 29 17:44:57 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 23:50:37 2009 +0100"
      },
      "message": "firewire: improve refcounting of fw_card\n\nTake a reference to the card whenever fw_card_bm_work() is scheduled on\nthat card and release it when the work is done.  This allows us to\nremove the cancel_delayed_work_sync() in fw_core_remove_card().\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (patch update)\n"
    },
    {
      "commit": "2cc489c21338950c2b4097dec48864bdf7b30f1b",
      "tree": "ded0cd01ab6cc5cf51daeebe08b81450fbb53d18",
      "parents": [
        "d6053e08f5520dcb58c200d2e1861d9c505b72e8"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Wed Oct 22 15:59:42 2008 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 23:50:37 2009 +0100"
      },
      "message": "firewire: typo in comment\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d6053e08f5520dcb58c200d2e1861d9c505b72e8",
      "tree": "c845001fc7ca7f5aa76b53edb2e036b18ee3dbc4",
      "parents": [
        "621f6dd715209d3c3c27841943ae71fc2c75c9f5"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Nov 24 20:40:00 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 23:50:37 2009 +0100"
      },
      "message": "firewire: fix small memory leak at module removal\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "621f6dd715209d3c3c27841943ae71fc2c75c9f5",
      "tree": "469765325836481fc06d1954ed8265e0020149d9",
      "parents": [
        "c82cdea1e1cb3790788d04ef5cab33488e1455c9"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 11:04:20 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 23:50:36 2009 +0100"
      },
      "message": "firewire: fw-sbp2: remove unnecessary locking\n\nWhat was I thinking when I added sbp2_set_generation()?  Its locking did\nnothing (except for implicitly providing the necessary barrier between\nnode IDs update and generation update).\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1d1dc5e83f3299c108a4e44d58cc4bfef48c876a",
      "tree": "4acec6d605d2c04294afa8d5a7699430c34e8449",
      "parents": [
        "ec9a13cdbfc8cf29502096ca69b65f07184a9b2c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Dec 10 00:20:38 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Dec 10 12:45:34 2008 +0100"
      },
      "message": "firewire: fw-ohci: fix IOMMU resource exhaustion\n\nThere is a DMA map/ unmap imbalance whenever a block write request\npacket is sent and then dequeued with ohci_cancel_packet.  The latter\nmay happen frequently if the AR resp tasklet is executed before the AT\nreq tasklet for the same transaction.\n\nAdd the missing dma_unmap_single.  This fixes\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d475156\n\nReported-by: Emmanuel Kowalski\nTested-by: Emmanuel Kowalski\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "031bb27c4bf77c2f60b3f3dea8cce63ef0d1fba9",
      "tree": "2b6bca69ee4ee53366dcd8797b764a19caf2c3f7",
      "parents": [
        "9e0de91011ef6fe6eb3bb63f7ea15f586955660a"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Nov 22 12:38:58 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Nov 25 21:38:31 2008 +0100"
      },
      "message": "firewire: fw-sbp2: another iPod mini quirk entry\n\nAdd another model ID of a broken firmware to prevent early I/O errors\nby acesses at the end of the disk.  Reported at linux1394-user,\nhttp://marc.info/?t\u003d122670842900002\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a1f64819fe9f136c98d572794a35a7e377c951ef",
      "tree": "9e5c7b3c4d45c319838b75cb014cc03d8c29cd65",
      "parents": [
        "cd1f70fdb4823c97328a1f151f328eb36fafd579"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Oct 30 01:41:56 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Oct 31 08:48:25 2008 +0100"
      },
      "message": "firewire: struct device - replace bus_id with dev_name(), dev_set_name()\n\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "cd1f70fdb4823c97328a1f151f328eb36fafd579",
      "tree": "43810548ecebf6bc8329a1c6454584d81151c758",
      "parents": [
        "0dcfeb7e3c8695c5aa3677dda8efb9bef2e7e64d"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Fri Oct 24 15:26:20 2008 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 10:27:01 2008 +0100"
      },
      "message": "firewire: fw-sbp2: fix races\n\n1: There is a small race between queue_delayed_work() and its\n   corresponding kref_get().  Do the kref_get first, and _put it again\n   if the queue_delayed_work() failed, so there is no chance of the\n   kref going to zero while the work is scheduled.\n2: An SBP2_LOGOUT_REQUEST could be sent out with a login_id full of\n   garbage.  Initialize it to an invalid value so we can tell if we\n   ever got a valid login_id.\n3: The node ID and generation may have changed but the new values may\n   not yet have been recorded in lu and tgt when the final logout is\n   attempted.  Use the latest values from the device in\n   sbp2_release_target().\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "0dcfeb7e3c8695c5aa3677dda8efb9bef2e7e64d",
      "tree": "1b810e6cec5bc303c16806d4e33b2923a122a1ee",
      "parents": [
        "7007a0765e33bf89182e069e35ec6009fa54f610"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 22 00:28:36 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 10:27:01 2008 +0100"
      },
      "message": "firewire: fw-sbp2: delay first login to avoid retries\n\nThis optimizes firewire-sbp2\u0027s device probe for the case that the local\nnode and the SBP-2 node were discovered at the same time.  In this case,\nfw-core\u0027s bus management work and fw-sbp2\u0027s login and SCSI probe work\nare scheduled in parallel (in the globally shared workqueue and in\nfw-sbp2\u0027s workqueue, respectively).  The bus reset from fw-core may then\ndisturb and extremely delay the login and SCSI probe because the latter\nfails with several command timeouts and retries and has to be retried\nfrom scratch.\n\nWe avoid this particular situation of sbp2_login() and fw_card_bm_work()\nrunning in parallel by delaying the first sbp2_login() a little bit.\n\nThis is meant to be a short-term fix for\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d466679.  In the long run,\nthe SCSI probe, i.e. fw-sbp2\u0027s call of __scsi_add_device(), should be\nparallelized with sbp2_reconnect().\n\nProblem reported and fix tested and confirmed by Alex Kanavin.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "7007a0765e33bf89182e069e35ec6009fa54f610",
      "tree": "fd3117ac84b5b951ae459a692e7f14c4af15dd2a",
      "parents": [
        "a55709ba9d27053471f9fca8ee76b41ecefc14cd"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 09:50:31 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 10:27:00 2008 +0100"
      },
      "message": "firewire: fw-ohci: initialization failure path fixes\n\nFix leaks when pci_probe fails.  Simplify error log strings.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a55709ba9d27053471f9fca8ee76b41ecefc14cd",
      "tree": "e338976917e3926a292c67fcadc59968504d7fcc",
      "parents": [
        "77e557191701afa55ae7320d42ad6458a2ad292e"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Wed Oct 22 15:59:42 2008 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 10:27:00 2008 +0100"
      },
      "message": "firewire: fw-ohci: don\u0027t leak dma memory on module removal\n\nThe transmit and receive context dma memory was not being freed on\nmodule removal.  Neither was the config rom memory.  Fix that.\n\nThe ab-\u003enext assignment is pure paranoia.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "77e557191701afa55ae7320d42ad6458a2ad292e",
      "tree": "c2956fc904fe0e13a950c34b645d8f122932fe0d",
      "parents": [
        "4f9740d4f5a17fa6a1b097fa3ccdfb7246660307"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Thu Oct 16 18:00:15 2008 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 10:27:00 2008 +0100"
      },
      "message": "firewire: fix struct fw_node memory leak\n\nWith the bus_resets patch applied, it is easy to see this memory leak\nby repeatedly resetting the firewire bus while running slabtop in\nanother window.  Just watch kmalloc-32 grow and grow...\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4f9740d4f5a17fa6a1b097fa3ccdfb7246660307",
      "tree": "72ba1bd1f03d2b6372c067f917de0092dd76ce30",
      "parents": [
        "be585c07dd577faac26014db4246e6d7c7a131e7"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Thu Oct 16 15:51:59 2008 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 10:26:59 2008 +0100"
      },
      "message": "firewire: Survive more than 256 bus resets\n\nThe \"color\" is used during the topology building after a bus reset,\nhovever in \"struct fw_node\"s it is stored in a u8, but in struct fw_card\nit is stored in an int.  When the value wraps in one struct, but not\nthe other, disaster strikes.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\n\nFixes http://bugzilla.kernel.org/show_bug.cgi?id\u003d10922.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "99692f71ee04c6f249d0bf6a581359f32f409a38",
      "tree": "35bf169ebd363e7671df6fb7bfdb405e601da734",
      "parents": [
        "7a1003449c693f0d57443c8786bbf19717921ae0"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Sep 12 18:20:16 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 15 22:21:10 2008 +0200"
      },
      "message": "firewire: fix ioctl() return code\n\nReported by Jay Fenlason:  ioctl() did not return as intended\n  - the size of data read into ioctl_send_request,\n  - the number of datagrams enqueued by ioctl_queue_iso.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "7a1003449c693f0d57443c8786bbf19717921ae0",
      "tree": "41daa9d86f9730c283b72dba22aa2e7703af838c",
      "parents": [
        "4bbc1bdd010cbfcb749e4f947161ec3ab3337893"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Sep 12 18:09:55 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 15 22:21:10 2008 +0200"
      },
      "message": "firewire: fix setting tag and sy in iso transmission\n\nReported by Jay Fenlason:\nThe iso packet control accessors in fw-cdev.c had bogus masks.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4bbc1bdd010cbfcb749e4f947161ec3ab3337893",
      "tree": "77478b6c1bc693ba4dbddd4bd14c063846ec63c9",
      "parents": [
        "09b12dd4e3caff165a0f17a2f3ebd2bbc8544cc6"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Aug 09 20:22:17 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 15 22:21:10 2008 +0200"
      },
      "message": "firewire: fw-sbp2: fix another small generation access bug\n\nqueuecommand() looked at the remote and local node IDs before it read\nthe bus generation.  The corresponding race with sbp2_reconnect updating\nthese data was probably impossible to happen though because the current\ncode blocks the SCSI layer during reconnection.  However, better safe\nthan sorry, especially if someone later improves the code to not block\nthe SCSI layer.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "09b12dd4e3caff165a0f17a2f3ebd2bbc8544cc6",
      "tree": "877cbb8887a2b2d0f2b8a512cce3bacf4643e48c",
      "parents": [
        "1e119fa9950dfe0e6d97470098db776110ca47a9"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Aug 14 21:47:21 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 15 22:21:10 2008 +0200"
      },
      "message": "firewire: fw-sbp2: enforce s/g segment size limit\n\n1. We don\u0027t need to round the SBP-2 segment size limit down to a\n   multiple of 4 kB (0xffff -\u003e 0xf000).  It is only necessary to\n   ensure quadlet alignment (0xffff -\u003e 0xfffc).\n\n2. Use dma_set_max_seg_size() to tell the DMA mapping infrastructure\n   and the block IO layer about the restriction.  This way we can\n   remove the size checks and segment splitting in the queuecommand\n   path.\n\n   This assumes that no other code in the firewire stack uses\n   dma_map_sg() with conflicting requirements.  It furthermore assumes\n   that the controller device\u0027s platform actually allows us to set the\n   segment size to our liking.  Assert the latter with a BUG_ON().\n\n3. Also use blk_queue_max_segment_size() to tell the block IO layer\n   about it.  It cannot know it because our scsi_add_host() does not\n   point to the FireWire controller\u0027s device.\n\nThanks to Grant Grundler and FUJITA Tomonori for advice.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1e119fa9950dfe0e6d97470098db776110ca47a9",
      "tree": "02ad70ddae6d5cf4869c628e44dae97686a03d97",
      "parents": [
        "fc392fe83176cefbab99f9d12e6e27395aa2b5d0"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Sun Jul 20 14:20:53 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 15 22:21:09 2008 +0200"
      },
      "message": "firewire: fw_send_request_sync()\n\nShare code between fw_send_request + wait_for_completion callers.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\n\nAddendum:\nRemoves an unnecessary struct and an ununsed retry loop.\nCalls it fw_run_transaction() instead of fw_send_request_sync().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nAcked-by: Kristian Høgsberg \u003ckrh@redhat.com\u003e\n"
    },
    {
      "commit": "30b0aa7c9a5e769a874a456cd56396eebf164b91",
      "tree": "d2cc44a4bfe2a28ed8a6a47cfd6b8f61f468ed47",
      "parents": [
        "a3384067fb0df9c58e112ac6a5ec9beb7d169482"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Aug 16 21:52:28 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Aug 19 18:47:56 2008 +0200"
      },
      "message": "firewire: Kconfig help update\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a14ad05f47b55ea84136eb4da43ea96fa469326a",
      "tree": "1197659a31b5c0b1a9c3db4d90a083eaca7fad4d",
      "parents": [
        "0016fe9d8a1ca99a4642735f41a7753d7c1f7e2b",
        "8401d92ba46a1e859464cbd9c9ee304f6e361da3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 06 12:03:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 06 12:03:43 2008 -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: Preserve response data alignment bug when it is harmless\n"
    },
    {
      "commit": "8401d92ba46a1e859464cbd9c9ee304f6e361da3",
      "tree": "cdf4ecb706a4f2417b57a8d52d887cd4b2c12130",
      "parents": [
        "f05e21b39f7dddcebab03ff329fef5783fea58d4"
      ],
      "author": {
        "name": "David Moore",
        "email": "dcm@acm.org",
        "time": "Tue Jul 29 23:46:25 2008 -0700"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Aug 02 20:03:49 2008 +0200"
      },
      "message": "firewire: Preserve response data alignment bug when it is harmless\n\nRecently, a bug having to do with the alignment of transaction response\ndata was fixed.  However, some apps such as libdc1394 relied on the\npresence of that bug in order to function correctly.  In order to stay\ncompatible with old versions of those apps, this patch preserves the bug\nin cases where it is harmless to normal operation (such as the single\nquadlet read) due to a simple duplication of data.  This guarantees\nmaximum compatability for those users who are using the old app with the\nfixed kernel.\n\nSigned-off-by: David Moore \u003cdcm@acm.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "837b41b5de356aa67abb2cadb5eef3efc7776f91",
      "tree": "b63a9898c9a2b6563d8aec75c2abbec379898613",
      "parents": [
        "211c8d4942edf2f3337820dda101da6b13c8a19a",
        "f05e21b39f7dddcebab03ff329fef5783fea58d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 10:24:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 10:24:06 2008 -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: state userland requirements in Kconfig help\n  firewire: avoid memleak after phy config transmit failure\n  firewire: fw-ohci: TSB43AB22/A dualbuffer workaround\n  firewire: queue the right number of data\n  firewire: warn on unfinished transactions during card removal\n  firewire: small fw_fill_request cleanup\n  firewire: fully initialize fw_transaction before marking it pending\n  firewire: fix race of bus reset with request transmission\n"
    },
    {
      "commit": "8d8bb39b9eba32dd70e87fd5ad5c5dd4ba118e06",
      "tree": "64090a84f4c4466f9f30ff46c993e0cede379052",
      "parents": [
        "c485b465a031b6f9b9a51300e0ee1f86efc6db87"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Jul 25 19:44:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:03 2008 -0700"
      },
      "message": "dma-mapping: add the device argument to dma_mapping_error()\n\nAdd per-device dma_mapping_ops support for CONFIG_X86_64 as POWER\narchitecture does:\n\nThis enables us to cleanly fix the Calgary IOMMU issue that some devices\nare not behind the IOMMU (http://lkml.org/lkml/2008/5/8/423).\n\nI think that per-device dma_mapping_ops support would be also helpful for\nKVM people to support PCI passthrough but Andi thinks that this makes it\ndifficult to support the PCI passthrough (see the above thread).  So I\nCC\u0027ed this to KVM camp.  Comments are appreciated.\n\nA pointer to dma_mapping_ops to struct dev_archdata is added.  If the\npointer is non NULL, DMA operations in asm/dma-mapping.h use it.  If it\u0027s\nNULL, the system-wide dma_ops pointer is used as before.\n\nIf it\u0027s useful for KVM people, I plan to implement a mechanism to register\na hook called when a new pci (or dma capable) device is created (it works\nwith hot plugging).  It enables IOMMUs to set up an appropriate\ndma_mapping_ops per device.\n\nThe major obstacle is that dma_mapping_error doesn\u0027t take a pointer to the\ndevice unlike other DMA operations.  So x86 can\u0027t have dma_mapping_ops per\ndevice.  Note all the POWER IOMMUs use the same dma_mapping_error function\nso this is not a problem for POWER but x86 IOMMUs use different\ndma_mapping_error functions.\n\nThe first patch adds the device argument to dma_mapping_error.  The patch\nis trivial but large since it touches lots of drivers and dma-mapping.h in\nall the architecture.\n\nThis patch:\n\ndma_mapping_error() doesn\u0027t take a pointer to the device unlike other DMA\noperations.  So we can\u0027t have dma_mapping_ops per device.\n\nNote that POWER already has dma_mapping_ops per device but all the POWER\nIOMMUs use the same dma_mapping_error function.  x86 IOMMUs use device\nargument.\n\n[akpm@linux-foundation.org: fix sge]\n[akpm@linux-foundation.org: fix svc_rdma]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix bnx2x]\n[akpm@linux-foundation.org: fix s2io]\n[akpm@linux-foundation.org: fix pasemi_mac]\n[akpm@linux-foundation.org: fix sdhci]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix sparc]\n[akpm@linux-foundation.org: fix ibmvscsi]\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Muli Ben-Yehuda \u003cmuli@il.ibm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f05e21b39f7dddcebab03ff329fef5783fea58d4",
      "tree": "9753dca61f3fe14793715ddda96bda1984cf0ba0",
      "parents": [
        "c0220d686b926a5865a2032c805015758bfdda69"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 25 16:24:19 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 25 20:10:33 2008 +0200"
      },
      "message": "firewire: state userland requirements in Kconfig help\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c0220d686b926a5865a2032c805015758bfdda69",
      "tree": "2b1dd1177e9e24ccea13c517054e78c5abc2eee0",
      "parents": [
        "95984f62c9b0bf6d89ef4f514b1afe73623481de"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 22 21:35:47 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 25 20:10:32 2008 +0200"
      },
      "message": "firewire: avoid memleak after phy config transmit failure\n\nUse only statically allocated data for PHY config packet transmission.\nWith the previous incarnation, some data wouldn\u0027t be freed if the packet\ntransmit callback was never called.\n\nA theoretical drawback now is that, in PCs with more than one card,\ncard A may complete() for a waiter on card B.  But this is highly\nunlikely and its impact not serious.  Bus manager B may reset bus B\nbefore the PHY config went out, but the next phy config on B should be\nfine.  However, with a timeout of 100ms, this situation is close to\nimpossible.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "95984f62c9b0bf6d89ef4f514b1afe73623481de",
      "tree": "2c46b6e7ec4a56de8e65b194c828985af5fe4414",
      "parents": [
        "f9543d0ab6392a9a5bff0034622688dc10d9d225"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 22 18:41:10 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 25 15:41:23 2008 +0200"
      },
      "message": "firewire: fw-ohci: TSB43AB22/A dualbuffer workaround\n\nIsochronous reception in dualbuffer mode is reportedly broken with\nTI TSB43AB22A on x86-64.  Descriptor addresses above 2G have been\ndetermined as the trigger:\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d435550\n\nTwo fixes are possible:\n  - pci_set_consistent_dma_mask(pdev, DMA_31BIT_MASK);\n    at least when IR descriptors are allocated, or\n  - simply don\u0027t use dualbuffer.\nThis fix implements the latter workaround.\n\nBut we keep using dualbuffer on x86-32 which won\u0027t give us highmen (and\nthus physical addresses outside the 31bit range) in coherent DMA memory\nallocations.  Right now we could for example also whitelist PPC32, but\nDMA mapping implementation details are expected to change there.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "f9543d0ab6392a9a5bff0034622688dc10d9d225",
      "tree": "44587aa693b3fe444cab25aaad2c6c5e95f5f4ee",
      "parents": [
        "1e8afea124added6409d5209f90d9949f5a13b32"
      ],
      "author": {
        "name": "JiSheng Zhang",
        "email": "jszhang3@mail.ustc.edu.cn",
        "time": "Sat Jul 19 15:35:41 2008 +0800"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jul 20 15:25:03 2008 +0200"
      },
      "message": "firewire: queue the right number of data\n\nThere will be 4 padding bytes in struct fw_cdev_event_response on some platforms\nThe member:__u32 data will point to these padding bytes. While queue the\nresponse and data in complete_transaction in fw-cdev.c, it will queue like this:\n|response(excluding padding bytes)|4 padding bytes|4 padding bytes|data.\nIt queue 4 extra bytes. That is to say it use \"\u0026response + sizeof(response)\"\nwhile other place of kernel and userspace library use \"\u0026response + offsetof\n(typeof(response), data)\". So it will lost the last 4 bytes of data. This patch\ncan fix it while not changing the struct definition.\n\nSigned-off-by: JiSheng Zhang \u003cjszhang3@mail.ustc.edu.cn\u003e\n\nThis fixes responses to outbound block read requests on 64bit architectures.\nTested on i686, x86-64, and x86-64 with i686 userland, using firecontrol and\ngscanbus.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "22a37bcb7857541eb2d37806c4744ee2530baa98",
      "tree": "9b3e1a8165908ffa74b2559924ee0f18488667ba",
      "parents": [
        "849c529f57020cc47085400edd5e641d95cd4faf",
        "82f06e86117680ada35fdb76c8852268d994cd99"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 12:39:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 12:39:44 2008 -0700"
      },
      "message": "Merge branch \u0027sbp2-spindown\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027sbp2-spindown\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  ieee1394: sbp2: spin disks down on suspend and shutdown\n  firewire: fw-sbp2: spin disks down on suspend and shutdown\n  ieee1394: sbp2: fix spindown for PL-3507 and TSB42AA9 firmwares\n  firewire: fw-sbp2: fix spindown for PL-3507 and TSB42AA9 firmwares\n  scsi: sd: optionally set power condition in START STOP UNIT\n"
    },
    {
      "commit": "1e8afea124added6409d5209f90d9949f5a13b32",
      "tree": "21acef703f0816768f15b9d31c122feb1561f3a0",
      "parents": [
        "b9549bc6803d6a16fe6a85b316b742ef82bd3931"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jul 12 14:51:18 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jul 14 13:06:04 2008 +0200"
      },
      "message": "firewire: warn on unfinished transactions during card removal\n\nAfter card-\u003edone and card-\u003ework are completed, any remaining pending\nrequest would be a bug.  We cannot safely complete a transaction at\nthat point anymore.\n\nIOW card users must not drop their last fw_card reference (usually\nindirect references through fw_device references) before their last\noutbound transaction through that card was finished.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b9549bc6803d6a16fe6a85b316b742ef82bd3931",
      "tree": "5ff7db7f309cc45b0f3c29c6e9a79cc2c01f2dd0",
      "parents": [
        "e9aeb46c93a8b1b703d00586c05d9a71aa7e0f0c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jul 12 14:50:42 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jul 14 13:06:04 2008 +0200"
      },
      "message": "firewire: small fw_fill_request cleanup\n\n  - better name for a function argument\n  - removal of a local variable which became unnecessary after\n    \"fully initialize fw_transaction before marking it pending\"\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e9aeb46c93a8b1b703d00586c05d9a71aa7e0f0c",
      "tree": "8e20402235bdcdf0e250e90ba02ac9f5eae2b87c",
      "parents": [
        "792a61021c6043f6c2b24b1cdd42be5753b3e54c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jul 12 14:50:06 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jul 14 13:06:04 2008 +0200"
      },
      "message": "firewire: fully initialize fw_transaction before marking it pending\n\nIn theory, card-\u003eflush_timer could already access a transaction between\nfw_send_request()\u0027s spin_unlock_irqrestore and the rest of what happens\nin fw_send_request().  This would happen if the process which sends the\nrequest is preempted and put to sleep right after spin_unlock_irqrestore\nfor longer than 100ms.\n\nTherefore we fill in everything in struct fw_transaction at which the\nflush_timer might look at before we lift the lock.\n\nTo do:  Ensure that the timer does not pick up the transaction before\nthe time of the AT request event plus split transaction timeout.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "792a61021c6043f6c2b24b1cdd42be5753b3e54c",
      "tree": "5d83079ac9d2fe89735feee5d14c9d8e9532f1cd",
      "parents": [
        "a7ea67823af4a7e442e92064b0fab46603a588f6"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jul 12 14:49:19 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jul 14 13:06:04 2008 +0200"
      },
      "message": "firewire: fix race of bus reset with request transmission\n\nReported by Jay Fenlason:  A bus reset tasklet may call\nfw_flush_transactions and touch transactions (call their callback which\nwill free them) while the context which submitted the transaction is\nstill inserting it into the transmission queue.\n\nA simple solution to this problem is to _not_ \"flush\" the transactions\nbecause of a bus reset (complete the transcations as \u0027cancelled\u0027).  They\nwill now simply time out (completed as \u0027cancelled\u0027 by the split-timeout\ntimer).\n\nJay Fenlason thought of this fix too but I was quicker to type it out.\n:-)\n\nBackground:\nContexts which access an instance of struct fw_transaction are:\n 1. the submitter, until it inserted the packet which is embedded in the\n    transaction into the AT req DMA,\n 2. the AsReqTrContext tasklet when the request packet was acked by the\n    responder node or transmission to the responder failed,\n 3. the AsRspRcvContext tasklet when it found a request which matched\n    an incoming response,\n 4. the card-\u003eflush_timer when it picks up timed-out transactions to\n    cancel them,\n 5. the bus reset tasklet when it cancels transactions (this access is\n    eliminated by this patch),\n 6. a process which shuts down an fw_card (unregisters it from fw-core\n    when the controller is unbound from fw-ohci) --- although in this\n    case there shouldn\u0027t really be any transactions anymore because we\n    wait until all card users finished their business with the card.\n\nAll of these contexts run concurrently (except for the 6th, presumably).\nThe 1st is safe against the 2nd and 3rd because of the way how a request\npacket is carefully submitted to the hardware.  A race between 2nd and\n3rd has been fixed a while ago (bug 9617).  The 4th is almost safe\nagainst 1st, 2nd, 3rd;  there are issues with it if huge scheduling\nlatencies occur, to be fixed separately.  The 5th looks safe against\n2nd, 3rd, and 4th but is unsafe against 1st.  Maybe this could be fixed\nwith an explicit state variable in struct fw_transaction.  But this\nwould require fw_transaction to be rewritten as only dynamically\nallocatable object with reference counting --- not a good solution if we\nalso can simply kill this 5th accessing context (replace it by the 4th).\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a7ea67823af4a7e442e92064b0fab46603a588f6",
      "tree": "f6d67468a3a363ee6753b11a4e6656b454b5fe98",
      "parents": [
        "459f79235d8faa0050180c7e0c7bb4b2b52cbdfd"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun May 25 11:06:55 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jul 14 13:06:03 2008 +0200"
      },
      "message": "firewire: don\u0027t respond to broadcast write requests\n\nContrary to a comment in the source, request-\u003eack of a broadcast write\nrequest can be ACK_PENDING.  Hence the existing check is insufficient.\n\nDebug dmesg before:\nAR spd 0 tl 00, ffc0 -\u003e ffff, ack_pending , QW req, fffff0000234 \u003d ffffffff\nAT spd 0 tl 00, ffff -\u003e ffc0, ack_complete, W resp\nAnd the requesting node (linux1394) reports an unsolicited response.\n\nDebug dmesg after:\nAR spd 0 tl 00, ffc0 -\u003e ffff, ack_pending , QW req, fffff0000234 \u003d ffffffff\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "459f79235d8faa0050180c7e0c7bb4b2b52cbdfd",
      "tree": "97847b1b06ded6c136cdba73bc961a46a3e39a30",
      "parents": [
        "2147ef204f57191e0fff6d5d3d1a0336afa6cfae"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat May 24 16:50:22 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jul 14 13:06:03 2008 +0200"
      },
      "message": "firewire: clean up fw_card reference counting\n\nThis is a functionally equivalent replacement of the current reference\ncounting of struct fw_card instances.  It only converts it to common\nidioms as suggested by Kristian Høgsberg:\n  - struct kref replaces atomic_t as the counter.\n  - wait_for_completion is used to wait for all card users to complete.\n\nBTW, it may make sense to count card-\u003eflush_timer and card-\u003ework as\ncard users too.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "2147ef204f57191e0fff6d5d3d1a0336afa6cfae",
      "tree": "061d7b25d275bdbc93c9ca6e113078083ff34623",
      "parents": [
        "bbf094cf3dbd9a969dd17cf52325e9fab8dfbe91"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat May 24 16:48:05 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jul 14 13:06:03 2008 +0200"
      },
      "message": "firewire: clean up some includes\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "bbf094cf3dbd9a969dd17cf52325e9fab8dfbe91",
      "tree": "3f77b6cb4fb5587cb10d735e96404d5d1386f64d",
      "parents": [
        "e534fe16b987780744da351acece2a4699783096"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat May 24 16:46:10 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jul 14 13:06:03 2008 +0200"
      },
      "message": "firewire: remove unused struct members\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e534fe16b987780744da351acece2a4699783096",
      "tree": "fdeafe1851b2b40b3def1f4135a7fc847deb595a",
      "parents": [
        "435f972697fcd4c424db941f0ea8f2e38eda2b39"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat May 24 16:41:09 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jul 14 13:06:03 2008 +0200"
      },
      "message": "firewire: implement broadcast_channel CSR for 1394a compliance\n\nSee IEEE 1394a clause 8.3.2.3.11.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "2635f96f9086409de0ec882a210f374c012bffc3",
      "tree": "4c8418db42a6fa20cda7154c77426e8b0acf6642",
      "parents": [
        "3719122a520af2957031859317e74858ab4d3f4b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun May 11 00:36:47 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jul 14 13:00:18 2008 +0200"
      },
      "message": "firewire: fw-sbp2: spin disks down on suspend and shutdown\n\nThis instructs sd_mod to send START STOP UNIT on suspend and resume,\nand on driver unbinding or unloading (including when the system is shut\ndown).\n\nWe don\u0027t do this though if multiple initiators may log in to the target.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nTested-by: Tino Keitel \u003ctino.keitel@gmx.de\u003e\n"
    },
    {
      "commit": "ffcaade3109c3a4c0a2c601cf2a44d55b4c3af37",
      "tree": "8288472adbff8a5dc0ac8d8e0a556fcf13359b8d",
      "parents": [
        "d2886ea368a67704ecc13e69075f18a9d74cb12b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun May 11 00:35:04 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jul 14 13:00:17 2008 +0200"
      },
      "message": "firewire: fw-sbp2: fix spindown for PL-3507 and TSB42AA9 firmwares\n\nReported by Tino Keitel:  PL-3507 with firmware from Prolific does not\nspin down the disk on START STOP UNIT with power condition \u003d 0 and start\n\u003d 0.  It does however work with power condition \u003d 2 or 3.\n\nAlso found while investigating this:  DViCO Momobay CX-1 and FX-3A (TI\nTSB42AA9/A based) become unresponsive after START STOP UNIT with power\ncondition \u003d 0 and start \u003d 0.  They stay responsive if power condition is\nset when stopping the motor.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nTested-by: Tino Keitel \u003ctino.keitel@gmx.de\u003e\n"
    },
    {
      "commit": "0e3e2eabf4fbc0162e1f1eb4fd90cb3e9513a554",
      "tree": "89691ff7227cc09dcb32c72cd7295c16665aaa34",
      "parents": [
        "543cf4cb3fe6f6cae3651ba918b9c56200b257d0"
      ],
      "author": {
        "name": "Richard Sharpe",
        "email": "realrichardsharpe@gmail.com",
        "time": "Tue Jun 24 19:11:13 2008 -0700"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 27 20:55:00 2008 +0200"
      },
      "message": "firewire: fw-sbp2: fix parsing of logical unit directories\n\nThere is a small off-by-one bug in firewire-sbp2. This causes problems\nwhen a device exports multiple LUN Directories. I found it when trying\nto talk to a SONY DVD Jukebox.\n\nSigned-off-by: Richard Sharpe \u003crealrichardsharpe@gmail.com\u003e\nAcked-by: Kristian Høgsberg \u003ckrh@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (op. order, changelog)\n"
    },
    {
      "commit": "a7b64b8704b03c9972b114932fdf517e06153f11",
      "tree": "e6d183d2f703b6126e95948fb667edbbee69d703",
      "parents": [
        "ae1e53557911d7e60a637b2400173add958aae94"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 14 14:24:53 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 19 00:12:35 2008 +0200"
      },
      "message": "firewire: Kconfig menu touch-up\n\nEmphasize the recommendation to build only one stack.\nTrim the prompts to better fit into short attention spans.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "ae1e53557911d7e60a637b2400173add958aae94",
      "tree": "eb0e731e5ac2afcb3e39abacd6942bec7b8b52cd",
      "parents": [
        "161b96e782ec995c55843101976d9c35b57aa109"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jun 18 18:20:45 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 19 00:12:35 2008 +0200"
      },
      "message": "firewire: deadline for PHY config transmission\n\nIf the low-level driver failed to initialize a card properly without\nnoticing it, fw-core was blocked indefinitely when trying to send a\nPHY config packet.  This hung up the events kernel thread, e.g. locked\nup keyboard input.\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d444694\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d446763\n\nThis problem was introduced between 2.6.25 and 2.6.26-rc1 by commit\n2a0a2590498be7b92e3e76409c9b8ee722e23c8f \"firewire: wait until PHY\nconfiguration packet was transmitted (fix bus reset loop)\".\n\nThe solution is to wait with timeout.  I tested it with 7 different\nworking controllers and 1 non-working controller.  On the working ones,\nthe packet callback complete()s usually --- but not always --- before a\ntimeout of 10ms.  Hence I chose a safer timeout of 100ms.\n\nOn the few tests with the non-working controller ALi M5271, PHY config\npacket transmission always timed out so far.  (Fw-ohci needs to be fixed\nfor this controller independently of this deadline fix.  Often the core\ndoesn\u0027t even attempt to send a phy config because not even self ID\nreception works.)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    }
  ],
  "next": "161b96e782ec995c55843101976d9c35b57aa109"
}
