diff options
author | Leon Romanovsky <leonro@nvidia.com> | 2021-10-21 17:16:14 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2021-10-23 02:15:41 +0300 |
commit | 22849b5ea5952d853547cc5e0651f34a246b2a4f (patch) | |
tree | 594ab2b374cd977ac4ccb04ec926a36b20f12a46 /net/core/devlink.c | |
parent | 99ad92eff76491331a90d839dd6b7225cf8dd53e (diff) | |
download | linux-22849b5ea5952d853547cc5e0651f34a246b2a4f.tar.xz |
devlink: Remove not-executed trap policer notifications
The trap policer logic is registered before devlink_register() and all the
notifications are delayed. This patch removes not-possible notifications
along with addition of code annotation logic.
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/core/devlink.c')
-rw-r--r-- | net/core/devlink.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/net/core/devlink.c b/net/core/devlink.c index e9802421ed50..bc93d894b4c6 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -11173,8 +11173,7 @@ devlink_trap_policer_notify(struct devlink *devlink, WARN_ON_ONCE(cmd != DEVLINK_CMD_TRAP_POLICER_NEW && cmd != DEVLINK_CMD_TRAP_POLICER_DEL); - if (!xa_get_mark(&devlinks, devlink->index, DEVLINK_REGISTERED)) - return; + ASSERT_DEVLINK_REGISTERED(devlink); msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); if (!msg) @@ -11216,9 +11215,6 @@ devlink_trap_policer_register(struct devlink *devlink, } list_add_tail(&policer_item->list, &devlink->trap_policer_list); - devlink_trap_policer_notify(devlink, policer_item, - DEVLINK_CMD_TRAP_POLICER_NEW); - return 0; err_policer_init: @@ -11236,8 +11232,6 @@ devlink_trap_policer_unregister(struct devlink *devlink, if (WARN_ON_ONCE(!policer_item)) return; - devlink_trap_policer_notify(devlink, policer_item, - DEVLINK_CMD_TRAP_POLICER_DEL); list_del(&policer_item->list); if (devlink->ops->trap_policer_fini) devlink->ops->trap_policer_fini(devlink, policer); @@ -11259,6 +11253,8 @@ devlink_trap_policers_register(struct devlink *devlink, { int i, err; + ASSERT_DEVLINK_NOT_REGISTERED(devlink); + mutex_lock(&devlink->lock); for (i = 0; i < policers_count; i++) { const struct devlink_trap_policer *policer = &policers[i]; @@ -11300,6 +11296,8 @@ devlink_trap_policers_unregister(struct devlink *devlink, { int i; + ASSERT_DEVLINK_NOT_REGISTERED(devlink); + mutex_lock(&devlink->lock); for (i = policers_count - 1; i >= 0; i--) devlink_trap_policer_unregister(devlink, &policers[i]); |