summaryrefslogtreecommitdiffstats
path: root/isisd/isis_lfa.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--isisd/isis_lfa.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/isisd/isis_lfa.c b/isisd/isis_lfa.c
index 085177b94..b535924e9 100644
--- a/isisd/isis_lfa.c
+++ b/isisd/isis_lfa.c
@@ -1148,10 +1148,13 @@ static void lfa_calc_pq_spaces(struct isis_spftree *spftree_pc,
/*
* Compute the reverse SPF in the behalf of the node
- * adjacent to the failure.
+ * adjacent to the failure, if we haven't done that
+ * before
*/
- adj_node->lfa.spftree_reverse =
- isis_spf_reverse_run(adj_node->lfa.spftree);
+ if (!adj_node->lfa.spftree_reverse)
+ adj_node->lfa.spftree_reverse =
+ isis_spf_reverse_run(
+ adj_node->lfa.spftree);
lfa_calc_reach_nodes(adj_node->lfa.spftree_reverse,
spftree_reverse, adj_nodes, false,