]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
iflib: Free resources in a consistent order during detach
authorSai Rajesh Tallamraju <stallamr@netapp.com>
Mon, 1 Feb 2021 16:13:00 +0000 (11:13 -0500)
committerMark Johnston <markj@FreeBSD.org>
Mon, 1 Feb 2021 16:15:54 +0000 (11:15 -0500)
commit38bfc6dee33bedb290e1ea2540f97a86fe3caee0
tree658bf78bf8a6a06949001762892a2a635d2c3b01
parent45ecda8ebf80bb341aa3b4955810518ae6fab158
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.

MFC after: 2 weeks
Sponsored by: NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D27634
sys/dev/e1000/if_em.c
sys/dev/ixl/if_ixl.c
sys/net/iflib.c