File tree Expand file tree Collapse file tree 1 file changed +20
-5
lines changed Expand file tree Collapse file tree 1 file changed +20
-5
lines changed Original file line number Diff line number Diff line change @@ -4629,14 +4629,29 @@ static void __exit packet_exit(void)
46294629
46304630static int __init packet_init (void )
46314631{
4632- int rc = proto_register ( & packet_proto , 0 ) ;
4632+ int rc ;
46334633
4634- if (rc != 0 )
4634+ rc = proto_register (& packet_proto , 0 );
4635+ if (rc )
46354636 goto out ;
4637+ rc = sock_register (& packet_family_ops );
4638+ if (rc )
4639+ goto out_proto ;
4640+ rc = register_pernet_subsys (& packet_net_ops );
4641+ if (rc )
4642+ goto out_sock ;
4643+ rc = register_netdevice_notifier (& packet_netdev_notifier );
4644+ if (rc )
4645+ goto out_pernet ;
46364646
4637- sock_register (& packet_family_ops );
4638- register_pernet_subsys (& packet_net_ops );
4639- register_netdevice_notifier (& packet_netdev_notifier );
4647+ return 0 ;
4648+
4649+ out_pernet :
4650+ unregister_pernet_subsys (& packet_net_ops );
4651+ out_sock :
4652+ sock_unregister (PF_PACKET );
4653+ out_proto :
4654+ proto_unregister (& packet_proto );
46404655out :
46414656 return rc ;
46424657}
You can’t perform that action at this time.
0 commit comments