OSDN Git Service

ice: refactor ice_vf_lib to make functions static
authorJan Sokolowski <jan.sokolowski@intel.com>
Wed, 9 Aug 2023 13:39:10 +0000 (15:39 +0200)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Thu, 17 Aug 2023 17:43:53 +0000 (10:43 -0700)
As following methods are not used outside ice_vf_lib,
they can be made static:
ice_vf_rebuild_host_vlan_cfg
ice_vf_rebuild_host_tx_rate_cfg
ice_vf_set_host_trust_cfg
ice_vf_rebuild_host_mac_cfg
ice_vf_rebuild_aggregator_node_cfg
ice_vf_rebuild_host_cfg
ice_set_vf_state_qs_dis
ice_vf_set_initialized

In order to achieve that, the order in which these
were defined was reorganized.

Signed-off-by: Jan Sokolowski <jan.sokolowski@intel.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_vf_lib.c
drivers/net/ethernet/intel/ice/ice_vf_lib_private.h

index b26ce44..20c4bea 100644 (file)
@@ -323,6 +323,240 @@ static int ice_vf_rebuild_vsi(struct ice_vf *vf)
 }
 
 /**
+ * ice_vf_rebuild_host_vlan_cfg - add VLAN 0 filter or rebuild the Port VLAN
+ * @vf: VF to add MAC filters for
+ * @vsi: Pointer to VSI
+ *
+ * Called after a VF VSI has been re-added/rebuilt during reset. The PF driver
+ * always re-adds either a VLAN 0 or port VLAN based filter after reset.
+ */
+static int ice_vf_rebuild_host_vlan_cfg(struct ice_vf *vf, struct ice_vsi *vsi)
+{
+       struct ice_vsi_vlan_ops *vlan_ops = ice_get_compat_vsi_vlan_ops(vsi);
+       struct device *dev = ice_pf_to_dev(vf->pf);
+       int err;
+
+       if (ice_vf_is_port_vlan_ena(vf)) {
+               err = vlan_ops->set_port_vlan(vsi, &vf->port_vlan_info);
+               if (err) {
+                       dev_err(dev, "failed to configure port VLAN via VSI parameters for VF %u, error %d\n",
+                               vf->vf_id, err);
+                       return err;
+               }
+
+               err = vlan_ops->add_vlan(vsi, &vf->port_vlan_info);
+       } else {
+               err = ice_vsi_add_vlan_zero(vsi);
+       }
+
+       if (err) {
+               dev_err(dev, "failed to add VLAN %u filter for VF %u during VF rebuild, error %d\n",
+                       ice_vf_is_port_vlan_ena(vf) ?
+                       ice_vf_get_port_vlan_id(vf) : 0, vf->vf_id, err);
+               return err;
+       }
+
+       err = vlan_ops->ena_rx_filtering(vsi);
+       if (err)
+               dev_warn(dev, "failed to enable Rx VLAN filtering for VF %d VSI %d during VF rebuild, error %d\n",
+                        vf->vf_id, vsi->idx, err);
+
+       return 0;
+}
+
+/**
+ * ice_vf_rebuild_host_tx_rate_cfg - re-apply the Tx rate limiting configuration
+ * @vf: VF to re-apply the configuration for
+ *
+ * Called after a VF VSI has been re-added/rebuild during reset. The PF driver
+ * needs to re-apply the host configured Tx rate limiting configuration.
+ */
+static int ice_vf_rebuild_host_tx_rate_cfg(struct ice_vf *vf)
+{
+       struct device *dev = ice_pf_to_dev(vf->pf);
+       struct ice_vsi *vsi = ice_get_vf_vsi(vf);
+       int err;
+
+       if (WARN_ON(!vsi))
+               return -EINVAL;
+
+       if (vf->min_tx_rate) {
+               err = ice_set_min_bw_limit(vsi, (u64)vf->min_tx_rate * 1000);
+               if (err) {
+                       dev_err(dev, "failed to set min Tx rate to %d Mbps for VF %u, error %d\n",
+                               vf->min_tx_rate, vf->vf_id, err);
+                       return err;
+               }
+       }
+
+       if (vf->max_tx_rate) {
+               err = ice_set_max_bw_limit(vsi, (u64)vf->max_tx_rate * 1000);
+               if (err) {
+                       dev_err(dev, "failed to set max Tx rate to %d Mbps for VF %u, error %d\n",
+                               vf->max_tx_rate, vf->vf_id, err);
+                       return err;
+               }
+       }
+
+       return 0;
+}
+
+/**
+ * ice_vf_set_host_trust_cfg - set trust setting based on pre-reset value
+ * @vf: VF to configure trust setting for
+ */
+static void ice_vf_set_host_trust_cfg(struct ice_vf *vf)
+{
+       if (vf->trusted)
+               set_bit(ICE_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps);
+       else
+               clear_bit(ICE_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps);
+}
+
+/**
+ * ice_vf_rebuild_host_mac_cfg - add broadcast and the VF's perm_addr/LAA
+ * @vf: VF to add MAC filters for
+ *
+ * Called after a VF VSI has been re-added/rebuilt during reset. The PF driver
+ * always re-adds a broadcast filter and the VF's perm_addr/LAA after reset.
+ */
+static int ice_vf_rebuild_host_mac_cfg(struct ice_vf *vf)
+{
+       struct device *dev = ice_pf_to_dev(vf->pf);
+       struct ice_vsi *vsi = ice_get_vf_vsi(vf);
+       u8 broadcast[ETH_ALEN];
+       int status;
+
+       if (WARN_ON(!vsi))
+               return -EINVAL;
+
+       if (ice_is_eswitch_mode_switchdev(vf->pf))
+               return 0;
+
+       eth_broadcast_addr(broadcast);
+       status = ice_fltr_add_mac(vsi, broadcast, ICE_FWD_TO_VSI);
+       if (status) {
+               dev_err(dev, "failed to add broadcast MAC filter for VF %u, error %d\n",
+                       vf->vf_id, status);
+               return status;
+       }
+
+       vf->num_mac++;
+
+       if (is_valid_ether_addr(vf->hw_lan_addr)) {
+               status = ice_fltr_add_mac(vsi, vf->hw_lan_addr,
+                                         ICE_FWD_TO_VSI);
+               if (status) {
+                       dev_err(dev, "failed to add default unicast MAC filter %pM for VF %u, error %d\n",
+                               &vf->hw_lan_addr[0], vf->vf_id,
+                               status);
+                       return status;
+               }
+               vf->num_mac++;
+
+               ether_addr_copy(vf->dev_lan_addr, vf->hw_lan_addr);
+       }
+
+       return 0;
+}
+
+/**
+ * ice_vf_rebuild_aggregator_node_cfg - rebuild aggregator node config
+ * @vsi: Pointer to VSI
+ *
+ * This function moves VSI into corresponding scheduler aggregator node
+ * based on cached value of "aggregator node info" per VSI
+ */
+static void ice_vf_rebuild_aggregator_node_cfg(struct ice_vsi *vsi)
+{
+       struct ice_pf *pf = vsi->back;
+       struct device *dev;
+       int status;
+
+       if (!vsi->agg_node)
+               return;
+
+       dev = ice_pf_to_dev(pf);
+       if (vsi->agg_node->num_vsis == ICE_MAX_VSIS_IN_AGG_NODE) {
+               dev_dbg(dev,
+                       "agg_id %u already has reached max_num_vsis %u\n",
+                       vsi->agg_node->agg_id, vsi->agg_node->num_vsis);
+               return;
+       }
+
+       status = ice_move_vsi_to_agg(pf->hw.port_info, vsi->agg_node->agg_id,
+                                    vsi->idx, vsi->tc_cfg.ena_tc);
+       if (status)
+               dev_dbg(dev, "unable to move VSI idx %u into aggregator %u node",
+                       vsi->idx, vsi->agg_node->agg_id);
+       else
+               vsi->agg_node->num_vsis++;
+}
+
+/**
+ * ice_vf_rebuild_host_cfg - host admin configuration is persistent across reset
+ * @vf: VF to rebuild host configuration on
+ */
+static void ice_vf_rebuild_host_cfg(struct ice_vf *vf)
+{
+       struct device *dev = ice_pf_to_dev(vf->pf);
+       struct ice_vsi *vsi = ice_get_vf_vsi(vf);
+
+       if (WARN_ON(!vsi))
+               return;
+
+       ice_vf_set_host_trust_cfg(vf);
+
+       if (ice_vf_rebuild_host_mac_cfg(vf))
+               dev_err(dev, "failed to rebuild default MAC configuration for VF %d\n",
+                       vf->vf_id);
+
+       if (ice_vf_rebuild_host_vlan_cfg(vf, vsi))
+               dev_err(dev, "failed to rebuild VLAN configuration for VF %u\n",
+                       vf->vf_id);
+
+       if (ice_vf_rebuild_host_tx_rate_cfg(vf))
+               dev_err(dev, "failed to rebuild Tx rate limiting configuration for VF %u\n",
+                       vf->vf_id);
+
+       if (ice_vsi_apply_spoofchk(vsi, vf->spoofchk))
+               dev_err(dev, "failed to rebuild spoofchk configuration for VF %d\n",
+                       vf->vf_id);
+
+       /* rebuild aggregator node config for main VF VSI */
+       ice_vf_rebuild_aggregator_node_cfg(vsi);
+}
+
+/**
+ * ice_set_vf_state_qs_dis - Set VF queues state to disabled
+ * @vf: pointer to the VF structure
+ */
+static void ice_set_vf_state_qs_dis(struct ice_vf *vf)
+{
+       /* Clear Rx/Tx enabled queues flag */
+       bitmap_zero(vf->txq_ena, ICE_MAX_RSS_QS_PER_VF);
+       bitmap_zero(vf->rxq_ena, ICE_MAX_RSS_QS_PER_VF);
+       clear_bit(ICE_VF_STATE_QS_ENA, vf->vf_states);
+}
+
+/**
+ * ice_vf_set_initialized - VF is ready for VIRTCHNL communication
+ * @vf: VF to set in initialized state
+ *
+ * After this function the VF will be ready to receive/handle the
+ * VIRTCHNL_OP_GET_VF_RESOURCES message
+ */
+static void ice_vf_set_initialized(struct ice_vf *vf)
+{
+       ice_set_vf_state_qs_dis(vf);
+       clear_bit(ICE_VF_STATE_MC_PROMISC, vf->vf_states);
+       clear_bit(ICE_VF_STATE_UC_PROMISC, vf->vf_states);
+       clear_bit(ICE_VF_STATE_DIS, vf->vf_states);
+       set_bit(ICE_VF_STATE_INIT, vf->vf_states);
+       memset(&vf->vlan_v2_caps, 0, sizeof(vf->vlan_v2_caps));
+}
+
+/**
  * ice_vf_post_vsi_rebuild - Reset tasks that occur after VSI rebuild
  * @vf: the VF being reset
  *
@@ -726,18 +960,6 @@ out_unlock:
 }
 
 /**
- * ice_set_vf_state_qs_dis - Set VF queues state to disabled
- * @vf: pointer to the VF structure
- */
-static void ice_set_vf_state_qs_dis(struct ice_vf *vf)
-{
-       /* Clear Rx/Tx enabled queues flag */
-       bitmap_zero(vf->txq_ena, ICE_MAX_RSS_QS_PER_VF);
-       bitmap_zero(vf->rxq_ena, ICE_MAX_RSS_QS_PER_VF);
-       clear_bit(ICE_VF_STATE_QS_ENA, vf->vf_states);
-}
-
-/**
  * ice_set_vf_state_dis - Set VF state to disabled
  * @vf: pointer to the VF structure
  */
@@ -978,211 +1200,6 @@ bool ice_is_vf_link_up(struct ice_vf *vf)
 }
 
 /**
- * ice_vf_set_host_trust_cfg - set trust setting based on pre-reset value
- * @vf: VF to configure trust setting for
- */
-static void ice_vf_set_host_trust_cfg(struct ice_vf *vf)
-{
-       if (vf->trusted)
-               set_bit(ICE_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps);
-       else
-               clear_bit(ICE_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps);
-}
-
-/**
- * ice_vf_rebuild_host_mac_cfg - add broadcast and the VF's perm_addr/LAA
- * @vf: VF to add MAC filters for
- *
- * Called after a VF VSI has been re-added/rebuilt during reset. The PF driver
- * always re-adds a broadcast filter and the VF's perm_addr/LAA after reset.
- */
-static int ice_vf_rebuild_host_mac_cfg(struct ice_vf *vf)
-{
-       struct device *dev = ice_pf_to_dev(vf->pf);
-       struct ice_vsi *vsi = ice_get_vf_vsi(vf);
-       u8 broadcast[ETH_ALEN];
-       int status;
-
-       if (WARN_ON(!vsi))
-               return -EINVAL;
-
-       if (ice_is_eswitch_mode_switchdev(vf->pf))
-               return 0;
-
-       eth_broadcast_addr(broadcast);
-       status = ice_fltr_add_mac(vsi, broadcast, ICE_FWD_TO_VSI);
-       if (status) {
-               dev_err(dev, "failed to add broadcast MAC filter for VF %u, error %d\n",
-                       vf->vf_id, status);
-               return status;
-       }
-
-       vf->num_mac++;
-
-       if (is_valid_ether_addr(vf->hw_lan_addr)) {
-               status = ice_fltr_add_mac(vsi, vf->hw_lan_addr,
-                                         ICE_FWD_TO_VSI);
-               if (status) {
-                       dev_err(dev, "failed to add default unicast MAC filter %pM for VF %u, error %d\n",
-                               &vf->hw_lan_addr[0], vf->vf_id,
-                               status);
-                       return status;
-               }
-               vf->num_mac++;
-
-               ether_addr_copy(vf->dev_lan_addr, vf->hw_lan_addr);
-       }
-
-       return 0;
-}
-
-/**
- * ice_vf_rebuild_host_vlan_cfg - add VLAN 0 filter or rebuild the Port VLAN
- * @vf: VF to add MAC filters for
- * @vsi: Pointer to VSI
- *
- * Called after a VF VSI has been re-added/rebuilt during reset. The PF driver
- * always re-adds either a VLAN 0 or port VLAN based filter after reset.
- */
-static int ice_vf_rebuild_host_vlan_cfg(struct ice_vf *vf, struct ice_vsi *vsi)
-{
-       struct ice_vsi_vlan_ops *vlan_ops = ice_get_compat_vsi_vlan_ops(vsi);
-       struct device *dev = ice_pf_to_dev(vf->pf);
-       int err;
-
-       if (ice_vf_is_port_vlan_ena(vf)) {
-               err = vlan_ops->set_port_vlan(vsi, &vf->port_vlan_info);
-               if (err) {
-                       dev_err(dev, "failed to configure port VLAN via VSI parameters for VF %u, error %d\n",
-                               vf->vf_id, err);
-                       return err;
-               }
-
-               err = vlan_ops->add_vlan(vsi, &vf->port_vlan_info);
-       } else {
-               err = ice_vsi_add_vlan_zero(vsi);
-       }
-
-       if (err) {
-               dev_err(dev, "failed to add VLAN %u filter for VF %u during VF rebuild, error %d\n",
-                       ice_vf_is_port_vlan_ena(vf) ?
-                       ice_vf_get_port_vlan_id(vf) : 0, vf->vf_id, err);
-               return err;
-       }
-
-       err = vlan_ops->ena_rx_filtering(vsi);
-       if (err)
-               dev_warn(dev, "failed to enable Rx VLAN filtering for VF %d VSI %d during VF rebuild, error %d\n",
-                        vf->vf_id, vsi->idx, err);
-
-       return 0;
-}
-
-/**
- * ice_vf_rebuild_host_tx_rate_cfg - re-apply the Tx rate limiting configuration
- * @vf: VF to re-apply the configuration for
- *
- * Called after a VF VSI has been re-added/rebuild during reset. The PF driver
- * needs to re-apply the host configured Tx rate limiting configuration.
- */
-static int ice_vf_rebuild_host_tx_rate_cfg(struct ice_vf *vf)
-{
-       struct device *dev = ice_pf_to_dev(vf->pf);
-       struct ice_vsi *vsi = ice_get_vf_vsi(vf);
-       int err;
-
-       if (WARN_ON(!vsi))
-               return -EINVAL;
-
-       if (vf->min_tx_rate) {
-               err = ice_set_min_bw_limit(vsi, (u64)vf->min_tx_rate * 1000);
-               if (err) {
-                       dev_err(dev, "failed to set min Tx rate to %d Mbps for VF %u, error %d\n",
-                               vf->min_tx_rate, vf->vf_id, err);
-                       return err;
-               }
-       }
-
-       if (vf->max_tx_rate) {
-               err = ice_set_max_bw_limit(vsi, (u64)vf->max_tx_rate * 1000);
-               if (err) {
-                       dev_err(dev, "failed to set max Tx rate to %d Mbps for VF %u, error %d\n",
-                               vf->max_tx_rate, vf->vf_id, err);
-                       return err;
-               }
-       }
-
-       return 0;
-}
-
-/**
- * ice_vf_rebuild_aggregator_node_cfg - rebuild aggregator node config
- * @vsi: Pointer to VSI
- *
- * This function moves VSI into corresponding scheduler aggregator node
- * based on cached value of "aggregator node info" per VSI
- */
-static void ice_vf_rebuild_aggregator_node_cfg(struct ice_vsi *vsi)
-{
-       struct ice_pf *pf = vsi->back;
-       struct device *dev;
-       int status;
-
-       if (!vsi->agg_node)
-               return;
-
-       dev = ice_pf_to_dev(pf);
-       if (vsi->agg_node->num_vsis == ICE_MAX_VSIS_IN_AGG_NODE) {
-               dev_dbg(dev,
-                       "agg_id %u already has reached max_num_vsis %u\n",
-                       vsi->agg_node->agg_id, vsi->agg_node->num_vsis);
-               return;
-       }
-
-       status = ice_move_vsi_to_agg(pf->hw.port_info, vsi->agg_node->agg_id,
-                                    vsi->idx, vsi->tc_cfg.ena_tc);
-       if (status)
-               dev_dbg(dev, "unable to move VSI idx %u into aggregator %u node",
-                       vsi->idx, vsi->agg_node->agg_id);
-       else
-               vsi->agg_node->num_vsis++;
-}
-
-/**
- * ice_vf_rebuild_host_cfg - host admin configuration is persistent across reset
- * @vf: VF to rebuild host configuration on
- */
-void ice_vf_rebuild_host_cfg(struct ice_vf *vf)
-{
-       struct device *dev = ice_pf_to_dev(vf->pf);
-       struct ice_vsi *vsi = ice_get_vf_vsi(vf);
-
-       if (WARN_ON(!vsi))
-               return;
-
-       ice_vf_set_host_trust_cfg(vf);
-
-       if (ice_vf_rebuild_host_mac_cfg(vf))
-               dev_err(dev, "failed to rebuild default MAC configuration for VF %d\n",
-                       vf->vf_id);
-
-       if (ice_vf_rebuild_host_vlan_cfg(vf, vsi))
-               dev_err(dev, "failed to rebuild VLAN configuration for VF %u\n",
-                       vf->vf_id);
-
-       if (ice_vf_rebuild_host_tx_rate_cfg(vf))
-               dev_err(dev, "failed to rebuild Tx rate limiting configuration for VF %u\n",
-                       vf->vf_id);
-
-       if (ice_vsi_apply_spoofchk(vsi, vf->spoofchk))
-               dev_err(dev, "failed to rebuild spoofchk configuration for VF %d\n",
-                       vf->vf_id);
-
-       /* rebuild aggregator node config for main VF VSI */
-       ice_vf_rebuild_aggregator_node_cfg(vsi);
-}
-
-/**
  * ice_vf_ctrl_invalidate_vsi - invalidate ctrl_vsi_idx to remove VSI access
  * @vf: VF that control VSI is being invalidated on
  */
@@ -1311,23 +1328,6 @@ void ice_vf_vsi_release(struct ice_vf *vf)
 }
 
 /**
- * ice_vf_set_initialized - VF is ready for VIRTCHNL communication
- * @vf: VF to set in initialized state
- *
- * After this function the VF will be ready to receive/handle the
- * VIRTCHNL_OP_GET_VF_RESOURCES message
- */
-void ice_vf_set_initialized(struct ice_vf *vf)
-{
-       ice_set_vf_state_qs_dis(vf);
-       clear_bit(ICE_VF_STATE_MC_PROMISC, vf->vf_states);
-       clear_bit(ICE_VF_STATE_UC_PROMISC, vf->vf_states);
-       clear_bit(ICE_VF_STATE_DIS, vf->vf_states);
-       set_bit(ICE_VF_STATE_INIT, vf->vf_states);
-       memset(&vf->vlan_v2_caps, 0, sizeof(vf->vlan_v2_caps));
-}
-
-/**
  * ice_get_vf_ctrl_vsi - Get first VF control VSI pointer
  * @pf: the PF private structure
  * @vsi: pointer to the VSI
index 6f3293b..0c7e77c 100644 (file)
@@ -32,13 +32,11 @@ int ice_vsi_apply_spoofchk(struct ice_vsi *vsi, bool enable);
 bool ice_is_vf_trusted(struct ice_vf *vf);
 bool ice_vf_has_no_qs_ena(struct ice_vf *vf);
 bool ice_is_vf_link_up(struct ice_vf *vf);
-void ice_vf_rebuild_host_cfg(struct ice_vf *vf);
 void ice_vf_ctrl_invalidate_vsi(struct ice_vf *vf);
 void ice_vf_ctrl_vsi_release(struct ice_vf *vf);
 struct ice_vsi *ice_vf_ctrl_vsi_setup(struct ice_vf *vf);
 int ice_vf_init_host_cfg(struct ice_vf *vf, struct ice_vsi *vsi);
 void ice_vf_invalidate_vsi(struct ice_vf *vf);
 void ice_vf_vsi_release(struct ice_vf *vf);
-void ice_vf_set_initialized(struct ice_vf *vf);
 
 #endif /* _ICE_VF_LIB_PRIVATE_H_ */