Author: hselasky
Date: Mon Oct  7 10:27:50 2019
New Revision: 353261
URL: https://svnweb.freebsd.org/changeset/base/353261

Log:
  MFC r352995:
  Only update lossy buffers config when manual PFC configuration was done
  in mlx5en(4).
  
  Submitted by: kib@
  Sponsored by: Mellanox Technologies

Modified:
  stable/12/sys/dev/mlx5/mlx5_en/en.h
  stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
  stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/dev/mlx5/mlx5_en/en.h
==============================================================================
--- stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct  7 10:26:57 2019        
(r353260)
+++ stable/12/sys/dev/mlx5/mlx5_en/en.h Mon Oct  7 10:27:50 2019        
(r353261)
@@ -1045,6 +1045,7 @@ struct mlx5e_priv {
        u_int   clbr_gen;
 
        struct mlx5e_dcbx dcbx;
+       bool    sw_is_port_buf_owner;
 
        struct mlx5e_channel channel[];
 };

Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
==============================================================================
--- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c       Mon Oct  7 10:26:57 
2019        (r353260)
+++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_main.c       Mon Oct  7 10:27:50 
2019        (r353261)
@@ -3881,7 +3881,7 @@ mlx5e_sysctl_rx_priority_flow_control(SYSCTL_HANDLER_A
        /* check if update is required */
        if (rx_pfc != priv->params.rx_priority_flow_control) {
                err = -mlx5e_set_port_pfc(priv);
-               if (err == 0)
+               if (err == 0 && priv->sw_is_port_buf_owner)
                        err = mlx5e_update_buf_lossy(priv);
        }
 done:

Modified: stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c
==============================================================================
--- stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c        Mon Oct  7 
10:26:57 2019        (r353260)
+++ stable/12/sys/dev/mlx5/mlx5_en/mlx5_en_port_buffer.c        Mon Oct  7 
10:27:50 2019        (r353261)
@@ -263,6 +263,7 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv 
                if (err)
                        return err;
 
+               priv->sw_is_port_buf_owner = true;
                err = update_buffer_lossy(mtu, pfc->pfc_en, buffer, xoff,
                                          &port_buffer, &update_buffer);
                if (err)
@@ -316,13 +317,16 @@ int mlx5e_port_manual_buffer_config(struct mlx5e_priv 
 
        /* Apply the settings */
        if (update_buffer) {
+               priv->sw_is_port_buf_owner = true;
                err = port_set_buffer(priv, &port_buffer);
                if (err)
                        return err;
        }
 
-       if (update_prio2buffer)
+       if (update_prio2buffer) {
+               priv->sw_is_port_buf_owner = true;
                err = mlx5e_port_set_priority2buffer(priv->mdev, prio2buffer);
+       }
 
        return err;
 }
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to