X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=net%2Fsctp%2Fipv6.c;h=aabaee41dd3eb07613629e78462601003902dee6;hb=9f7d653b67aed2d92540fbb0a8adaf32fcf352ae;hp=0bb0d7cb9f10b8888dafe7fd8c82183a43d53aae;hpb=3ced2dddf10f26f0aaff96f3345a3d876cea62f8;p=deliverable%2Flinux.git diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c index 0bb0d7cb9f10..aabaee41dd3e 100644 --- a/net/sctp/ipv6.c +++ b/net/sctp/ipv6.c @@ -112,6 +112,7 @@ static int sctp_inet6addr_event(struct notifier_block *this, unsigned long ev, addr->valid = 1; spin_lock_bh(&sctp_local_addr_lock); list_add_tail_rcu(&addr->list, &sctp_local_addr_list); + sctp_addr_wq_mgmt(addr, SCTP_ADDR_NEW); spin_unlock_bh(&sctp_local_addr_lock); } break; @@ -122,6 +123,7 @@ static int sctp_inet6addr_event(struct notifier_block *this, unsigned long ev, if (addr->a.sa.sa_family == AF_INET6 && ipv6_addr_equal(&addr->a.v6.sin6_addr, &ifa->addr)) { + sctp_addr_wq_mgmt(addr, SCTP_ADDR_DEL); found = 1; addr->valid = 0; list_del_rcu(&addr->list);