Lines Matching refs:trap_item

5251 	struct devlink_trap_item *trap_item;  in devlink_trap_item_lookup()  local
5253 list_for_each_entry(trap_item, &devlink->trap_list, list) { in devlink_trap_item_lookup()
5254 if (!strcmp(trap_item->trap->name, name)) in devlink_trap_item_lookup()
5255 return trap_item; in devlink_trap_item_lookup()
5368 const struct devlink_trap_item *trap_item, in devlink_nl_trap_fill() argument
5372 struct devlink_trap_group_item *group_item = trap_item->group_item; in devlink_nl_trap_fill()
5387 if (nla_put_string(msg, DEVLINK_ATTR_TRAP_NAME, trap_item->trap->name)) in devlink_nl_trap_fill()
5390 if (nla_put_u8(msg, DEVLINK_ATTR_TRAP_TYPE, trap_item->trap->type)) in devlink_nl_trap_fill()
5393 if (trap_item->trap->generic && in devlink_nl_trap_fill()
5397 if (nla_put_u8(msg, DEVLINK_ATTR_TRAP_ACTION, trap_item->action)) in devlink_nl_trap_fill()
5400 err = devlink_trap_metadata_put(msg, trap_item->trap); in devlink_nl_trap_fill()
5404 err = devlink_trap_stats_put(msg, trap_item->stats); in devlink_nl_trap_fill()
5422 struct devlink_trap_item *trap_item; in devlink_nl_cmd_trap_get_doit() local
5429 trap_item = devlink_trap_item_get_from_info(devlink, info); in devlink_nl_cmd_trap_get_doit()
5430 if (!trap_item) { in devlink_nl_cmd_trap_get_doit()
5439 err = devlink_nl_trap_fill(msg, devlink, trap_item, in devlink_nl_cmd_trap_get_doit()
5455 struct devlink_trap_item *trap_item; in devlink_nl_cmd_trap_get_dumpit() local
5466 list_for_each_entry(trap_item, &devlink->trap_list, list) { in devlink_nl_cmd_trap_get_dumpit()
5471 err = devlink_nl_trap_fill(msg, devlink, trap_item, in devlink_nl_cmd_trap_get_dumpit()
5492 struct devlink_trap_item *trap_item, in __devlink_trap_action_set() argument
5498 if (trap_item->action != trap_action && in __devlink_trap_action_set()
5499 trap_item->trap->type != DEVLINK_TRAP_TYPE_DROP) { in __devlink_trap_action_set()
5504 err = devlink->ops->trap_action_set(devlink, trap_item->trap, in __devlink_trap_action_set()
5509 trap_item->action = trap_action; in __devlink_trap_action_set()
5515 struct devlink_trap_item *trap_item, in devlink_trap_action_set() argument
5530 return __devlink_trap_action_set(devlink, trap_item, trap_action, in devlink_trap_action_set()
5539 struct devlink_trap_item *trap_item; in devlink_nl_cmd_trap_set_doit() local
5545 trap_item = devlink_trap_item_get_from_info(devlink, info); in devlink_nl_cmd_trap_set_doit()
5546 if (!trap_item) { in devlink_nl_cmd_trap_set_doit()
5551 err = devlink_trap_action_set(devlink, trap_item, info); in devlink_nl_cmd_trap_set_doit()
5705 struct devlink_trap_item *trap_item; in __devlink_trap_group_action_set() local
5708 list_for_each_entry(trap_item, &devlink->trap_list, list) { in __devlink_trap_group_action_set()
5709 if (strcmp(trap_item->trap->group.name, group_name)) in __devlink_trap_group_action_set()
5711 err = __devlink_trap_action_set(devlink, trap_item, in __devlink_trap_group_action_set()
7733 struct devlink_trap_item *trap_item) in devlink_trap_item_group_link() argument
7738 &trap_item->trap->group); in devlink_trap_item_group_link()
7742 trap_item->group_item = group_item; in devlink_trap_item_group_link()
7749 struct devlink_trap_item *trap_item) in devlink_trap_item_group_unlink() argument
7751 devlink_trap_group_item_put(devlink, trap_item->group_item); in devlink_trap_item_group_unlink()
7755 const struct devlink_trap_item *trap_item, in devlink_trap_notify() argument
7768 err = devlink_nl_trap_fill(msg, devlink, trap_item, cmd, 0, 0, 0); in devlink_trap_notify()
7782 struct devlink_trap_item *trap_item; in devlink_trap_register() local
7788 trap_item = kzalloc(sizeof(*trap_item), GFP_KERNEL); in devlink_trap_register()
7789 if (!trap_item) in devlink_trap_register()
7792 trap_item->stats = netdev_alloc_pcpu_stats(struct devlink_stats); in devlink_trap_register()
7793 if (!trap_item->stats) { in devlink_trap_register()
7798 trap_item->trap = trap; in devlink_trap_register()
7799 trap_item->action = trap->init_action; in devlink_trap_register()
7800 trap_item->priv = priv; in devlink_trap_register()
7802 err = devlink_trap_item_group_link(devlink, trap_item); in devlink_trap_register()
7806 err = devlink->ops->trap_init(devlink, trap, trap_item); in devlink_trap_register()
7810 list_add_tail(&trap_item->list, &devlink->trap_list); in devlink_trap_register()
7811 devlink_trap_notify(devlink, trap_item, DEVLINK_CMD_TRAP_NEW); in devlink_trap_register()
7816 devlink_trap_item_group_unlink(devlink, trap_item); in devlink_trap_register()
7818 free_percpu(trap_item->stats); in devlink_trap_register()
7820 kfree(trap_item); in devlink_trap_register()
7827 struct devlink_trap_item *trap_item; in devlink_trap_unregister() local
7829 trap_item = devlink_trap_item_lookup(devlink, trap->name); in devlink_trap_unregister()
7830 if (WARN_ON_ONCE(!trap_item)) in devlink_trap_unregister()
7833 devlink_trap_notify(devlink, trap_item, DEVLINK_CMD_TRAP_DEL); in devlink_trap_unregister()
7834 list_del(&trap_item->list); in devlink_trap_unregister()
7836 devlink->ops->trap_fini(devlink, trap, trap_item); in devlink_trap_unregister()
7837 devlink_trap_item_group_unlink(devlink, trap_item); in devlink_trap_unregister()
7838 free_percpu(trap_item->stats); in devlink_trap_unregister()
7839 kfree(trap_item); in devlink_trap_unregister()
7845 struct devlink_trap_item *trap_item; in devlink_trap_disable() local
7847 trap_item = devlink_trap_item_lookup(devlink, trap->name); in devlink_trap_disable()
7848 if (WARN_ON_ONCE(!trap_item)) in devlink_trap_disable()
7852 trap_item->action = DEVLINK_TRAP_ACTION_DROP; in devlink_trap_disable()
7938 const struct devlink_trap_item *trap_item, in devlink_trap_report_metadata_fill() argument
7941 struct devlink_trap_group_item *group_item = trap_item->group_item; in devlink_trap_report_metadata_fill()
7944 hw_metadata->trap_name = trap_item->trap->name; in devlink_trap_report_metadata_fill()
7962 struct devlink_trap_item *trap_item = trap_ctx; in devlink_trap_report() local
7965 devlink_trap_stats_update(trap_item->stats, skb->len); in devlink_trap_report()
7966 devlink_trap_stats_update(trap_item->group_item->stats, skb->len); in devlink_trap_report()
7968 devlink_trap_report_metadata_fill(&hw_metadata, trap_item, in devlink_trap_report()
7982 struct devlink_trap_item *trap_item = trap_ctx; in devlink_trap_ctx_priv() local
7984 return trap_item->priv; in devlink_trap_ctx_priv()