Message ID | 20221201164608.209537-8-jiri@resnulli.us (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | devlink: make sure devlink port registers/unregisters only for registered instance | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Clearly marked for net-next |
netdev/fixes_present | success | Fixes tag not required for -next series |
netdev/subject_prefix | success | Link |
netdev/cover_letter | success | Series has a cover letter |
netdev/patch_count | success | Link |
netdev/header_inline | success | No static functions without inline keyword in header files |
netdev/build_32bit | success | Errors and warnings before: 2 this patch: 2 |
netdev/cc_maintainers | success | CCed 6 of 6 maintainers |
netdev/build_clang | success | Errors and warnings before: 5 this patch: 5 |
netdev/module_param | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Signed-off-by tag matches author and committer |
netdev/check_selftest | success | No net selftest shell script |
netdev/verify_fixes | success | No Fixes tag |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 2 this patch: 2 |
netdev/checkpatch | warning | WARNING: 'withing' may be misspelled - perhaps 'within'? |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/source_inline | success | Was 0 now: 0 |
On Thu, Dec 01, 2022 at 05:46:08PM +0100, Jiri Pirko wrote: > From: Jiri Pirko <jiri@nvidia.com> > > Now when all drivers do call devl_port_register/unregister() withing the > time frame during which the devlink is registered, put and assertion to > the functions to check that and avoid going back. > > Signed-off-by: Jiri Pirko <jiri@nvidia.com> > --- > net/core/devlink.c | 2 ++ > 1 file changed, 2 insertions(+) You also need to remove delayed notifications from devlink_notify_register() 9862 xa_for_each(&devlink->ports, port_index, devlink_port) 9863 devlink_port_notify(devlink_port, DEVLINK_CMD_PORT_NEW); Thanks
Sun, Dec 04, 2022 at 12:40:09PM CET, leon@kernel.org wrote: >On Thu, Dec 01, 2022 at 05:46:08PM +0100, Jiri Pirko wrote: >> From: Jiri Pirko <jiri@nvidia.com> >> >> Now when all drivers do call devl_port_register/unregister() withing the >> time frame during which the devlink is registered, put and assertion to >> the functions to check that and avoid going back. >> >> Signed-off-by: Jiri Pirko <jiri@nvidia.com> >> --- >> net/core/devlink.c | 2 ++ >> 1 file changed, 2 insertions(+) > >You also need to remove delayed notifications from devlink_notify_register() > > 9862 xa_for_each(&devlink->ports, port_index, devlink_port) > 9863 devlink_port_notify(devlink_port, DEVLINK_CMD_PORT_NEW); > Correct, I forgot. >Thanks
diff --git a/net/core/devlink.c b/net/core/devlink.c index fca3ebee97b0..c46dd7753368 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -10088,6 +10088,7 @@ int devl_port_register(struct devlink *devlink, struct devlink_port *devlink_port, unsigned int port_index) { + ASSERT_DEVLINK_REGISTERED(devlink); devl_assert_locked(devlink); if (devlink_port_index_exists(devlink, port_index)) @@ -10145,6 +10146,7 @@ EXPORT_SYMBOL_GPL(devlink_port_register); */ void devl_port_unregister(struct devlink_port *devlink_port) { + ASSERT_DEVLINK_REGISTERED(devlink_port->devlink); lockdep_assert_held(&devlink_port->devlink->lock); WARN_ON(devlink_port->type != DEVLINK_PORT_TYPE_NOTSET);