mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-29 05:55:02 +08:00
ice: Fix forward to queue group logic
When adding a rule, queue region size needs to be provided as log base 2 of the number of queues in region. Fix that. Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
7c4bc1f576
commit
be8ff000bf
@ -656,6 +656,7 @@ ice_fill_sw_rule(struct ice_hw *hw, struct ice_fltr_info *f_info,
|
|||||||
u8 *eth_hdr;
|
u8 *eth_hdr;
|
||||||
u32 act = 0;
|
u32 act = 0;
|
||||||
__be16 *off;
|
__be16 *off;
|
||||||
|
u8 q_rgn;
|
||||||
|
|
||||||
if (opc == ice_aqc_opc_remove_sw_rules) {
|
if (opc == ice_aqc_opc_remove_sw_rules) {
|
||||||
s_rule->pdata.lkup_tx_rx.act = 0;
|
s_rule->pdata.lkup_tx_rx.act = 0;
|
||||||
@ -694,13 +695,18 @@ ice_fill_sw_rule(struct ice_hw *hw, struct ice_fltr_info *f_info,
|
|||||||
act |= (f_info->fwd_id.q_id << ICE_SINGLE_ACT_Q_INDEX_S) &
|
act |= (f_info->fwd_id.q_id << ICE_SINGLE_ACT_Q_INDEX_S) &
|
||||||
ICE_SINGLE_ACT_Q_INDEX_M;
|
ICE_SINGLE_ACT_Q_INDEX_M;
|
||||||
break;
|
break;
|
||||||
case ICE_FWD_TO_QGRP:
|
|
||||||
act |= ICE_SINGLE_ACT_TO_Q;
|
|
||||||
act |= (f_info->qgrp_size << ICE_SINGLE_ACT_Q_REGION_S) &
|
|
||||||
ICE_SINGLE_ACT_Q_REGION_M;
|
|
||||||
break;
|
|
||||||
case ICE_DROP_PACKET:
|
case ICE_DROP_PACKET:
|
||||||
act |= ICE_SINGLE_ACT_VSI_FORWARDING | ICE_SINGLE_ACT_DROP;
|
act |= ICE_SINGLE_ACT_VSI_FORWARDING | ICE_SINGLE_ACT_DROP |
|
||||||
|
ICE_SINGLE_ACT_VALID_BIT;
|
||||||
|
break;
|
||||||
|
case ICE_FWD_TO_QGRP:
|
||||||
|
q_rgn = f_info->qgrp_size > 0 ?
|
||||||
|
(u8)ilog2(f_info->qgrp_size) : 0;
|
||||||
|
act |= ICE_SINGLE_ACT_TO_Q;
|
||||||
|
act |= (f_info->fwd_id.q_id << ICE_SINGLE_ACT_Q_INDEX_S) &
|
||||||
|
ICE_SINGLE_ACT_Q_INDEX_M;
|
||||||
|
act |= (q_rgn << ICE_SINGLE_ACT_Q_REGION_S) &
|
||||||
|
ICE_SINGLE_ACT_Q_REGION_M;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user