aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/netinet/sctp_pcb.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c
index 080cb81fa09a..cfac25c90891 100644
--- a/sys/netinet/sctp_pcb.c
+++ b/sys/netinet/sctp_pcb.c
@@ -192,21 +192,17 @@ sctp_find_ifn(void *ifn, uint32_t ifn_index)
struct sctp_ifn *sctp_ifnp;
struct sctp_ifnlist *hash_ifn_head;
- /*
- * We assume the lock is held for the addresses if that's wrong
- * problems could occur :-)
- */
SCTP_IPI_ADDR_LOCK_ASSERT();
hash_ifn_head = &SCTP_BASE_INFO(vrf_ifn_hash)[(ifn_index & SCTP_BASE_INFO(vrf_ifn_hashmark))];
LIST_FOREACH(sctp_ifnp, hash_ifn_head, next_bucket) {
if (sctp_ifnp->ifn_index == ifn_index) {
- return (sctp_ifnp);
+ break;
}
- if (sctp_ifnp->ifn_p && ifn && (sctp_ifnp->ifn_p == ifn)) {
- return (sctp_ifnp);
+ if (ifn != NULL && sctp_ifnp->ifn_p == ifn) {
+ break;
}
}
- return (NULL);
+ return (sctp_ifnp);
}
struct sctp_vrf *