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:39:48 +0000 (09:39 +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 6f674cd117d3dd968bc96ae82192aa74bbf78f9d..13afbffc4758a0d8466dd19a30d3e7fd3bf683d8 100644 (file)
@@ -5477,15 +5477,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);
 
@@ -5651,7 +5648,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);
@@ -5661,7 +5658,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;
 }