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: Stefan Richter <stefanr@s5r6.in-berlin.de>
This commit is contained in:
parent
0fa1986f3a
commit
d6f95a3d14
2 changed files with 6 additions and 9 deletions
|
@ -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,
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
||||||
|
|
||||||
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 {
|
||||||
* 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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue