Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6f95a3d authored by Stefan Richter's avatar Stefan Richter
Browse files

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
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -355,6 +355,9 @@ report_lost_node(struct fw_card *card,
{
	fw_node_event(card, node, FW_NODE_DESTROYED);
	fw_node_put(node);

	/* Topology has changed - reset bus manager retry counter */
	card->bm_retries = 0;
}

static void
@@ -374,6 +377,9 @@ report_found_node(struct fw_card *card,
	}

	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)
@@ -514,14 +520,6 @@ fw_core_handle_bus_reset(struct fw_card *card,

	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;
	/*
	 * Update node_id before generation to prevent anybody from using
+0 −1
Original line number Diff line number Diff line
@@ -241,7 +241,6 @@ struct fw_card {
	 * We need to store up to 4 self ID for a maximum of 63
	 * devices plus 3 words for the topology map header.
	 */
	int self_id_count;
	u32 topology_map[252 + 3];
	u32 broadcast_channel;