Lines Matching refs:handler
697 struct mlx5_ib_flow_handler *handler = container_of(flow_id, in mlx5_ib_destroy_flow() local
701 struct mlx5_ib_dev *dev = handler->dev; in mlx5_ib_destroy_flow()
705 list_for_each_entry_safe(iter, tmp, &handler->list, list) { in mlx5_ib_destroy_flow()
712 mlx5_del_flow_rules(handler->rule); in mlx5_ib_destroy_flow()
713 put_flow_table(dev, handler->prio, true); in mlx5_ib_destroy_flow()
714 mlx5_ib_counters_clear_description(handler->ibcounters); in mlx5_ib_destroy_flow()
716 if (handler->flow_matcher) in mlx5_ib_destroy_flow()
717 atomic_dec(&handler->flow_matcher->usecnt); in mlx5_ib_destroy_flow()
718 kfree(handler); in mlx5_ib_destroy_flow()
910 struct mlx5_ib_flow_handler *handler; in _create_flow_rule() local
929 handler = kzalloc(sizeof(*handler), GFP_KERNEL); in _create_flow_rule()
930 if (!handler || !spec) { in _create_flow_rule()
935 INIT_LIST_HEAD(&handler->list); in _create_flow_rule()
984 handler->ibcounters = flow_act.counters; in _create_flow_rule()
1013 handler->rule = mlx5_add_flow_rules(ft, spec, in _create_flow_rule()
1017 if (IS_ERR(handler->rule)) { in _create_flow_rule()
1018 err = PTR_ERR(handler->rule); in _create_flow_rule()
1023 handler->prio = ft_prio; in _create_flow_rule()
1024 handler->dev = dev; in _create_flow_rule()
1028 if (err && handler) { in _create_flow_rule()
1029 mlx5_ib_counters_clear_description(handler->ibcounters); in _create_flow_rule()
1030 kfree(handler); in _create_flow_rule()
1033 return err ? ERR_PTR(err) : handler; in _create_flow_rule()
1055 struct mlx5_ib_flow_handler *handler = NULL; in create_leftovers_rule() local
1087 handler = create_flow_rule(dev, ft_prio, in create_leftovers_rule()
1090 if (!IS_ERR(handler) && in create_leftovers_rule()
1096 mlx5_del_flow_rules(handler->rule); in create_leftovers_rule()
1098 kfree(handler); in create_leftovers_rule()
1099 handler = handler_ucast; in create_leftovers_rule()
1101 list_add(&handler_ucast->list, &handler->list); in create_leftovers_rule()
1105 return handler; in create_leftovers_rule()
1152 struct mlx5_ib_flow_handler *handler = NULL; in mlx5_ib_create_flow() local
1248 handler = _create_flow_rule(dev, ft_prio, flow_attr, dst, in mlx5_ib_create_flow()
1253 handler = create_leftovers_rule(dev, ft_prio, flow_attr, dst); in mlx5_ib_create_flow()
1256 handler = create_sniffer_rule(dev, ft_prio, ft_prio_tx, dst); in mlx5_ib_create_flow()
1263 if (IS_ERR(handler)) { in mlx5_ib_create_flow()
1264 err = PTR_ERR(handler); in mlx5_ib_create_flow()
1265 handler = NULL; in mlx5_ib_create_flow()
1273 return &handler->ibflow; in mlx5_ib_create_flow()
1394 struct mlx5_ib_flow_handler *handler; in _create_raw_flow_rule() local
1400 handler = kzalloc(sizeof(*handler), GFP_KERNEL); in _create_raw_flow_rule()
1401 if (!handler || !spec) { in _create_raw_flow_rule()
1406 INIT_LIST_HEAD(&handler->list); in _create_raw_flow_rule()
1414 handler->rule = mlx5_add_flow_rules(ft, spec, in _create_raw_flow_rule()
1417 if (IS_ERR(handler->rule)) { in _create_raw_flow_rule()
1418 err = PTR_ERR(handler->rule); in _create_raw_flow_rule()
1423 handler->prio = ft_prio; in _create_raw_flow_rule()
1424 handler->dev = dev; in _create_raw_flow_rule()
1429 kfree(handler); in _create_raw_flow_rule()
1431 return err ? ERR_PTR(err) : handler; in _create_raw_flow_rule()
1481 struct mlx5_ib_flow_handler *handler; in raw_fs_rule_add() local
1530 handler = _create_raw_flow_rule(dev, ft_prio, dst_num ? dst : NULL, in raw_fs_rule_add()
1534 if (IS_ERR(handler)) { in raw_fs_rule_add()
1535 err = PTR_ERR(handler); in raw_fs_rule_add()
1541 handler->flow_matcher = fs_matcher; in raw_fs_rule_add()
1545 return handler; in raw_fs_rule_add()