<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/firewire, branch v2.6.27.60</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/firewire?h=v2.6.27.60</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/firewire?h=v2.6.27.60'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2009-12-18T21:30:43Z</updated>
<entry>
<title>firewire: ohci: handle receive packets with a data length of zero</title>
<updated>2009-12-18T21:30:43Z</updated>
<author>
<name>Jay Fenlason</name>
<email>fenlason@redhat.com</email>
</author>
<published>2009-12-11T19:23:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e6ebd01ffd7b79678dfdda1d3b5653e8aea3eb41'/>
<id>urn:sha1:e6ebd01ffd7b79678dfdda1d3b5653e8aea3eb41</id>
<content type='text'>
commit 8c0c0cc2d9f4c523fde04bdfe41e4380dec8ee54 upstream.

Queueing to receive an ISO packet with a payload length of zero
silently does nothing in dualbuffer mode, and crashes the kernel in
packet-per-buffer mode.  Return an error in dualbuffer mode, because
the DMA controller won't let us do what we want, and work correctly in
packet-per-buffer mode.

Signed-off-by: Jay Fenlason &lt;fenlason@redhat.com&gt;
Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>firewire: sbp2: add support for disks &gt;2 TB (and 16 bytes long CDBs)</title>
<updated>2009-08-16T21:27:00Z</updated>
<author>
<name>Stefan Richter</name>
<email>stefanr@s5r6.in-berlin.de</email>
</author>
<published>2009-07-29T19:27:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=91b129d1013e5ce7977f323a69d82bd0ad54b439'/>
<id>urn:sha1:91b129d1013e5ce7977f323a69d82bd0ad54b439</id>
<content type='text'>
Commit af2719415a5ceae06f2a6d33e78b555e64697fc8 upstream.

Increase the command ORB data structure to transport up to 16 bytes long
CDBs (instead of 12 bytes), and tell the SCSI mid layer about it.  This
is notably necessary for READ CAPACITY(16) and friends, i.e. support of
large disks.

Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>firewire: sbp2: add workarounds for 2nd and 3rd generation iPods</title>
<updated>2009-02-12T17:31:05Z</updated>
<author>
<name>Stefan Richter</name>
<email>stefanr@s5r6.in-berlin.de</email>
</author>
<published>2009-02-07T12:10:00Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=dbb7f60d1d25cecb6b6fed3d7129d64cd5decdb1'/>
<id>urn:sha1:dbb7f60d1d25cecb6b6fed3d7129d64cd5decdb1</id>
<content type='text'>
Commit c8c4707cf7ca8ff7dcc1653447e48cb3de0bf114 upstream.

According to https://bugs.launchpad.net/bugs/294391
  - 3rd generation iPods need the "fix capacity" workaround after all
    (apparently they crash after the last sector was accessed),
  - 2nd generation iPods need the "128 kB maximum request size"
    workaround.

Alas both iPod generations feature the same model ID in the config ROM,
hence we can only define a shared quirks list entry for them.  Luckily
the fix capacity workaround did not show a negative effect in Jarod's
tests with 2nd gen. iPod.

A side note:  Apple computers in target mode (or at least an x86 Mac
mini) don't have firmware_version and model_id, hence none of the iPod
quirks list entries is active for them.

Tested-by: Jarod Wilson &lt;jarod@redhat.com&gt;
Acked-by: Jarod Wilson &lt;jarod@redhat.com&gt;
Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>firewire: sbp2: fix DMA mapping leak on the failure path</title>
<updated>2009-02-12T17:31:05Z</updated>
<author>
<name>Stefan Richter</name>
<email>stefanr@s5r6.in-berlin.de</email>
</author>
<published>2009-02-07T12:09:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3b944f23368ab7fa794aea4f7fd3eb8dacbf48c4'/>
<id>urn:sha1:3b944f23368ab7fa794aea4f7fd3eb8dacbf48c4</id>
<content type='text'>
Commit 5e2125677fd72d36396cc537466e07ffcbbd4b2b upstream.

Reported-by: FUJITA Tomonori &lt;fujita.tomonori@lab.ntt.co.jp&gt;
who also provided a first version of the fix.

Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>firewire: ohci: increase AT req. retries, fix ack_busy_X from Panasonic camcorders and others</title>
<updated>2009-02-12T17:31:04Z</updated>
<author>
<name>Stefan Richter</name>
<email>stefanr@s5r6.in-berlin.de</email>
</author>
<published>2009-02-07T12:08:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9b43ba103a54853c55012757d0baa0200c1ec1e7'/>
<id>urn:sha1:9b43ba103a54853c55012757d0baa0200c1ec1e7</id>
<content type='text'>
Commit 8b7b6afaa84708d08139daa08538ca3e56c351f1 upstream.

Camcorders have a tendency to fail read requests to their config ROM and
write request to their FCP command register with ack_busy_X.  This has
become a problem with newer kernels and especially Panasonic camcorders,
causing AV/C in dvgrab and kino to fail.  Dvgrab for example frequently
logs "send oops"; kino reports loss of AV/C control.  I suspect that
lower CPU scheduling latencies in newer kernels made this issue more
prominent now.

According to
https://sourceforge.net/tracker/?func=detail&amp;atid=114103&amp;aid=2492640&amp;group_id=14103
this can be fixed by configuring the FireWire controller for more
hardware retries for request transmission; these retries are evidently
more successful than libavc1394's own retry loop (typically 3 tries on
top of hardware retries).

Presumably the same issue has been reported at
https://bugzilla.redhat.com/show_bug.cgi?id=449252 and
https://bugzilla.redhat.com/show_bug.cgi?id=477279 .

In a quick test with a JVC camcorder (which didn't malfunction like the
reported camcorders), this change decreased the number of ack_busy_X
from 16 in three runs of dvgrab to 4 in three runs of the same capture
duration.

Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>firewire: fw-ohci: fix IOMMU resource exhaustion</title>
<updated>2008-12-18T17:13:38Z</updated>
<author>
<name>Stefan Richter</name>
<email>stefanr@s5r6.in-berlin.de</email>
</author>
<published>2008-12-16T19:34:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bc7c91468b80aab044dd9dd61c3492cf57dffabb'/>
<id>urn:sha1:bc7c91468b80aab044dd9dd61c3492cf57dffabb</id>
<content type='text'>
commit 1d1dc5e83f3299c108a4e44d58cc4bfef48c876a upstream.

There is a DMA map/ unmap imbalance whenever a block write request
packet is sent and then dequeued with ohci_cancel_packet.  The latter
may happen frequently if the AR resp tasklet is executed before the AT
req tasklet for the same transaction.

Add the missing dma_unmap_single.  This fixes
https://bugzilla.redhat.com/show_bug.cgi?id=475156

Reported-by: Emmanuel Kowalski
Tested-by: Emmanuel Kowalski
Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>firewire: fw-sbp2: another iPod mini quirk entry</title>
<updated>2008-12-05T18:55:25Z</updated>
<author>
<name>Stefan Richter</name>
<email>stefanr@s5r6.in-berlin.de</email>
</author>
<published>2008-12-01T20:19:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=13dd3aed39c5e26e4137f5fc01261e180a33bd6b'/>
<id>urn:sha1:13dd3aed39c5e26e4137f5fc01261e180a33bd6b</id>
<content type='text'>
commit 031bb27c4bf77c2f60b3f3dea8cce63ef0d1fba9 upstream.

Add another model ID of a broken firmware to prevent early I/O errors
by acesses at the end of the disk.  Reported at linux1394-user,
http://marc.info/?t=122670842900002

Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>firewire: fw-sbp2: fix races</title>
<updated>2008-11-07T03:05:45Z</updated>
<author>
<name>Jay Fenlason</name>
<email>fenlason@redhat.com</email>
</author>
<published>2008-10-27T22:29:32Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=baae4f5fd7a75bdfa70d374b738963053df2bcaa'/>
<id>urn:sha1:baae4f5fd7a75bdfa70d374b738963053df2bcaa</id>
<content type='text'>
Same as commit cd1f70fdb4823c97328a1f151f328eb36fafd579 upstream

1: There is a small race between queue_delayed_work() and its
   corresponding kref_get().  Do the kref_get first, and _put it again
   if the queue_delayed_work() failed, so there is no chance of the
   kref going to zero while the work is scheduled.
2: An SBP2_LOGOUT_REQUEST could be sent out with a login_id full of
   garbage.  Initialize it to an invalid value so we can tell if we
   ever got a valid login_id.
3: The node ID and generation may have changed but the new values may
   not yet have been recorded in lu and tgt when the final logout is
   attempted.  Use the latest values from the device in
   sbp2_release_target().

Signed-off-by: Jay Fenlason &lt;fenlason@redhat.com&gt;
Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>firewire: fw-sbp2: delay first login to avoid retries</title>
<updated>2008-11-07T03:05:45Z</updated>
<author>
<name>Stefan Richter</name>
<email>stefanr@s5r6.in-berlin.de</email>
</author>
<published>2008-10-27T22:29:00Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=25a5d6623213609e2569c9fc3c64136bbb811946'/>
<id>urn:sha1:25a5d6623213609e2569c9fc3c64136bbb811946</id>
<content type='text'>
commit 0dcfeb7e3c8695c5aa3677dda8efb9bef2e7e64d upstream

This optimizes firewire-sbp2's device probe for the case that the local
node and the SBP-2 node were discovered at the same time.  In this case,
fw-core's bus management work and fw-sbp2's login and SCSI probe work
are scheduled in parallel (in the globally shared workqueue and in
fw-sbp2's workqueue, respectively).  The bus reset from fw-core may then
disturb and extremely delay the login and SCSI probe because the latter
fails with several command timeouts and retries and has to be retried
from scratch.

We avoid this particular situation of sbp2_login() and fw_card_bm_work()
running in parallel by delaying the first sbp2_login() a little bit.

This is meant to be a short-term fix for
https://bugzilla.redhat.com/show_bug.cgi?id=466679.  In the long run,
the SCSI probe, i.e. fw-sbp2's call of __scsi_add_device(), should be
parallelized with sbp2_reconnect().

Problem reported and fix tested and confirmed by Alex Kanavin.

Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>firewire: fix struct fw_node memory leak</title>
<updated>2008-11-07T03:05:44Z</updated>
<author>
<name>Jay Fenlason</name>
<email>fenlason@redhat.com</email>
</author>
<published>2008-10-27T22:28:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ff0f8d16839cd02dc95bd92c212cbd5d433a4d2b'/>
<id>urn:sha1:ff0f8d16839cd02dc95bd92c212cbd5d433a4d2b</id>
<content type='text'>
commit 77e557191701afa55ae7320d42ad6458a2ad292e upstream

With the bus_resets patch applied, it is easy to see this memory leak
by repeatedly resetting the firewire bus while running slabtop in
another window.  Just watch kmalloc-32 grow and grow...

Signed-off-by: Jay Fenlason &lt;fenlason@redhat.com&gt;
Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;

</content>
</entry>
</feed>
