HomeFreeBSD

iflib: Free resources in a consistent order during detach

Description

iflib: Free resources in a consistent order during detach

Memory and PCI resources are freed with no particular order. This could
cause use-after-frees when detaching following a failed attach. For
instance, iflib_tx_structures_free() frees ctx->ifc_txqs[] but
iflib_tqg_detach() attempts to access this array. Similarly, adapter
queues gets freed by IFDI_QUEUES_FREE() but IFDI_DETACH() attempts to
access adapter queues to free PCI resources.

Sponsored by: NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D27634

(cherry picked from commit 38bfc6dee33bedb290e1ea2540f97a86fe3caee0)

Details

Provenance
stallamr_netapp.comAuthored on Feb 1 2021, 4:13 PM
markjCommitted on Feb 15 2021, 7:12 PM
Differential Revision
D27634: Ensure to free memory and pci resources in order
Parents
rG8eebd9592e3d: mca: Handle inconsistent CMCI capability reporting
Branches
Unknown
Tags
Unknown