mbox series

[net-next,v3,0/7] devlink: sanitize per-port region creation/destruction

Message ID 20220929072902.2986539-1-jiri@resnulli.us (mailing list archive)
Headers show
Series devlink: sanitize per-port region creation/destruction | expand

Message

Jiri Pirko Sept. 29, 2022, 7:28 a.m. UTC
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(-)

Comments

patchwork-bot+netdevbpf@kernel.org Oct. 1, 2022, 1:50 a.m. UTC | #1
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!