devlink: add .trap_group_action_set() callback
Add a new devlink callback, .trap_group_action_set(), which can be used by device drivers which do not support controlling the action (drop, trap) on each trap but rather on the entire group trap. If this new callback is populated, it will take precedence over the .trap_action_set() callback when the user requests a change of all the traps in a group. Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
10c24eb23d
commit
c50bf2be73
@@ -6720,6 +6720,24 @@ __devlink_trap_group_action_set(struct devlink *devlink,
|
||||
struct devlink_trap_item *trap_item;
|
||||
int err;
|
||||
|
||||
if (devlink->ops->trap_group_action_set) {
|
||||
err = devlink->ops->trap_group_action_set(devlink, group_item->group,
|
||||
trap_action, extack);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
list_for_each_entry(trap_item, &devlink->trap_list, list) {
|
||||
if (strcmp(trap_item->group_item->group->name, group_name))
|
||||
continue;
|
||||
if (trap_item->action != trap_action &&
|
||||
trap_item->trap->type != DEVLINK_TRAP_TYPE_DROP)
|
||||
continue;
|
||||
trap_item->action = trap_action;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
list_for_each_entry(trap_item, &devlink->trap_list, list) {
|
||||
if (strcmp(trap_item->group_item->group->name, group_name))
|
||||
continue;
|
||||
|
Reference in New Issue
Block a user