ipv6: fix exthdrs offload registration in out_rt path
authorDaniel Borkmann <daniel@iogearbox.net>
Wed, 2 Sep 2015 22:29:07 +0000 (00:29 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 1 Oct 2015 10:07:38 +0000 (12:07 +0200)
[ Upstream commit e41b0bedba0293b9e1e8d1e8ed553104b9693656 ]

We previously register IPPROTO_ROUTING offload under inet6_add_offload(),
but in error path, we try to unregister it with inet_del_offload(). This
doesn't seem correct, it should actually be inet6_del_offload(), also
ipv6_exthdrs_offload_exit() from that commit seems rather incorrect (it
also uses rthdr_offload twice), but it got removed entirely later on.

Fixes: 3336288a9fea ("ipv6: Switch to using new offload infrastructure.")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ipv6/exthdrs_offload.c

index 447a7fbd1bb6f28dc78203ef4f4254705dc68c99..f5e2ba1c18bf8143331c6463e9dec86bb69cd176 100644 (file)
@@ -36,6 +36,6 @@ out:
        return ret;
 
 out_rt:
-       inet_del_offload(&rthdr_offload, IPPROTO_ROUTING);
+       inet6_del_offload(&rthdr_offload, IPPROTO_ROUTING);
        goto out;
 }