Commit a8620de7 authored by Liang Jie's avatar Liang Jie Committed by Jakub Kicinski
Browse files

net: sfc: Correct key_len for efx_tc_ct_zone_ht_params



In efx_tc_ct_zone_ht_params, the key_len was previously set to
offsetof(struct efx_tc_ct_zone, linkage). This calculation is incorrect
because it includes any padding between the zone field and the linkage
field due to structure alignment, which can vary between systems.

This patch updates key_len to use sizeof_field(struct efx_tc_ct_zone, zone)
, ensuring that the hash table correctly uses the zone as the key. This fix
prevents potential hash lookup errors and improves connection tracking
reliability.

Fixes: c3bb5c6a ("sfc: functions to register for conntrack zone offload")
Signed-off-by: default avatarLiang Jie <liangjie@lixiang.com>
Acked-by: default avatarEdward Cree <ecree.xilinx@gmail.com>
Link: https://patch.msgid.link/20241230093709.3226854-1-buaajxlj@163.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 4f619d51
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ static int efx_tc_flow_block(enum tc_setup_type type, void *type_data,
			     void *cb_priv);

static const struct rhashtable_params efx_tc_ct_zone_ht_params = {
	.key_len	= offsetof(struct efx_tc_ct_zone, linkage),
	.key_len	= sizeof_field(struct efx_tc_ct_zone, zone),
	.key_offset	= 0,
	.head_offset	= offsetof(struct efx_tc_ct_zone, linkage),
};