Page MenuHomeFreeBSD

ice: Quiesce queues after partial initialization
ClosedPublic

Authored by kbowling on Thu, Sep 3, 6:33 AM.
Tags
None
Referenced Files
F173552667: D59331.diff
Sat, Sep 26, 7:33 PM
Unknown Object (File)
Sat, Sep 26, 1:09 AM
Unknown Object (File)
Thu, Sep 24, 3:46 PM
Unknown Object (File)
Thu, Sep 24, 7:34 AM
Unknown Object (File)
Thu, Sep 24, 6:36 AM
Unknown Object (File)
Mon, Sep 21, 8:55 PM
Unknown Object (File)
Fri, Sep 18, 2:01 AM
Unknown Object (File)
Wed, Sep 16, 11:45 AM
Subscribers

Details

Reviewers
kgalazka
Group Reviewers
Intel Networking
Restricted Owners Package(Owns No Changed Paths)
Commits
rGfc809d6a6191: ice: Quiesce queues after partial initialization
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

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Owners added a reviewer: Restricted Owners Package.Thu, Sep 3, 6:34 AM
This revision was not accepted when it landed; it landed in state Needs Review.Thu, Sep 17, 6:21 AM
This revision was automatically updated to reflect the committed changes.