ice: add missing checks for PF vsi type
authorJesse Brandeburg <jesse.brandeburg@intel.com>
Wed, 14 Dec 2022 00:01:31 +0000 (16:01 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 Mar 2023 08:33:50 +0000 (09:33 +0100)
[ Upstream commit 6a8d013e904ad9a66706fcc926ec9993bed7d190 ]

There were a few places we had missed checking the VSI type to make sure
it was definitely a PF VSI, before calling setup functions intended only
for the PF VSI.

This doesn't fix any explicit bugs but cleans up the code in a few
places and removes one explicit != vsi->type check that can be
superseded by this code (it's a super set)

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Gurucharan G <gurucharanx.g@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/intel/ice/ice_main.c

index 72f97bb..3c6bb3f 100644 (file)
@@ -6159,15 +6159,12 @@ int ice_vsi_cfg(struct ice_vsi *vsi)
 {
        int err;
 
-       if (vsi->netdev) {
+       if (vsi->netdev && vsi->type == ICE_VSI_PF) {
                ice_set_rx_mode(vsi->netdev);
 
-               if (vsi->type != ICE_VSI_LB) {
-                       err = ice_vsi_vlan_setup(vsi);
-
-                       if (err)
-                               return err;
-               }
+               err = ice_vsi_vlan_setup(vsi);
+               if (err)
+                       return err;
        }
        ice_vsi_cfg_dcb_rings(vsi);
 
@@ -6348,7 +6345,7 @@ static int ice_up_complete(struct ice_vsi *vsi)
 
        if (vsi->port_info &&
            (vsi->port_info->phy.link_info.link_info & ICE_AQ_LINK_UP) &&
-           vsi->netdev) {
+           vsi->netdev && vsi->type == ICE_VSI_PF) {
                ice_print_link_msg(vsi, true);
                netif_tx_start_all_queues(vsi->netdev);
                netif_carrier_on(vsi->netdev);
@@ -6360,7 +6357,9 @@ static int ice_up_complete(struct ice_vsi *vsi)
         * set the baseline so counters are ready when interface is up
         */
        ice_update_eth_stats(vsi);
-       ice_service_task_schedule(pf);
+
+       if (vsi->type == ICE_VSI_PF)
+               ice_service_task_schedule(pf);
 
        return 0;
 }