firewire: net: allow for unordered unit discovery
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Sun, 14 Jun 2009 09:45:27 +0000 (11:45 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Sun, 14 Jun 2009 12:26:29 +0000 (14:26 +0200)
commit5a124d382ea5c97be43c779e4f481455e0287654
treed77069fe1456932f4ce2872dc6b1f963cb8662c5
parentf91e3bd842ec6f5cea245993926ee8ff26250467
firewire: net: allow for unordered unit discovery

Decouple the creation and destruction of the net_device from the order
of discovery and removal of nodes with RFC 2734 unit directories since
there is no reliable order.  The net_device is now created when the
first RFC 2734 unit on a card is discovered, and destroyed when the last
RFC 2734 unit on a card went away.  This includes all remote units as
well as the local unit, which is therefore tracked as a peer now too.

Also, locking around the list of peers is slightly extended to guard
against peer removal.  As a side effect, fwnet_peer.pdg_lock has become
superfluous and is deleted.

Peer data (max_rec, speed, node ID, generation) are updated more
carefully.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/firewire/core-card.c
drivers/firewire/net.c
include/linux/firewire.h