fou: avoid calling udp_del_offload() twice
authorWANG Cong <xiyou.wangcong@gmail.com>
Fri, 10 Apr 2015 19:00:26 +0000 (12:00 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 13 Apr 2015 01:25:13 +0000 (21:25 -0400)
This fixes the following harmless warning:

./ip/ip fou del port 7777
[  122.907516] udp_del_offload: didn't find offload for port 7777

Cc: Tom Herbert <tom@herbertland.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/fou.c

index ff069f6..c8db627 100644 (file)
@@ -410,7 +410,8 @@ static void fou_release(struct fou *fou)
        struct socket *sock = fou->sock;
        struct sock *sk = sock->sk;
 
-       udp_del_offload(&fou->udp_offloads);
+       if (sk->sk_family == AF_INET)
+               udp_del_offload(&fou->udp_offloads);
 
        list_del(&fou->list);
 
@@ -528,7 +529,6 @@ static int fou_destroy(struct net *net, struct fou_cfg *cfg)
        spin_lock(&fou_lock);
        list_for_each_entry(fou, &fou_list, list) {
                if (fou->port == port) {
-                       udp_del_offload(&fou->udp_offloads);
                        fou_release(fou);
                        err = 0;
                        break;