| From ae5accf7b504ac92c0f2c3380b6262c9ad70c84d Mon Sep 17 00:00:00 2001 |
| From: Jeremy Sowden <jeremy@azazel.net> |
| Date: Tue, 19 Mar 2019 15:39:20 +0000 |
| Subject: vti4: ipip tunnel deregistration fixes. |
| |
| [ Upstream commit 5483844c3fc18474de29f5d6733003526e0a9f78 ] |
| |
| If tunnel registration failed during module initialization, the module |
| would fail to deregister the IPPROTO_COMP protocol and would attempt to |
| deregister the tunnel. |
| |
| The tunnel was not deregistered during module-exit. |
| |
| Fixes: dd9ee3444014e ("vti4: Fix a ipip packet processing bug in 'IPCOMP' virtual tunnel") |
| Signed-off-by: Jeremy Sowden <jeremy@azazel.net> |
| Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| net/ipv4/ip_vti.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c |
| index 270e79f4d40e6..4e39c935e057e 100644 |
| --- a/net/ipv4/ip_vti.c |
| +++ b/net/ipv4/ip_vti.c |
| @@ -678,9 +678,9 @@ static int __init vti_init(void) |
| return err; |
| |
| rtnl_link_failed: |
| - xfrm4_protocol_deregister(&vti_ipcomp4_protocol, IPPROTO_COMP); |
| -xfrm_tunnel_failed: |
| xfrm4_tunnel_deregister(&ipip_handler, AF_INET); |
| +xfrm_tunnel_failed: |
| + xfrm4_protocol_deregister(&vti_ipcomp4_protocol, IPPROTO_COMP); |
| xfrm_proto_comp_failed: |
| xfrm4_protocol_deregister(&vti_ah4_protocol, IPPROTO_AH); |
| xfrm_proto_ah_failed: |
| @@ -696,6 +696,7 @@ pernet_dev_failed: |
| static void __exit vti_fini(void) |
| { |
| rtnl_link_unregister(&vti_link_ops); |
| + xfrm4_tunnel_deregister(&ipip_handler, AF_INET); |
| xfrm4_protocol_deregister(&vti_ipcomp4_protocol, IPPROTO_COMP); |
| xfrm4_protocol_deregister(&vti_ah4_protocol, IPPROTO_AH); |
| xfrm4_protocol_deregister(&vti_esp4_protocol, IPPROTO_ESP); |
| -- |
| 2.20.1 |
| |