Commit d6f95a3d authored by Stefan Richter's avatar Stefan Richter

firewire: fix resetting of bus manager retry counter

An earlier change, maybe long ago, removed the copying of self_id_count
into card->self_id_count.  Since then each bus reset cleared
card->bm_retries even when it shouldn't.
Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
parent 0fa1986f
...@@ -355,6 +355,9 @@ report_lost_node(struct fw_card *card, ...@@ -355,6 +355,9 @@ report_lost_node(struct fw_card *card,
{ {
fw_node_event(card, node, FW_NODE_DESTROYED); fw_node_event(card, node, FW_NODE_DESTROYED);
fw_node_put(node); fw_node_put(node);
/* Topology has changed - reset bus manager retry counter */
card->bm_retries = 0;
} }
static void static void
...@@ -374,6 +377,9 @@ report_found_node(struct fw_card *card, ...@@ -374,6 +377,9 @@ report_found_node(struct fw_card *card,
} }
fw_node_event(card, node, FW_NODE_CREATED); fw_node_event(card, node, FW_NODE_CREATED);
/* Topology has changed - reset bus manager retry counter */
card->bm_retries = 0;
} }
void fw_destroy_nodes(struct fw_card *card) void fw_destroy_nodes(struct fw_card *card)
...@@ -514,14 +520,6 @@ fw_core_handle_bus_reset(struct fw_card *card, ...@@ -514,14 +520,6 @@ fw_core_handle_bus_reset(struct fw_card *card,
spin_lock_irqsave(&card->lock, flags); spin_lock_irqsave(&card->lock, flags);
/*
* If the new topology has a different self_id_count the topology
* changed, either nodes were added or removed. In that case we
* reset the IRM reset counter.
*/
if (card->self_id_count != self_id_count)
card->bm_retries = 0;
card->node_id = node_id; card->node_id = node_id;
/* /*
* Update node_id before generation to prevent anybody from using * Update node_id before generation to prevent anybody from using
......
...@@ -241,7 +241,6 @@ struct fw_card { ...@@ -241,7 +241,6 @@ struct fw_card {
* We need to store up to 4 self ID for a maximum of 63 * We need to store up to 4 self ID for a maximum of 63
* devices plus 3 words for the topology map header. * devices plus 3 words for the topology map header.
*/ */
int self_id_count;
u32 topology_map[252 + 3]; u32 topology_map[252 + 3];
u32 broadcast_channel; u32 broadcast_channel;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment