[PATCH 4/5] ice: clear DVM boost table before scanning package hints
From: Aaron Ma
Date: Mon Oct 19 2026 - 06:58:03 EST
ice_init_pkg_hints() clears hw->tnl before enumerating package labels,
but leaves hw->dvm_upd untouched. Every subsequent call to
ice_init_pkg() during reset recovery appends duplicate DVM and SVM boost
entries to hw->dvm_upd.tbl[] until hw->dvm_upd.count saturates at
ICE_DVM_MAX_ENTRIES (48).
During package download, ice_set_dvm_boost_entries() then issues a
redundant Update Package Admin Queue command for every accumulated
duplicate while holding the firmware Global Configuration Lock.
Zero hw->dvm_upd alongside hw->tnl before enumerating package hints.
Fixes: a1ffafb0b4a4 ("ice: Support configuring the device to Double VLAN Mode")
Signed-off-by: Aaron Ma <aaron.ma@xxxxxxxxxxxxx>
---
drivers/net/ethernet/intel/ice/ice_ddp.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/intel/ice/ice_ddp.c b/drivers/net/ethernet/intel/ice/ice_ddp.c
index b71f3fb791db7..a86ef097826d5 100644
--- a/drivers/net/ethernet/intel/ice/ice_ddp.c
+++ b/drivers/net/ethernet/intel/ice/ice_ddp.c
@@ -2101,6 +2101,7 @@ static void ice_init_pkg_hints(struct ice_hw *hw, struct ice_seg *ice_seg)
int i;
memset(&hw->tnl, 0, sizeof(hw->tnl));
+ memset(&hw->dvm_upd, 0, sizeof(hw->dvm_upd));
memset(&state, 0, sizeof(state));
if (!ice_seg)
--
2.53.0