Re: [PATCH net-next 09/13] net/mlx5e: psp: Add an rx_decap steering table

Daniel Zahka <[email protected]> Fri, 31 Jul 2026 08:41:26 -0400
Newsgroups org.kernel.vger.linux-rdma,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest,org.kernel.vger.netdev
Message-ID <[email protected]>

On 7/30/26 5:17 AM, Tariq Toukan wrote:
> +static
> +void accel_psp_fs_rx_decap_ft_destroy(struct mlx5e_psp_fs *fs,
> +				      struct mlx5e_psp_rx_decap_table *decap)
> +{
> +	int i;
> +
> +	accel_psp_fs_del_flow_rule(&decap->unsupported_rule);
> +	for (i = 0; i < MLX5E_PSP_NUM_SUPPORTED_VERSIONS; i++)
> +		accel_psp_fs_del_flow_rule(&decap->rule[i]);
> +	if (decap->reformat) {
> +		mlx5_packet_reformat_dealloc(fs->mdev, decap->reformat);
> +		decap->reformat = NULL;
> +	}
> +	accel_psp_fs_dealloc_modify_hdr(fs->mdev, &decap->modify_hdr);
> +	accel_psp_fs_destroy_flow_group(&decap->drop_group);
> +	accel_psp_fs_destroy_ft(&decap->ft);
> +}
> +

[...]
> +static int accel_psp_fs_rx_reconfigure(struct mlx5e_psp_fs *fs,
> +				       bool decap_wanted)
> +{
> +	bool decap_supported =
> +		MLX5_CAP_FLOWTABLE(fs->mdev,
> +				   flow_table_properties_nic_receive.reformat_del_psp_transport);
> +	bool decap_enable = decap_wanted && decap_supported;
> +	struct mlx5_flow_destination dest = {};
> +	int err;
> +
> +	/* Create the decap table if needed. */
> +	if (decap_enable && !fs->decap.ft) {
> +		err = accel_psp_fs_rx_decap_ft_create(fs, &fs->decap);
> +		if (err) {
> +			mlx5_core_warn(fs->mdev,
> +				       "Failed to create PSP decapsulation rules (err %d), HW GRO for PSP unavailable",
> +				       err);
> +			decap_enable = false;
> +		}
> +	}
> +	if (decap_enable == fs->decap_enabled)
> +		return 0;

An llm is complaining that fs->decap_enabled is not set to false when 
the decap table is destroyed with accel_psp_fs_rx_decap_ft_destroy(), 
which would cause problems after doing a psp_dev_ops::set_config() down 
and up.

I'm not sure if this is legit, but figured I would flag it as it seems 
plausible and would be easily reachable by a user.