]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
net/af_packet: registration process optimization in packet_init()
authorZiyang Xuan <william.xuanziyang@huawei.com>
Thu, 15 Sep 2022 01:08:35 +0000 (09:08 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 21 Sep 2022 11:59:22 +0000 (12:59 +0100)
commit63b7c2ebcc1d69bbf19e7418ef6c2496364f0ce2
treeefe2937b3518dbf1c7c9973b0d34e59fa88863c1
parent2a566f0148bad759ba6f3758914edda1a8a4181f
net/af_packet: registration process optimization in packet_init()

Now, register_pernet_subsys() and register_netdevice_notifier() are both
after sock_register(). It can create PF_PACKET socket and process socket
once sock_register() successfully. It is possible PF_PACKET socket is
creating but register_pernet_subsys() and register_netdevice_notifier()
are not registered yet. Thus net->packet.sklist_lock and net->packet.sklist
will be accessed without initialization that is done in packet_net_init().
Although this is a low probability scenario.

Move register_pernet_subsys() and register_netdevice_notifier() to the
front in packet_init(). Correspondingly, adjust the unregister process
in packet_exit().

Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/packet/af_packet.c