Page MenuHomeFreeBSD

ice: Quiesce queues after partial initialization
Needs ReviewPublic

Authored by kbowling on Thu, Sep 3, 6:33 AM.
Tags
None
Referenced Files
F170121430: D59331.id185680.diff
Thu, Sep 3, 2:06 PM
F170087393: D59331.id185680.diff
Thu, Sep 3, 11:35 AM
F170062285: D59331.diff
Thu, Sep 3, 9:58 AM
F170058794: D59331.diff
Thu, Sep 3, 9:40 AM
F170046866: D59331.id.diff
Thu, Sep 3, 8:49 AM
Subscribers

Details

Reviewers
kgalazka
Group Reviewers
Intel Networking
Restricted Owners Package(Owns No Changed Paths)
Summary
ice_if_init marks DRIVER_INITIALIZED only after all queue and filter
operations succeed, so ice_if_stop intentionally does nothing after an
initialization failure.  Each failure path must therefore unwind any
hardware queues it may have configured before iflib releases their DMA
mappings.

Tx setup enables firmware scheduler queues one at a time, and Rx enable
similarly processes queues incrementally.  Route failures from both
operations through cleanup paths for both the PF and mirror VSIs.  The
cleanup helpers tolerate queues which were not configured, so they also
cover failures on the first queue.

This leaves failed initialization stopped as required by the
iflib_init_failed contract.

MFC after:      2 weeks

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped