diff options
Diffstat (limited to 'net/sctp/associola.c')
-rw-r--r-- | net/sctp/associola.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c index 2ad1caf1ea42..9bad8ba0feda 100644 --- a/net/sctp/associola.c +++ b/net/sctp/associola.c | |||
@@ -99,7 +99,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a | |||
99 | 99 | ||
100 | /* Initialize the bind addr area. */ | 100 | /* Initialize the bind addr area. */ |
101 | sctp_bind_addr_init(&asoc->base.bind_addr, ep->base.bind_addr.port); | 101 | sctp_bind_addr_init(&asoc->base.bind_addr, ep->base.bind_addr.port); |
102 | rwlock_init(&asoc->base.addr_lock); | ||
103 | 102 | ||
104 | asoc->state = SCTP_STATE_CLOSED; | 103 | asoc->state = SCTP_STATE_CLOSED; |
105 | 104 | ||
@@ -937,8 +936,6 @@ struct sctp_transport *sctp_assoc_is_match(struct sctp_association *asoc, | |||
937 | { | 936 | { |
938 | struct sctp_transport *transport; | 937 | struct sctp_transport *transport; |
939 | 938 | ||
940 | sctp_read_lock(&asoc->base.addr_lock); | ||
941 | |||
942 | if ((htons(asoc->base.bind_addr.port) == laddr->v4.sin_port) && | 939 | if ((htons(asoc->base.bind_addr.port) == laddr->v4.sin_port) && |
943 | (htons(asoc->peer.port) == paddr->v4.sin_port)) { | 940 | (htons(asoc->peer.port) == paddr->v4.sin_port)) { |
944 | transport = sctp_assoc_lookup_paddr(asoc, paddr); | 941 | transport = sctp_assoc_lookup_paddr(asoc, paddr); |
@@ -952,7 +949,6 @@ struct sctp_transport *sctp_assoc_is_match(struct sctp_association *asoc, | |||
952 | transport = NULL; | 949 | transport = NULL; |
953 | 950 | ||
954 | out: | 951 | out: |
955 | sctp_read_unlock(&asoc->base.addr_lock); | ||
956 | return transport; | 952 | return transport; |
957 | } | 953 | } |
958 | 954 | ||
@@ -1376,19 +1372,13 @@ int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *asoc, | |||
1376 | int sctp_assoc_lookup_laddr(struct sctp_association *asoc, | 1372 | int sctp_assoc_lookup_laddr(struct sctp_association *asoc, |
1377 | const union sctp_addr *laddr) | 1373 | const union sctp_addr *laddr) |
1378 | { | 1374 | { |
1379 | int found; | 1375 | int found = 0; |
1380 | 1376 | ||
1381 | sctp_read_lock(&asoc->base.addr_lock); | ||
1382 | if ((asoc->base.bind_addr.port == ntohs(laddr->v4.sin_port)) && | 1377 | if ((asoc->base.bind_addr.port == ntohs(laddr->v4.sin_port)) && |
1383 | sctp_bind_addr_match(&asoc->base.bind_addr, laddr, | 1378 | sctp_bind_addr_match(&asoc->base.bind_addr, laddr, |
1384 | sctp_sk(asoc->base.sk))) { | 1379 | sctp_sk(asoc->base.sk))) |
1385 | found = 1; | 1380 | found = 1; |
1386 | goto out; | ||
1387 | } | ||
1388 | 1381 | ||
1389 | found = 0; | ||
1390 | out: | ||
1391 | sctp_read_unlock(&asoc->base.addr_lock); | ||
1392 | return found; | 1382 | return found; |
1393 | } | 1383 | } |
1394 | 1384 | ||