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 @@ -4624,14 +4624,29 @@ static void __exit packet_exit(void)
46244624
46254625static int __init packet_init (void )
46264626{
4627- int rc = proto_register ( & packet_proto , 0 ) ;
4627+ int rc ;
46284628
4629- if (rc != 0 )
4629+ rc = proto_register (& packet_proto , 0 );
4630+ if (rc )
46304631 goto out ;
4632+ rc = sock_register (& packet_family_ops );
4633+ if (rc )
4634+ goto out_proto ;
4635+ rc = register_pernet_subsys (& packet_net_ops );
4636+ if (rc )
4637+ goto out_sock ;
4638+ rc = register_netdevice_notifier (& packet_netdev_notifier );
4639+ if (rc )
4640+ goto out_pernet ;
46314641
4632- sock_register (& packet_family_ops );
4633- register_pernet_subsys (& packet_net_ops );
4634- register_netdevice_notifier (& packet_netdev_notifier );
4642+ return 0 ;
4643+
4644+ out_pernet :
4645+ unregister_pernet_subsys (& packet_net_ops );
4646+ out_sock :
4647+ sock_unregister (PF_PACKET );
4648+ out_proto :
4649+ proto_unregister (& packet_proto );
46354650out :
46364651 return rc ;
46374652}
You can’t perform that action at this time.
0 commit comments