• Amritha Nambiar's avatar
    ice: Fix ASSERT_RTNL() warning during certain scenarios · 080b0c8d
    Amritha Nambiar authored
    Commit 91fdbce7 ("ice: Add support in the driver for associating
    queue with napi") invoked the netif_queue_set_napi() call. This
    kernel function requires to be called with rtnl_lock taken,
    otherwise ASSERT_RTNL() warning will be triggered. ice_vsi_rebuild()
    initiating this call is under rtnl_lock when the rebuild is in
    response to configuration changes from external interfaces (such as
    tc, ethtool etc. which holds the lock). But, the VSI rebuild
    generated from service tasks and resets (PFR/CORER/GLOBR) is not
    under rtnl lock protection. Handle these cases as well to hold lock
    before the kernel call (by setting the 'locked' boolean to false).
    
    netif_queue_set_napi() is also used to clear previously set napi
    in the q_vector unroll flow. Handle this for locked/lockless execution
    paths.
    
    Fixes: 91fdbce7 ("ice: Add support in the driver for associating queue with napi")
    Signed-off-by: default avatarAmritha Nambiar <amritha.nambiar@intel.com>
    Reviewed-by: default avatarSridhar Samudrala <sridhar.samudrala@intel.com>
    Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    080b0c8d
ice_base.c 29.2 KB