diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2009-06-14 05:45:27 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2009-06-14 08:26:29 -0400 |
commit | 5a124d382ea5c97be43c779e4f481455e0287654 (patch) | |
tree | d77069fe1456932f4ce2872dc6b1f963cb8662c5 /include/linux | |
parent | f91e3bd842ec6f5cea245993926ee8ff26250467 (diff) |
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>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/firewire.h | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/include/linux/firewire.h b/include/linux/firewire.h index 5cb0c1549ff1..9823946adbc5 100644 --- a/include/linux/firewire.h +++ b/include/linux/firewire.h | |||
@@ -131,10 +131,6 @@ struct fw_card { | |||
131 | bool broadcast_channel_allocated; | 131 | bool broadcast_channel_allocated; |
132 | u32 broadcast_channel; | 132 | u32 broadcast_channel; |
133 | u32 topology_map[(CSR_TOPOLOGY_MAP_END - CSR_TOPOLOGY_MAP) / 4]; | 133 | u32 topology_map[(CSR_TOPOLOGY_MAP_END - CSR_TOPOLOGY_MAP) / 4]; |
134 | |||
135 | /* firewire-net driver data */ | ||
136 | void *netdev; | ||
137 | struct list_head peer_list; | ||
138 | }; | 134 | }; |
139 | 135 | ||
140 | static inline struct fw_card *fw_card_get(struct fw_card *card) | 136 | static inline struct fw_card *fw_card_get(struct fw_card *card) |