Flow director needs only one MSI-X. Load it before RDMA to save MSI-X
for it.

Signed-off-by: Michal Swiatkowski <michal.swiatkow...@linux.intel.com>
---
 drivers/net/ethernet/intel/ice/ice_main.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_main.c 
b/drivers/net/ethernet/intel/ice/ice_main.c
index dc1a085d413c..ef5e04c06267 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -5217,11 +5217,12 @@ int ice_load(struct ice_pf *pf)
 
        ice_napi_add(vsi);
 
+       ice_init_features(pf);
+
        err = ice_init_rdma(pf);
        if (err)
                goto err_init_rdma;
 
-       ice_init_features(pf);
        ice_service_task_restart(pf);
 
        clear_bit(ICE_DOWN, pf->state);
@@ -5229,6 +5230,7 @@ int ice_load(struct ice_pf *pf)
        return 0;
 
 err_init_rdma:
+       ice_deinit_features(pf);
        ice_tc_indir_block_unregister(vsi);
 err_tc_indir_block_register:
        ice_unregister_netdev(vsi);
@@ -5252,8 +5254,8 @@ void ice_unload(struct ice_pf *pf)
 
        devl_assert_locked(priv_to_devlink(pf));
 
-       ice_deinit_features(pf);
        ice_deinit_rdma(pf);
+       ice_deinit_features(pf);
        ice_tc_indir_block_unregister(vsi);
        ice_unregister_netdev(vsi);
        ice_devlink_destroy_pf_port(pf);
-- 
2.42.0

Reply via email to