diff options
Diffstat (limited to 'net/sctp/input.c')
-rw-r--r-- | net/sctp/input.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/net/sctp/input.c b/net/sctp/input.c index 80564fe03024..8b9b6790a3df 100644 --- a/net/sctp/input.c +++ b/net/sctp/input.c | |||
@@ -736,15 +736,12 @@ static void __sctp_unhash_endpoint(struct sctp_endpoint *ep) | |||
736 | 736 | ||
737 | epb = &ep->base; | 737 | epb = &ep->base; |
738 | 738 | ||
739 | if (hlist_unhashed(&epb->node)) | ||
740 | return; | ||
741 | |||
742 | epb->hashent = sctp_ep_hashfn(epb->bind_addr.port); | 739 | epb->hashent = sctp_ep_hashfn(epb->bind_addr.port); |
743 | 740 | ||
744 | head = &sctp_ep_hashtable[epb->hashent]; | 741 | head = &sctp_ep_hashtable[epb->hashent]; |
745 | 742 | ||
746 | sctp_write_lock(&head->lock); | 743 | sctp_write_lock(&head->lock); |
747 | __hlist_del(&epb->node); | 744 | hlist_del_init(&epb->node); |
748 | sctp_write_unlock(&head->lock); | 745 | sctp_write_unlock(&head->lock); |
749 | } | 746 | } |
750 | 747 | ||
@@ -825,7 +822,7 @@ static void __sctp_unhash_established(struct sctp_association *asoc) | |||
825 | head = &sctp_assoc_hashtable[epb->hashent]; | 822 | head = &sctp_assoc_hashtable[epb->hashent]; |
826 | 823 | ||
827 | sctp_write_lock(&head->lock); | 824 | sctp_write_lock(&head->lock); |
828 | __hlist_del(&epb->node); | 825 | hlist_del_init(&epb->node); |
829 | sctp_write_unlock(&head->lock); | 826 | sctp_write_unlock(&head->lock); |
830 | } | 827 | } |
831 | 828 | ||