linux/drivers/firewire
Stefan Richter ae1e535579 firewire: deadline for PHY config transmission
If the low-level driver failed to initialize a card properly without
noticing it, fw-core was blocked indefinitely when trying to send a
PHY config packet.  This hung up the events kernel thread, e.g. locked
up keyboard input.
https://bugzilla.redhat.com/show_bug.cgi?id=444694
https://bugzilla.redhat.com/show_bug.cgi?id=446763

This problem was introduced between 2.6.25 and 2.6.26-rc1 by commit
2a0a259049 "firewire: wait until PHY
configuration packet was transmitted (fix bus reset loop)".

The solution is to wait with timeout.  I tested it with 7 different
working controllers and 1 non-working controller.  On the working ones,
the packet callback complete()s usually --- but not always --- before a
timeout of 10ms.  Hence I chose a safer timeout of 100ms.

On the few tests with the non-working controller ALi M5271, PHY config
packet transmission always timed out so far.  (Fw-ohci needs to be fixed
for this controller independently of this deadline fix.  Often the core
doesn't even attempt to send a phy config because not even self ID
reception works.)

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2008-06-19 00:12:35 +02:00
..
fw-card.c firewire: cleanups 2008-04-18 17:55:37 +02:00
fw-cdev.c firewire: fill_bus_reset_event needs lock protection 2008-06-19 00:12:35 +02:00
fw-device.c Convert asm/semaphore.h users to linux/semaphore.h 2008-04-18 22:22:54 -04:00
fw-device.h firewire: reread config ROM when device reset the bus 2008-04-18 17:55:36 +02:00
fw-iso.c firewire: cleanups 2008-04-18 17:55:37 +02:00
fw-ohci.c firewire: fw-ohci: unify printk prefixes 2008-06-19 00:12:35 +02:00
fw-ohci.h firewire: fw-ohci: log regAccessFail events 2008-04-18 17:55:34 +02:00
fw-sbp2.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-05-02 13:52:35 -07:00
fw-topology.c firewire: fix synchronization of gap counts 2008-04-18 17:55:36 +02:00
fw-topology.h firewire: reread config ROM when device reset the bus 2008-04-18 17:55:36 +02:00
fw-transaction.c firewire: deadline for PHY config transmission 2008-06-19 00:12:35 +02:00
fw-transaction.h firewire: cleanups 2008-04-18 17:55:37 +02:00
Kconfig firewire: debug interrupt events 2008-04-18 17:55:34 +02:00
Makefile firewire: prefix modules with firewire- instead of fw- 2007-05-27 23:21:01 +02:00