ieee1394: ignore nonzero Bus_Info_Block.max_rom, fetch config ROM in quadlets
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Sat, 13 Dec 2008 22:12:06 +0000 (23:12 +0100)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Sun, 4 Jan 2009 22:50:34 +0000 (23:50 +0100)
commit0bed1819687b50a769a1fee6d91cb0ef79b011b4
treebc5c36dda1f8e8de697ca3bb2b4d170cb77183c6
parentc1fc58d63d754b82070881c62601551464afa19d
ieee1394: ignore nonzero Bus_Info_Block.max_rom, fetch config ROM in quadlets

It is already known that buggy firmwares exist which report a bogus
link_spd in their config ROM bus info block.  We now got the first
report of a bogus max_rom too (Freecom FireWire Hard Drive 1TB,
http://bugzilla.kernel.org/show_bug.cgi?id=12206).

I suspect other OSs only use quadlet reads to fetch the config ROM,
otherwise the firmware authors would have noticed their mistake.
Hence limit ieee1394's config ROM fetching routine to quadlets as the
safe minimum regardless of what the bus info block says.

This will potentially slow the bus reset handling by nodemgr somewhat
down.  But most existing devices support only quadlet reads anyway,
hence there will often be no actual difference to before this change.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/ieee1394/csr1212.c
drivers/ieee1394/csr1212.h
drivers/ieee1394/nodemgr.c