Commit de1f0a65 authored by Oz Shlomo's avatar Oz Shlomo Committed by Saeed Mahameed
Browse files

net/mlx5e: TC, refactor access to hash key



Currently, a temp object is filled and used as a key for rhashtable_lookup.
Lookups will only works while key remains the first attribute in the
relevant rhashtable node object.

Fix this by passing a key, instead of a object containing the key.

Signed-off-by: default avatarOz Shlomo <ozsh@nvidia.com>
Reviewed-by: default avatarPaul Blakey <paulb@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent f4692ab1
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -25,8 +25,8 @@ struct mlx5e_tc_act_stats {

static const struct rhashtable_params act_counters_ht_params = {
	.head_offset = offsetof(struct mlx5e_tc_act_stats, hash),
	.key_offset = 0,
	.key_len = offsetof(struct mlx5e_tc_act_stats, counter),
	.key_offset = offsetof(struct mlx5e_tc_act_stats, tc_act_cookie),
	.key_len = sizeof_field(struct mlx5e_tc_act_stats, tc_act_cookie),
	.automatic_shrinking = true,
};

@@ -169,14 +169,11 @@ mlx5e_tc_act_stats_fill_stats(struct mlx5e_tc_act_stats_handle *handle,
{
	struct rhashtable *ht = &handle->ht;
	struct mlx5e_tc_act_stats *item;
	struct mlx5e_tc_act_stats key;
	u64 pkts, bytes, lastused;
	int err = 0;

	key.tc_act_cookie = fl_act->cookie;

	rcu_read_lock();
	item = rhashtable_lookup(ht, &key, act_counters_ht_params);
	item = rhashtable_lookup(ht, &fl_act->cookie, act_counters_ht_params);
	if (!item) {
		rcu_read_unlock();
		err = -ENOENT;