Author: hselasky
Date: Tue Aug 14 11:43:02 2018
New Revision: 337746
URL: https://svnweb.freebsd.org/changeset/base/337746

Log:
  MFC r325661:
  Expose the current hardware MTU in mlx5en(4) as a separate entry
  in the sysctl tree.
  
  Sponsored by: Mellanox Technologies

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

Modified: stable/10/sys/dev/mlx5/mlx5_en/en.h
==============================================================================
--- stable/10/sys/dev/mlx5/mlx5_en/en.h Tue Aug 14 11:42:32 2018        
(r337745)
+++ stable/10/sys/dev/mlx5/mlx5_en/en.h Tue Aug 14 11:43:02 2018        
(r337746)
@@ -428,7 +428,8 @@ struct mlx5e_params {
   m(+1, u64 hw_lro, "hw_lro", "set to enable hw_lro") \
   m(+1, u64 cqe_zipping, "cqe_zipping", "0 : CQE zipping disabled") \
   m(+1, u64 diag_pci_enable, "diag_pci_enable", "0: Disabled 1: Enabled") \
-  m(+1, u64 diag_general_enable, "diag_general_enable", "0: Disabled 1: 
Enabled")
+  m(+1, u64 diag_general_enable, "diag_general_enable", "0: Disabled 1: 
Enabled") \
+  m(+1, u64 hw_mtu, "hw_mtu", "Current hardware MTU value")
 
 #define        MLX5E_PARAMS_NUM (0 MLX5E_PARAMS(MLX5E_STATS_COUNT))
 

Modified: stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c
==============================================================================
--- stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c    Tue Aug 14 11:42:32 
2018        (r337745)
+++ stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c    Tue Aug 14 11:43:02 
2018        (r337746)
@@ -714,7 +714,8 @@ mlx5e_create_ethtool(struct mlx5e_priv *priv)
                return;
        for (x = 0; x != MLX5E_PARAMS_NUM; x++) {
                /* check for read-only parameter */
-               if (strstr(mlx5e_params_desc[2 * x], "_max") != NULL) {
+               if (strstr(mlx5e_params_desc[2 * x], "_max") != NULL ||
+                   strstr(mlx5e_params_desc[2 * x], "_mtu") != NULL) {
                        SYSCTL_ADD_PROC(&priv->sysctl_ctx, 
SYSCTL_CHILDREN(node), OID_AUTO,
                            mlx5e_params_desc[2 * x], CTLTYPE_U64 | CTLFLAG_RD |
                            CTLFLAG_MPSAFE, priv, x, &mlx5e_ethtool_handler, 
"QU",

Modified: stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
==============================================================================
--- stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c       Tue Aug 14 11:42:32 
2018        (r337745)
+++ stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c       Tue Aug 14 11:43:02 
2018        (r337746)
@@ -2353,10 +2353,13 @@ mlx5e_set_dev_port_mtu(struct ifnet *ifp, int sw_mtu)
                    __func__, sw_mtu, err);
                return (err);
        }
+
+       ifp->if_mtu = sw_mtu;
        err = mlx5_query_port_oper_mtu(mdev, &hw_mtu);
        if (err) {
                if_printf(ifp, "Query port MTU, after setting new "
                    "MTU value, failed\n");
+               return (err);
        } else if (MLX5E_HW2SW_MTU(hw_mtu) < sw_mtu) {
                err = -E2BIG,
                if_printf(ifp, "Port MTU %d is smaller than "
@@ -2366,7 +2369,8 @@ mlx5e_set_dev_port_mtu(struct ifnet *ifp, int sw_mtu)
                 if_printf(ifp, "Port MTU %d is bigger than "
                     "ifp mtu %d\n", hw_mtu, sw_mtu);
        }
-       ifp->if_mtu = sw_mtu;
+       priv->params_ethtool.hw_mtu = hw_mtu;
+
        return (err);
 }
 
_______________________________________________
svn-src-stable-10@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10
To unsubscribe, send any mail to "svn-src-stable-10-unsubscr...@freebsd.org"

Reply via email to