| From 7ba0c47c34a1ea5bc7a24ca67309996cce0569b5 Mon Sep 17 00:00:00 2001 |
| From: WANG Cong <xiyou.wangcong@gmail.com> |
| Date: Tue, 31 Mar 2015 11:01:47 -0700 |
| Subject: ip6mr: call del_timer_sync() in ip6mr_free_table() |
| |
| commit 7ba0c47c34a1ea5bc7a24ca67309996cce0569b5 upstream. |
| |
| We need to wait for the flying timers, since we |
| are going to free the mrtable right after it. |
| |
| Cc: Hannes Frederic Sowa <hannes@stressinduktion.org> |
| Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Zefan Li <lizefan@huawei.com> |
| --- |
| net/ipv6/ip6mr.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/net/ipv6/ip6mr.c |
| +++ b/net/ipv6/ip6mr.c |
| @@ -333,7 +333,7 @@ static struct mr6_table *ip6mr_new_table |
| |
| static void ip6mr_free_table(struct mr6_table *mrt) |
| { |
| - del_timer(&mrt->ipmr_expire_timer); |
| + del_timer_sync(&mrt->ipmr_expire_timer); |
| mroute_clean_tables(mrt); |
| kfree(mrt); |
| } |