xfrm6_tunnel: join error paths using goto
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
857a6e0a4d
Коммит
5ce1bbb97b
|
@ -345,24 +345,23 @@ static struct xfrm6_tunnel xfrm46_tunnel_handler = {
|
|||
static int __init xfrm6_tunnel_init(void)
|
||||
{
|
||||
if (xfrm_register_type(&xfrm6_tunnel_type, AF_INET6) < 0)
|
||||
return -EAGAIN;
|
||||
|
||||
if (xfrm6_tunnel_register(&xfrm6_tunnel_handler, AF_INET6)) {
|
||||
xfrm_unregister_type(&xfrm6_tunnel_type, AF_INET6);
|
||||
return -EAGAIN;
|
||||
}
|
||||
if (xfrm6_tunnel_register(&xfrm46_tunnel_handler, AF_INET)) {
|
||||
xfrm6_tunnel_deregister(&xfrm6_tunnel_handler, AF_INET6);
|
||||
xfrm_unregister_type(&xfrm6_tunnel_type, AF_INET6);
|
||||
return -EAGAIN;
|
||||
}
|
||||
if (xfrm6_tunnel_spi_init() < 0) {
|
||||
xfrm6_tunnel_deregister(&xfrm46_tunnel_handler, AF_INET);
|
||||
xfrm6_tunnel_deregister(&xfrm6_tunnel_handler, AF_INET6);
|
||||
xfrm_unregister_type(&xfrm6_tunnel_type, AF_INET6);
|
||||
return -EAGAIN;
|
||||
}
|
||||
goto err;
|
||||
if (xfrm6_tunnel_register(&xfrm6_tunnel_handler, AF_INET6))
|
||||
goto unreg;
|
||||
if (xfrm6_tunnel_register(&xfrm46_tunnel_handler, AF_INET))
|
||||
goto dereg6;
|
||||
if (xfrm6_tunnel_spi_init() < 0)
|
||||
goto dereg46;
|
||||
return 0;
|
||||
|
||||
dereg46:
|
||||
xfrm6_tunnel_deregister(&xfrm46_tunnel_handler, AF_INET);
|
||||
dereg6:
|
||||
xfrm6_tunnel_deregister(&xfrm6_tunnel_handler, AF_INET6);
|
||||
unreg:
|
||||
xfrm_unregister_type(&xfrm6_tunnel_type, AF_INET6);
|
||||
err:
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
static void __exit xfrm6_tunnel_fini(void)
|
||||
|
|
Загрузка…
Ссылка в новой задаче