ice: fix ICE_AQ_VSI_Q_OPT_RSS_* register values
[ Upstream commit 20f73b60bb5c276cee9b1a530f100c677bc74af8 ] Fix the values of the ICE_AQ_VSI_Q_OPT_RSS_* registers. Shifting is already done when the values are used, no need to double shift. Bug was not discovered earlier since only ICE_AQ_VSI_Q_OPT_RSS_TPLZ (Zero) is currently used. Also, rename ICE_AQ_VSI_Q_OPT_RSS_XXX to ICE_AQ_VSI_Q_OPT_RSS_HASH_XXX for consistency. Co-developed-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com> Signed-off-by: Ahmed Zaki <ahmed.zaki@intel.com> Link: https://lore.kernel.org/r/20231213003321.605376-5-ahmed.zaki@intel.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
d4560c11c3
commit
ea12794ea6
@ -483,10 +483,10 @@ struct ice_aqc_vsi_props {
|
||||
#define ICE_AQ_VSI_Q_OPT_RSS_GBL_LUT_M (0xF << ICE_AQ_VSI_Q_OPT_RSS_GBL_LUT_S)
|
||||
#define ICE_AQ_VSI_Q_OPT_RSS_HASH_S 6
|
||||
#define ICE_AQ_VSI_Q_OPT_RSS_HASH_M (0x3 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
|
||||
#define ICE_AQ_VSI_Q_OPT_RSS_TPLZ (0x0 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
|
||||
#define ICE_AQ_VSI_Q_OPT_RSS_SYM_TPLZ (0x1 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
|
||||
#define ICE_AQ_VSI_Q_OPT_RSS_XOR (0x2 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
|
||||
#define ICE_AQ_VSI_Q_OPT_RSS_JHASH (0x3 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
|
||||
#define ICE_AQ_VSI_Q_OPT_RSS_HASH_TPLZ 0x0U
|
||||
#define ICE_AQ_VSI_Q_OPT_RSS_HASH_SYM_TPLZ 0x1U
|
||||
#define ICE_AQ_VSI_Q_OPT_RSS_HASH_XOR 0x2U
|
||||
#define ICE_AQ_VSI_Q_OPT_RSS_HASH_JHASH 0x3U
|
||||
u8 q_opt_tc;
|
||||
#define ICE_AQ_VSI_Q_OPT_TC_OVR_S 0
|
||||
#define ICE_AQ_VSI_Q_OPT_TC_OVR_M (0x1F << ICE_AQ_VSI_Q_OPT_TC_OVR_S)
|
||||
|
@ -1085,12 +1085,12 @@ static void ice_set_rss_vsi_ctx(struct ice_vsi_ctx *ctxt, struct ice_vsi *vsi)
|
||||
case ICE_VSI_PF:
|
||||
/* PF VSI will inherit RSS instance of PF */
|
||||
lut_type = ICE_AQ_VSI_Q_OPT_RSS_LUT_PF;
|
||||
hash_type = ICE_AQ_VSI_Q_OPT_RSS_TPLZ;
|
||||
hash_type = ICE_AQ_VSI_Q_OPT_RSS_HASH_TPLZ;
|
||||
break;
|
||||
case ICE_VSI_VF:
|
||||
/* VF VSI will gets a small RSS table which is a VSI LUT type */
|
||||
lut_type = ICE_AQ_VSI_Q_OPT_RSS_LUT_VSI;
|
||||
hash_type = ICE_AQ_VSI_Q_OPT_RSS_TPLZ;
|
||||
hash_type = ICE_AQ_VSI_Q_OPT_RSS_HASH_TPLZ;
|
||||
break;
|
||||
default:
|
||||
dev_dbg(dev, "Unsupported VSI type %s\n",
|
||||
|
@ -817,8 +817,8 @@ static int ice_vc_handle_rss_cfg(struct ice_vf *vf, u8 *msg, bool add)
|
||||
int status;
|
||||
|
||||
lut_type = ICE_AQ_VSI_Q_OPT_RSS_LUT_VSI;
|
||||
hash_type = add ? ICE_AQ_VSI_Q_OPT_RSS_XOR :
|
||||
ICE_AQ_VSI_Q_OPT_RSS_TPLZ;
|
||||
hash_type = add ? ICE_AQ_VSI_Q_OPT_RSS_HASH_XOR :
|
||||
ICE_AQ_VSI_Q_OPT_RSS_HASH_TPLZ;
|
||||
|
||||
ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
|
||||
if (!ctx) {
|
||||
@ -826,11 +826,9 @@ static int ice_vc_handle_rss_cfg(struct ice_vf *vf, u8 *msg, bool add)
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
ctx->info.q_opt_rss = ((lut_type <<
|
||||
ICE_AQ_VSI_Q_OPT_RSS_LUT_S) &
|
||||
ICE_AQ_VSI_Q_OPT_RSS_LUT_M) |
|
||||
(hash_type &
|
||||
ICE_AQ_VSI_Q_OPT_RSS_HASH_M);
|
||||
ctx->info.q_opt_rss =
|
||||
FIELD_PREP(ICE_AQ_VSI_Q_OPT_RSS_LUT_M, lut_type) |
|
||||
FIELD_PREP(ICE_AQ_VSI_Q_OPT_RSS_HASH_M, hash_type);
|
||||
|
||||
/* Preserve existing queueing option setting */
|
||||
ctx->info.q_opt_rss |= (vsi->info.q_opt_rss &
|
||||
|
Loading…
Reference in New Issue
Block a user