diff options
-rw-r--r-- | net/sctp/associola.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c index 104fae489ad4..a88b8524846e 100644 --- a/net/sctp/associola.c +++ b/net/sctp/associola.c | |||
@@ -1356,14 +1356,11 @@ static void sctp_select_active_and_retran_path(struct sctp_association *asoc) | |||
1356 | trans_sec = trans_pri; | 1356 | trans_sec = trans_pri; |
1357 | 1357 | ||
1358 | /* If we failed to find a usable transport, just camp on the | 1358 | /* If we failed to find a usable transport, just camp on the |
1359 | * primary or retran, even if they are inactive, if possible | 1359 | * active or pick a PF iff it's the better choice. |
1360 | * pick a PF iff it's the better choice. | ||
1361 | */ | 1360 | */ |
1362 | if (trans_pri == NULL) { | 1361 | if (trans_pri == NULL) { |
1363 | trans_pri = sctp_trans_elect_best(asoc->peer.primary_path, | 1362 | trans_pri = sctp_trans_elect_best(asoc->peer.active_path, trans_pf); |
1364 | asoc->peer.retran_path); | 1363 | trans_sec = trans_pri; |
1365 | trans_pri = sctp_trans_elect_best(trans_pri, trans_pf); | ||
1366 | trans_sec = asoc->peer.primary_path; | ||
1367 | } | 1364 | } |
1368 | 1365 | ||
1369 | /* Set the active and retran transports. */ | 1366 | /* Set the active and retran transports. */ |