git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ring: remove unnecessary forward declaration
[dpdk.git]
/
drivers
/
net
/
ice
/
base
/
ice_flow.c
diff --git
a/drivers/net/ice/base/ice_flow.c
b/drivers/net/ice/base/ice_flow.c
index
03a324d
..
be819e0
100644
(file)
--- a/
drivers/net/ice/base/ice_flow.c
+++ b/
drivers/net/ice/base/ice_flow.c
@@
-516,7
+516,7
@@
ice_flow_xtract_fld(struct ice_hw *hw, struct ice_flow_prof_params *params,
struct ice_flow_fld_info *flds;
u16 cnt, ese_bits, i;
s16 adj = 0;
struct ice_flow_fld_info *flds;
u16 cnt, ese_bits, i;
s16 adj = 0;
- u
8
off;
+ u
16
off;
flds = params->prof->segs[seg].fields;
flds = params->prof->segs[seg].fields;
@@
-910,8
+910,11
@@
ice_flow_rem_entry_sync(struct ice_hw *hw, struct ice_flow_entry *entry)
if (entry->entry)
ice_free(hw, entry->entry);
if (entry->entry)
ice_free(hw, entry->entry);
- if (entry->acts)
+ if (entry->acts)
{
ice_free(hw, entry->acts);
ice_free(hw, entry->acts);
+ entry->acts = NULL;
+ entry->acts_cnt = 0;
+ }
ice_free(hw, entry);
ice_free(hw, entry);
@@
-953,7
+956,10
@@
ice_flow_add_prof_sync(struct ice_hw *hw, enum ice_block blk,
return ICE_ERR_NO_MEMORY;
/* initialize extraction sequence to all invalid (0xff) */
return ICE_ERR_NO_MEMORY;
/* initialize extraction sequence to all invalid (0xff) */
- ice_memset(params.es, 0xff, sizeof(params.es), ICE_NONDMA_MEM);
+ for (i = 0; i < ICE_MAX_FV_WORDS; i++) {
+ params.es[i].prot_id = ICE_PROT_INVALID;
+ params.es[i].off = ICE_FV_OFFSET_INVAL;
+ }
params.blk = blk;
params.prof->id = prof_id;
params.blk = blk;
params.prof->id = prof_id;
@@
-1306,6
+1312,7
@@
ice_flow_add_entry(struct ice_hw *hw, enum ice_block blk, u64 prof_id,
e->id = entry_id;
e->vsi_handle = vsi_handle;
e->prof = prof;
e->id = entry_id;
e->vsi_handle = vsi_handle;
e->prof = prof;
+ e->priority = prio;
switch (blk) {
case ICE_BLK_RSS:
switch (blk) {
case ICE_BLK_RSS:
@@
-1672,7
+1679,8
@@
ice_add_rss_vsi_ctx(struct ice_hw *hw, u16 vsi_handle,
rss_cfg->hashed_flds = prof->segs[prof->segs_cnt - 1].match;
rss_cfg->packet_hdr = prof->segs[prof->segs_cnt - 1].hdrs;
rss_cfg->hashed_flds = prof->segs[prof->segs_cnt - 1].match;
rss_cfg->packet_hdr = prof->segs[prof->segs_cnt - 1].hdrs;
- LIST_ADD(&rss_cfg->l_entry, &hw->vsi_ctx[vsi_handle]->rss_list_head);
+ LIST_ADD_TAIL(&rss_cfg->l_entry,
+ &hw->vsi_ctx[vsi_handle]->rss_list_head);
return ICE_SUCCESS;
}
return ICE_SUCCESS;
}
@@
-1851,11
+1859,14
@@
ice_rem_rss_cfg_sync(struct ice_hw *hw, u16 vsi_handle, u64 hashed_flds,
if (status)
goto out;
if (status)
goto out;
+ /* Remove RSS configuration from VSI context before deleting
+ * the flow profile.
+ */
+ ice_rem_rss_cfg_vsi_ctx(hw, vsi_handle, prof);
+
if (!ice_is_any_bit_set(prof->vsis, ICE_MAX_VSI))
status = ice_flow_rem_prof_sync(hw, blk, prof);
if (!ice_is_any_bit_set(prof->vsis, ICE_MAX_VSI))
status = ice_flow_rem_prof_sync(hw, blk, prof);
- ice_rem_rss_cfg_vsi_ctx(hw, vsi_handle, prof);
-
out:
ice_free(hw, segs);
return status;
out:
ice_free(hw, segs);
return status;