Currently, building eth1394 (IP over FireWire) hardwires an IPover1394 entry into the local FireWire node's configuration ROM, i.e. the information about local capabilities which is published by ieee1394 to all nodes on the bus. As soon as a host adapter is set up (i.e. modprobe ohci1394), this IPover1394 entry will cause a hotplug event and eth1394 will be autoloaded. Administrators can prevent this by blacklisting eth1394 in /etc/hotplug/blacklist and /etc/modprobe.conf. A lot of people do this because they don't want eth1394 to alter the order of ethX devices, or because eth1394 creates difficulties with FireWire applications in userspace, or because they just don't want to load eth1394 all the time. This blacklisting has a minor drawback: The local node is advertizing IPover1394 capability even though it doesn't have this capability unless eth1394 is loaded. Solution: Provide a kernel configuration option which causes the IPover1394 entry not to be hardwired into ieee1394 but to be added later by eth1394 when/if eth1394 is loaded.
Created attachment 10952 [details] ieee1394: eth1394: don't autoload by hotplug when ohci1394 starts
Created attachment 10953 [details] ieee1394: eth1394: don't autoload by hotplug when ohci1394 starts same change but without bloat from feature-removal-schedule procedure
Some downstream bugs, for the record: "don't configure automaticaly ethernet on firewire ports" http://qa.mandriva.com/show_bug.cgi?id=20126 "Firewire ethernet borks Real ethernet." http://qa.mandriva.com/show_bug.cgi?id=21963 "The eth1394 driver b0rks the network during/after install." https://bugs.gentoo.org/show_bug.cgi?id=113924 "eth1394 loaded instead of via-rhine" https://bugs.gentoo.org/show_bug.cgi?id=128962 "eth1394 grabs eth0 since coldplug went away" https://bugs.gentoo.org/show_bug.cgi?id=157050
fix merged for Linux 2.6.22-rc1
PS: Final patch: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=70093cfde8af52b0b9030d90f9004cbde38f2ff8 Unlike proposed in the bug description, the 2nd and final patch do not offer a build-time choice between the old and the new behavior. The old behavior can be brought back by the following lines in /etc/modprobe.conf: install ohci1394 /sbin/modprobe eth1394; \ /sbin/modprobe --ignore-install ohci1394 Eth1394 will still be auto-loaded by hotplug if an _external_ IP-over-1394 capable device is detected.