| Submitter | YOSHIFUJI Hideaki / 吉藤英明 |
|---|---|
| Date | Jan. 30, 2013, 7:26 p.m. |
| Message ID | <510973F2.3080400@linux-ipv6.org> |
| Download | mbox | patch |
| Permalink | /patch/216963/ |
| State | Accepted |
| Delegated to: | David Miller |
| Headers | show |
Comments
From: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Date: Thu, 31 Jan 2013 04:26:42 +0900 > Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Patch
diff --git a/net/ipv6/ip6_flowlabel.c b/net/ipv6/ip6_flowlabel.c index 29124b7..5d767f1 100644 --- a/net/ipv6/ip6_flowlabel.c +++ b/net/ipv6/ip6_flowlabel.c @@ -255,10 +255,19 @@ void fl6_free_socklist(struct sock *sk) struct ipv6_pinfo *np = inet6_sk(sk); struct ipv6_fl_socklist *sfl; - while ((sfl = np->ipv6_fl_list) != NULL) { - np->ipv6_fl_list = sfl->next; + if (!np->ipv6_fl_list) + return; + + write_lock_bh(&ipv6_sk_fl_lock); + sfl = np->ipv6_fl_list; + np->ipv6_fl_list = NULL; + write_unlock_bh(&ipv6_sk_fl_lock); + + while (sfl) { + struct ipv6_fl_socklist *next = sfl->next; fl_release(sfl->fl); kfree(sfl); + sfl = next; } }
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> --- net/ipv6/ip6_flowlabel.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)