]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'hsr-fix-several-bugs-in-generic-netlink-callback'
authorDavid S. Miller <davem@davemloft.net>
Mon, 16 Mar 2020 08:46:10 +0000 (01:46 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 Mar 2020 08:46:10 +0000 (01:46 -0700)
commit7db5e8456fb01e1c90a37e3ae3e2fe8f7c6db9a9
tree1ecea3feaa0f1f092d8b606d4cf06c33f762b68a
parent7242d73ccb9f4d9f88d88c4954770df0ca9deaf9
parenta7fb6c432b7c4158fd90fe024b99ed9c44e27859
Merge branch 'hsr-fix-several-bugs-in-generic-netlink-callback'

Taehee Yoo says:

====================
hsr: fix several bugs in generic netlink callback

This patchset is to fix several bugs they are related in
generic netlink callback in hsr module.

1. The first patch is to add missing rcu_read_lock() in
hsr_get_node_{list/status}().
The hsr_get_node_{list/status}() are not protected by RTNL because
they are callback functions of generic netlink.
But it calls __dev_get_by_index() without acquiring RTNL.
So, it would use unsafe data.

2. The second patch is to avoid failure of hsr_get_node_list().
hsr_get_node_list() is a callback of generic netlink and
it is used to get node information in userspace.
But, if there are so many nodes, it fails because of buffer size.
So, in this patch, restart routine is added.

3. The third patch is to set .netnsok flag to true.
If .netnsok flag is false, non-init_net namespace is not allowed to
operate generic netlink operations.
So, currently, non-init_net namespace has no way to get node information
because .netnsok is false in the current hsr code.

Change log:
v1->v2:
 - Preserve reverse christmas tree variable ordering in the second patch.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>