There are race conditions in the handling of drivers/firewire/fw-device.c::fw_device_idr which lead to firewire-core attempting to add new devices with same name as existing devices. This notably happens if a device is being shut down with error conditions and a new device is being created at the same time. See the WARNING in http://bugzilla.kernel.org/attachment.cgi?id=14580 for an example. Both fw_device_init() and fw_device_shutdown() call idr_remove() too early. Impact of the bug: Happens rarely, forces the user to unplug and replug the new device to get it working.
Correction: fw_device_init() looks fine, because only the code after successful device_add() matters.
proposed patch: http://lkml.org/lkml/2008/1/26/228
patch last updated on February 2: http://lkml.org/lkml/2008/2/2/108 committed to linux1394-2.6.git planned to be submitted to mainline before 2.6.25
fix merged by Linus