On 9/3/26 9:47 AM, Aaron Ma wrote:
The firmware package and switch recipes are shared by all PFs of an adapter. However, each PF rebuilds independently after system resume. The resulting package downloads and recipe updates can interleave, causing firmware timeouts and leaving interfaces unusable.PFR also clears package-derived firmware state on affected devices. The existing PFR path only rebuilds the driver's block tables, so VLAN recipe programming can fail after the reset. The failure is reported as: ice 0000:04:00.0: Update pkg failed: err -5 ice 0000:04:00.0: package load failed, -12 ice 0000:04:00.0: Rebuild failed, unload and reload driver This was observed on an Intel E810-XXV-2 adapter (PCI ID 8086:159b, revision 02) with NVM package 1.0.0.18 and ICE OS Default DDP package 1.3.43.0. Serialize rebuilds across PFs of the same adapter, while allowing each PFR to complete independently. Reload the DDP package from its cached copy and restore the default DVM recipes before rebuilding the remaining PF state. Abort recovery if either operation fails. Fixes: 462acf6aca85 ("ice: Enable DDP package download") Signed-off-by: Aaron Ma <[email protected]>
we have FW-level lock for global (per-card) changes, we have also per-PF SW lock to protect global-update from given PF against unrelated AQ stuff You have added a protection for the case PF1 starts its SW preparation, then other PF starts the same and its first to grab the FW global lock, so PF1 could be confused. I fully support this approach, thank you! Reviewed-by: Przemek Kitszel <[email protected]>
