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.