mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	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:
		
							parent
							
								
									857a6e0a4d
								
							
						
					
					
						commit
						5ce1bbb97b
					
				
					 1 changed files with 16 additions and 17 deletions
				
			
		|  | @ -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) | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Ilpo Järvinen
						Ilpo Järvinen