Commit 5a2939b9 authored by Jiri Pirko's avatar Jiri Pirko Committed by Jakub Kicinski
Browse files

mlxsw: spectrum_matchall: Put matchall list into substruct of flow struct



As there are going to be other matchall specific fields in flow
structure, put the existing list field into matchall substruct.

Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 593bb843
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -636,7 +636,9 @@ struct mlxsw_sp_acl_rule_info {
/* spectrum_flow.c */
struct mlxsw_sp_flow_block {
	struct list_head binding_list;
	struct list_head mall_list;
	struct {
		struct list_head list;
	} mall;
	struct mlxsw_sp_acl_ruleset *ruleset_zero;
	struct mlxsw_sp *mlxsw_sp;
	unsigned int rule_count;
+1 −1
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ mlxsw_sp_flow_block_create(struct mlxsw_sp *mlxsw_sp, struct net *net)
	if (!block)
		return NULL;
	INIT_LIST_HEAD(&block->binding_list);
	INIT_LIST_HEAD(&block->mall_list);
	INIT_LIST_HEAD(&block->mall.list);
	block->mlxsw_sp = mlxsw_sp;
	block->net = net;
	return block;
+5 −5
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ mlxsw_sp_mall_entry_find(struct mlxsw_sp_flow_block *block, unsigned long cookie
{
	struct mlxsw_sp_mall_entry *mall_entry;

	list_for_each_entry(mall_entry, &block->mall_list, list)
	list_for_each_entry(mall_entry, &block->mall.list, list)
		if (mall_entry->cookie == cookie)
			return mall_entry;

@@ -244,7 +244,7 @@ int mlxsw_sp_mall_replace(struct mlxsw_sp_flow_block *block,
		block->egress_blocker_rule_count++;
	else
		block->ingress_blocker_rule_count++;
	list_add_tail(&mall_entry->list, &block->mall_list);
	list_add_tail(&mall_entry->list, &block->mall.list);
	return 0;

rollback:
@@ -285,7 +285,7 @@ int mlxsw_sp_mall_port_bind(struct mlxsw_sp_flow_block *block,
	struct mlxsw_sp_mall_entry *mall_entry;
	int err;

	list_for_each_entry(mall_entry, &block->mall_list, list) {
	list_for_each_entry(mall_entry, &block->mall.list, list) {
		err = mlxsw_sp_mall_port_rule_add(mlxsw_sp_port, mall_entry);
		if (err)
			goto rollback;
@@ -293,7 +293,7 @@ int mlxsw_sp_mall_port_bind(struct mlxsw_sp_flow_block *block,
	return 0;

rollback:
	list_for_each_entry_continue_reverse(mall_entry, &block->mall_list,
	list_for_each_entry_continue_reverse(mall_entry, &block->mall.list,
					     list)
		mlxsw_sp_mall_port_rule_del(mlxsw_sp_port, mall_entry);
	return err;
@@ -304,6 +304,6 @@ void mlxsw_sp_mall_port_unbind(struct mlxsw_sp_flow_block *block,
{
	struct mlxsw_sp_mall_entry *mall_entry;

	list_for_each_entry(mall_entry, &block->mall_list, list)
	list_for_each_entry(mall_entry, &block->mall.list, list)
		mlxsw_sp_mall_port_rule_del(mlxsw_sp_port, mall_entry);
}