<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/firewire, branch v2.6.25</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v2.6.25</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v2.6.25'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2008-03-27T20:01:14Z</updated>
<entry>
<title>firewire: fw-ohci: plug dma memory leak in AR handler</title>
<updated>2008-03-27T20:01:14Z</updated>
<author>
<name>Jarod Wilson</name>
<email>jwilson@redhat.com</email>
</author>
<published>2008-03-25T20:47:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6b84236d37ef602d1e4f52b27162c20394e83359'/>
<id>urn:sha1:6b84236d37ef602d1e4f52b27162c20394e83359</id>
<content type='text'>
There's an ugly little memory leak in firewire-ohci's
ar_context_tasklet(), where we're not freeing up some of the memory we
use for each ar_buffer, due to a moving pointer. The problem has been
there for a while, but didn't get noticed until after converting the AR
routines over to use coherent DMA and I started running into I/O stall-
outs with the following message output repeatedly to the console:

PCI-DMA: Out of IOMMU space for 53248 bytes at device 0000:04:09.0

Plugging this leak is definitely necessary, but unfortunately, isn't the
entire answer to my problem, it only increases the amount of I/O that I
can do before hitting the problem. Still working on tracking down the
root cause..

Signed-off-by: Jarod Wilson &lt;jwilson@redhat.com&gt;
Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
</content>
</entry>
<entry>
<title>firewire: fix panic in handle_at_packet</title>
<updated>2008-03-20T17:13:05Z</updated>
<author>
<name>Stefan Richter</name>
<email>stefanr@s5r6.in-berlin.de</email>
</author>
<published>2008-03-15T23:56:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=10a4c735515a5afc317abe4d697a4c95f6d9d764'/>
<id>urn:sha1:10a4c735515a5afc317abe4d697a4c95f6d9d764</id>
<content type='text'>
This fixes a use-after-free bug in the handling of split transactions.
The AT DMA handler of the request was occasionally executed after the
AR DMA handler of the response.  The AT DMA handler then accessed an
already freed packet.

Reported by Johannes Berg.
http://bugzilla.kernel.org/show_bug.cgi?id=9617

Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
Tested-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: Jarod Wilson &lt;jwilson@redhat.com&gt;
</content>
</entry>
<entry>
<title>firewire: fw-ohci: shut up false compiler warning on PPC32</title>
<updated>2008-03-13T23:57:00Z</updated>
<author>
<name>Stefan Richter</name>
<email>stefanr@s5r6.in-berlin.de</email>
</author>
<published>2008-03-13T23:27:49Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f5101d58afc528c1d0c863fe03cd2d607766c4a1'/>
<id>urn:sha1:f5101d58afc528c1d0c863fe03cd2d607766c4a1</id>
<content type='text'>
Shut up "may be used uninitialised in this function" warnings due to
PPC32's implementation of dma_alloc_coherent().

Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
</content>
</entry>
<entry>
<title>firewire: fw-ohci: use dma_alloc_coherent for ar_buffer</title>
<updated>2008-03-13T23:57:00Z</updated>
<author>
<name>Jarod Wilson</name>
<email>jwilson@redhat.com</email>
</author>
<published>2008-03-12T21:43:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=bde1709aaa98f5004ab1580842c422be18eb4bc3'/>
<id>urn:sha1:bde1709aaa98f5004ab1580842c422be18eb4bc3</id>
<content type='text'>
Currently, we do nothing to guarantee we have a consistent DMA buffer for
asynchronous receive packets. Rather than doing several sync's following a
dma_map_single() to get consistent buffers, just switch to using
dma_alloc_coherent().

Resolves constant buffer failures on my own x86_64 laptop w/4GB of RAM and
likely to fix a number of other failures witnessed on x86_64 systems with
4GB of RAM or more.

Signed-off-by: Jarod Wilson &lt;jwilson@redhat.com&gt;
Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
</content>
</entry>
<entry>
<title>firewire: fw-sbp2: fix for SYM13FW500 bridge (Datafab disk)</title>
<updated>2008-03-13T23:56:59Z</updated>
<author>
<name>Stefan Richter</name>
<email>stefanr@s5r6.in-berlin.de</email>
</author>
<published>2008-03-11T21:32:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2aa9ff7fc5bc41d4b77c2da02086259a86f3d472'/>
<id>urn:sha1:2aa9ff7fc5bc41d4b77c2da02086259a86f3d472</id>
<content type='text'>
Fix I/O errors due to SYM13FW500's inability to handle larger request
sizes.  Reported by Piergiorgio Sartor &lt;piergiorgio.sartor@nexgo.de&gt; in
https://bugzilla.redhat.com/show_bug.cgi?id=436879

Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
Signed-off-by: Jarod Wilson &lt;jwilson@redhat.com&gt;
</content>
</entry>
<entry>
<title>firewire: update Kconfig help text</title>
<updated>2008-03-13T23:56:59Z</updated>
<author>
<name>Stefan Richter</name>
<email>stefanr@s5r6.in-berlin.de</email>
</author>
<published>2008-03-08T23:27:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0a8da30dc7bd6828f42d9f0585367731f634a0c8'/>
<id>urn:sha1:0a8da30dc7bd6828f42d9f0585367731f634a0c8</id>
<content type='text'>
Remove some less necessary information, point out that video1394 and
dv1394 should be blacklisted along with ohci1394.

Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
</content>
</entry>
<entry>
<title>firewire: warn on fatal condition in topology code</title>
<updated>2008-03-13T23:56:59Z</updated>
<author>
<name>Stefan Richter</name>
<email>stefanr@s5r6.in-berlin.de</email>
</author>
<published>2008-03-08T21:38:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=a2cdebe33f4c40a1bc7f66522303df89d5026cb4'/>
<id>urn:sha1:a2cdebe33f4c40a1bc7f66522303df89d5026cb4</id>
<content type='text'>
If this ever happens to anybody, we want to have it in his log.

Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
</content>
</entry>
<entry>
<title>firewire: fw-sbp2: set single-phase retry_limit</title>
<updated>2008-03-13T23:56:59Z</updated>
<author>
<name>Jarod Wilson</name>
<email>jwilson@redhat.com</email>
</author>
<published>2008-03-07T06:43:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=51f9dbef5be41f3ff6000c874741a3a357f9bad7'/>
<id>urn:sha1:51f9dbef5be41f3ff6000c874741a3a357f9bad7</id>
<content type='text'>
Per the SBP-2 specification, all SBP-2 target devices must have a BUSY_TIMEOUT
register. Per the 1394-1995 specification, the retry_limt portion of the
register should be set to 0x0 initially, and set on the target by a logged in
initiator (i.e., a Linux host w/firewire controller(s)).

Well, as it turns out, lots of devices these days have actually moved on to
starting to implement SBP-3 compliance, which says that retry_limit should
default to 0xf instead (yes, SBP-3 stomps directly on 1394-1995, oops).

Prior to this change, the firewire driver stack didn't touch retry_limit, and
any SBP-3 compliant device worked fine, while SBP-2 compliant ones were unable
to retransmit when the host returned an ack_busy_X, which resulted in stalled
out I/O, eventually causing the SCSI layer to give up and offline the device.

The simple fix is for us to set retry_limit to 0xf in the register for all
devices (which actually matches what the old ieee1394 stack did).

Prior to this change, a hard disk behind an SBP-2 Prolific PL-3507 bridge chip
would routinely encounter buffer I/O errors and wind up offlined by the SCSI
layer. With this change, I've encountered zero I/O failures moving tens of GB
of data around.

Signed-off-by: Jarod Wilson &lt;jwilson@redhat.com&gt;
Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
</content>
</entry>
<entry>
<title>firewire: fw-ohci: Apple UniNorth 1st generation support</title>
<updated>2008-03-13T23:56:59Z</updated>
<author>
<name>Stefan Richter</name>
<email>stefanr@s5r6.in-berlin.de</email>
</author>
<published>2008-03-01T01:47:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=11bf20ad028880a56689f086bfbabfd88b2af38b'/>
<id>urn:sha1:11bf20ad028880a56689f086bfbabfd88b2af38b</id>
<content type='text'>
Mostly copied from ohci1394.c.  Necessary for some older Macs, e.g.
PowerBook G3 Pismo and early PowerBook G4 Titanium.

Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;
</content>
</entry>
<entry>
<title>firewire: fw-ohci: PPC PMac platform code</title>
<updated>2008-03-13T23:56:58Z</updated>
<author>
<name>Stefan Richter</name>
<email>stefanr@s5r6.in-berlin.de</email>
</author>
<published>2008-03-01T01:42:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ea8d006b91ac58ec5a0862d09e0b629db399517f'/>
<id>urn:sha1:ea8d006b91ac58ec5a0862d09e0b629db399517f</id>
<content type='text'>
Copied from ohci1394.c.  This code is necessary to prevent machine check
exceptions when reloading or resuming the driver.

Tested on a 1st generation PowerBook G4 Titanium, which also needs the
pci_probe() hunk.

Signed-off-by: Stefan Richter &lt;stefanr@s5r6.in-berlin.de&gt;

I was able to reproduce the system exception on resume with a 3rd-gen
Titanium PowerBook G4 667, and this patch does let the system resume
successfully now.

Not quite clear if there was possibly an updated version coming using
pci_enable_device() instead of the pair of pmac_call_feature() calls,
but either way, this is a definite must-have, at least for older ppc
macs -- my Aluminum PowerBook G4/1.67 suspends and resumes without this
patch just fine.

Signed-off-by: Jarod Wilson &lt;jwilson@redhat.com&gt;
Acked-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
</feed>
