ice: Refactor ice_set/get_rss into LUT and key specific functions
[linux-2.6-microblaze.git] / drivers / net / ethernet / intel / ice / ice_lib.c
index 22bcccd..d3b99b1 100644 (file)
@@ -1326,7 +1326,7 @@ int ice_vsi_manage_rss_lut(struct ice_vsi *vsi, bool ena)
                                         vsi->rss_size);
        }
 
-       err = ice_set_rss(vsi, NULL, lut, vsi->rss_table_size);
+       err = ice_set_rss_lut(vsi, lut, vsi->rss_table_size);
        kfree(lut);
        return err;
 }
@@ -1337,13 +1337,10 @@ int ice_vsi_manage_rss_lut(struct ice_vsi *vsi, bool ena)
  */
 static int ice_vsi_cfg_rss_lut_key(struct ice_vsi *vsi)
 {
-       struct ice_aq_get_set_rss_lut_params set_params = {};
-       struct ice_aqc_get_set_rss_keys *key;
        struct ice_pf *pf = vsi->back;
-       enum ice_status status;
        struct device *dev;
-       int err = 0;
-       u8 *lut;
+       u8 *lut, *key;
+       int err;
 
        dev = ice_pf_to_dev(pf);
        vsi->rss_size = min_t(u16, vsi->rss_size, vsi->num_rxq);
@@ -1357,41 +1354,26 @@ static int ice_vsi_cfg_rss_lut_key(struct ice_vsi *vsi)
        else
                ice_fill_rss_lut(lut, vsi->rss_table_size, vsi->rss_size);
 
-       set_params.vsi_handle = vsi->idx;
-       set_params.lut_size = vsi->rss_table_size;
-       set_params.lut_type = vsi->rss_lut_type;
-       set_params.lut = lut;
-       set_params.global_lut_id = 0;
-       status = ice_aq_set_rss_lut(&pf->hw, &set_params);
-
-       if (status) {
-               dev_err(dev, "set_rss_lut failed, error %s\n",
-                       ice_stat_str(status));
-               err = -EIO;
+       err = ice_set_rss_lut(vsi, lut, vsi->rss_table_size);
+       if (err) {
+               dev_err(dev, "set_rss_lut failed, error %d\n", err);
                goto ice_vsi_cfg_rss_exit;
        }
 
-       key = kzalloc(sizeof(*key), GFP_KERNEL);
+       key = kzalloc(ICE_GET_SET_RSS_KEY_EXTEND_KEY_SIZE, GFP_KERNEL);
        if (!key) {
                err = -ENOMEM;
                goto ice_vsi_cfg_rss_exit;
        }
 
        if (vsi->rss_hkey_user)
-               memcpy(key,
-                      (struct ice_aqc_get_set_rss_keys *)vsi->rss_hkey_user,
-                      ICE_GET_SET_RSS_KEY_EXTEND_KEY_SIZE);
+               memcpy(key, vsi->rss_hkey_user, ICE_GET_SET_RSS_KEY_EXTEND_KEY_SIZE);
        else
-               netdev_rss_key_fill((void *)key,
-                                   ICE_GET_SET_RSS_KEY_EXTEND_KEY_SIZE);
-
-       status = ice_aq_set_rss_key(&pf->hw, vsi->idx, key);
+               netdev_rss_key_fill((void *)key, ICE_GET_SET_RSS_KEY_EXTEND_KEY_SIZE);
 
-       if (status) {
-               dev_err(dev, "set_rss_key failed, error %s\n",
-                       ice_stat_str(status));
-               err = -EIO;
-       }
+       err = ice_set_rss_key(vsi, key);
+       if (err)
+               dev_err(dev, "set_rss_key failed, error %d\n", err);
 
        kfree(key);
 ice_vsi_cfg_rss_exit: