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

From: Daniel Zahka

Date: Fri Jul 31 2026 - 08:41:46 EST




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.