Message ID | 20220929072902.2986539-1-jiri@resnulli.us (mailing list archive) |
---|---|
Headers | show |
Series | devlink: sanitize per-port region creation/destruction | expand |
Hello: This series was applied to netdev/net-next.git (master) by Jakub Kicinski <kuba@kernel.org>: On Thu, 29 Sep 2022 09:28:55 +0200 you wrote: > From: Jiri Pirko <jiri@nvidia.com> > > Currently the only user of per-port devlink regions is DSA. All drivers > that use regions register them before devlink registration. For DSA, > this was not possible as the internals of struct devlink_port needed for > region creation are initialized during port registration. > > [...] Here is the summary with links: - [net-next,v3,1/7] net: devlink: introduce port registered assert helper and use it https://git.kernel.org/netdev/net-next/c/3fcb698d9c77 - [net-next,v3,2/7] net: devlink: introduce a flag to indicate devlink port being registered https://git.kernel.org/netdev/net-next/c/081adcfe930e - [net-next,v3,3/7] net: devlink: add port_init/fini() helpers to allow pre-register/post-unregister functions https://git.kernel.org/netdev/net-next/c/ae3bbc04d4bf - [net-next,v3,4/7] net: dsa: move port_setup/teardown to be called outside devlink port registered area https://git.kernel.org/netdev/net-next/c/d82acd85cc41 - [net-next,v3,5/7] net: dsa: don't leave dangling pointers in dp->pl when failing https://git.kernel.org/netdev/net-next/c/cf5ca4ddc37a - [net-next,v3,6/7] net: dsa: don't do devlink port setup early https://git.kernel.org/netdev/net-next/c/c698a5fbf7fd - [net-next,v3,7/7] net: dsa: remove bool devlink_port_setup https://git.kernel.org/netdev/net-next/c/61e4a5162158 You are awesome, thank you!
From: Jiri Pirko <jiri@nvidia.com> Currently the only user of per-port devlink regions is DSA. All drivers that use regions register them before devlink registration. For DSA, this was not possible as the internals of struct devlink_port needed for region creation are initialized during port registration. This introduced a mismatch in creation flow of devlink and devlink port regions. As you can see, it causes the DSA driver to make the port init/exit flow a bit cumbersome. Fix this by introducing port_init/fini() which could be optionally called by drivers like DSA, to prepare struct devlink_port to be used for region creation purposes before devlink port register is called. Tested by Vladimir on his setup. --- v2->v3: - fixed patch description of patch #3 v1->v2: - Netdevsim patch removed and also the patch forcing region creation before register was removed. - Two Vladimir's patches were added. Jiri Pirko (5): net: devlink: introduce port registered assert helper and use it net: devlink: introduce a flag to indicate devlink port being registered net: devlink: add port_init/fini() helpers to allow pre-register/post-unregister functions net: dsa: move port_setup/teardown to be called outside devlink port registered area net: dsa: don't do devlink port setup early Vladimir Oltean (2): net: dsa: don't leave dangling pointers in dp->pl when failing net: dsa: remove bool devlink_port_setup include/net/devlink.h | 7 +- include/net/dsa.h | 2 - net/core/devlink.c | 80 ++++++++++++++---- net/dsa/dsa2.c | 184 ++++++++++++++++++------------------------ net/dsa/dsa_priv.h | 1 + net/dsa/port.c | 22 +++-- net/dsa/slave.c | 6 +- 7 files changed, 166 insertions(+), 136 deletions(-)