diff options
author | Vlad Yasevich <vyasevich@gmail.com> | 2015-08-28 21:23:39 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-08-28 22:25:43 -0700 |
commit | 73e6742027f5cb5a7c747d9abab5351b01fd4c74 (patch) | |
tree | 5fc03ff07997ea5883a9279ce5d2b77d9407328c /net | |
parent | b0d4943eec9a42c7ba2065f6cfa949894204dd4a (diff) |
sctp: Do not try to search for the transport twice
When removing an non-primary transport during ASCONF
processing, we end up traversing the transport list
twice: once in sctp_cmd_del_non_primary, and once in
sctp_assoc_del_peer. We can avoid the second
search and call sctp_assoc_rm_peer() instead.
Found by code inspection during code reviews.
Signed-off-by: Vladislav Yasevich <vyasevich@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/sctp/sm_sideeffect.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c index 85e6f03aeb70..35df1266bf07 100644 --- a/net/sctp/sm_sideeffect.c +++ b/net/sctp/sm_sideeffect.c @@ -954,7 +954,7 @@ static void sctp_cmd_del_non_primary(struct sctp_association *asoc) t = list_entry(pos, struct sctp_transport, transports); if (!sctp_cmp_addr_exact(&t->ipaddr, &asoc->peer.primary_addr)) { - sctp_assoc_del_peer(asoc, &t->ipaddr); + sctp_assoc_rm_peer(asoc, t); } } } |