Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
authorJakub Kicinski <kuba@kernel.org>
Fri, 24 Mar 2023 16:53:54 +0000 (09:53 -0700)
committerJakub Kicinski <kuba@kernel.org>
Fri, 24 Mar 2023 17:10:20 +0000 (10:10 -0700)
Conflicts:

drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
  6e9d51b1a5cb ("net/mlx5e: Initialize link speed to zero")
  1bffcea42926 ("net/mlx5e: Add devlink hairpin queues parameters")
https://lore.kernel.org/all/20230324120623.4ebbc66f@canb.auug.org.au/
https://lore.kernel.org/all/20230321211135.47711-1-saeed@kernel.org/

Adjacent changes:

drivers/net/phy/phy.c
  323fe43cf9ae ("net: phy: Improved PHY error reporting in state machine")
  4203d84032e2 ("net: phy: Ensure state transitions are processed from phy_stop()")

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
23 files changed:
1  2 
MAINTAINERS
drivers/net/dsa/b53/b53_mmap.c
drivers/net/dsa/mt7530.c
drivers/net/ethernet/google/gve/gve_ethtool.c
drivers/net/ethernet/intel/i40e/i40e_txrx.c
drivers/net/ethernet/intel/ice/ice_main.c
drivers/net/ethernet/intel/ice/ice_sriov.c
drivers/net/ethernet/intel/igb/igb_main.c
drivers/net/ethernet/intel/igbvf/netdev.c
drivers/net/ethernet/intel/igc/igc_main.c
drivers/net/ethernet/mellanox/mlx5/core/devlink.c
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
drivers/net/ethernet/ti/am65-cpts.c
drivers/net/mdio/of_mdio.c
drivers/net/phy/phy.c
drivers/net/phy/sfp.c
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
net/mac80211/ieee80211_i.h
net/mac80211/rx.c
tools/net/ynl/lib/ynl.py
tools/testing/selftests/bpf/progs/find_vma_fail1.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
@@@ -494,61 -494,6 +494,61 @@@ static int mlx5_devlink_eq_depth_valida
        return (val.vu32 >= 64 && val.vu32 <= 4096) ? 0 : -EINVAL;
  }
  
-       u32 link_speed;
 +static int
 +mlx5_devlink_hairpin_num_queues_validate(struct devlink *devlink, u32 id,
 +                                       union devlink_param_value val,
 +                                       struct netlink_ext_ack *extack)
 +{
 +      return val.vu32 ? 0 : -EINVAL;
 +}
 +
 +static int
 +mlx5_devlink_hairpin_queue_size_validate(struct devlink *devlink, u32 id,
 +                                       union devlink_param_value val,
 +                                       struct netlink_ext_ack *extack)
 +{
 +      struct mlx5_core_dev *dev = devlink_priv(devlink);
 +      u32 val32 = val.vu32;
 +
 +      if (!is_power_of_2(val32)) {
 +              NL_SET_ERR_MSG_MOD(extack, "Value is not power of two");
 +              return -EINVAL;
 +      }
 +
 +      if (val32 > BIT(MLX5_CAP_GEN(dev, log_max_hairpin_num_packets))) {
 +              NL_SET_ERR_MSG_FMT_MOD(
 +                      extack, "Maximum hairpin queue size is %lu",
 +                      BIT(MLX5_CAP_GEN(dev, log_max_hairpin_num_packets)));
 +              return -EINVAL;
 +      }
 +
 +      return 0;
 +}
 +
 +static void mlx5_devlink_hairpin_params_init_values(struct devlink *devlink)
 +{
 +      struct mlx5_core_dev *dev = devlink_priv(devlink);
 +      union devlink_param_value value;
++      u32 link_speed = 0;
 +      u64 link_speed64;
 +
 +      /* set hairpin pair per each 50Gbs share of the link */
 +      mlx5_port_max_linkspeed(dev, &link_speed);
 +      link_speed = max_t(u32, link_speed, 50000);
 +      link_speed64 = link_speed;
 +      do_div(link_speed64, 50000);
 +
 +      value.vu32 = link_speed64;
 +      devl_param_driverinit_value_set(
 +              devlink, MLX5_DEVLINK_PARAM_ID_HAIRPIN_NUM_QUEUES, value);
 +
 +      value.vu32 =
 +              BIT(min_t(u32, 16 - MLX5_MPWRQ_MIN_LOG_STRIDE_SZ(dev),
 +                        MLX5_CAP_GEN(dev, log_max_hairpin_num_packets)));
 +      devl_param_driverinit_value_set(
 +              devlink, MLX5_DEVLINK_PARAM_ID_HAIRPIN_QUEUE_SIZE, value);
 +}
 +
  static const struct devlink_param mlx5_devlink_params[] = {
        DEVLINK_PARAM_GENERIC(ENABLE_ROCE, BIT(DEVLINK_PARAM_CMODE_DRIVERINIT),
                              NULL, NULL, mlx5_devlink_enable_roce_validate),
Simple merge
Simple merge
@@@ -1449,15 -1449,9 +1464,9 @@@ void phy_state_machine(struct work_stru
                return;
  
        if (err < 0)
 -              phy_error(phydev);
 +              phy_error_precise(phydev, func, err);
  
-       if (old_state != phydev->state) {
-               phydev_dbg(phydev, "PHY state change %s -> %s\n",
-                          phy_state_to_str(old_state),
-                          phy_state_to_str(phydev->state));
-               if (phydev->drv && phydev->drv->link_change_notify)
-                       phydev->drv->link_change_notify(phydev);
-       }
+       phy_process_state_change(phydev, old_state);
  
        /* Only re-schedule a PHY state machine change if we are polling the
         * PHY, if PHY_MAC_INTERRUPT is set, then we will be moving
Simple merge
Simple merge
Simple merge
Simple merge