svn commit: r333366 - head/sys/net
Stephen Hurd
shurd at FreeBSD.org
Tue May 8 16:56:03 UTC 2018
Author: shurd
Date: Tue May 8 16:56:02 2018
New Revision: 333366
URL: https://svnweb.freebsd.org/changeset/base/333366
Log:
iflib: cleanup queues when iflib_device_register fail
Submitted by: Jacob Keller <jacob.e.keller at intel.com>
Reviewed by: gallatin
MFC after: 3 days
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D15299
Modified:
head/sys/net/iflib.c
Modified: head/sys/net/iflib.c
==============================================================================
--- head/sys/net/iflib.c Tue May 8 16:16:56 2018 (r333365)
+++ head/sys/net/iflib.c Tue May 8 16:56:02 2018 (r333366)
@@ -4453,7 +4453,8 @@ fail_intr_free:
if (scctx->isc_intr == IFLIB_INTR_MSIX || scctx->isc_intr == IFLIB_INTR_MSI)
pci_release_msi(ctx->ifc_dev);
fail_queues:
- /* XXX free queues */
+ iflib_tx_structures_free(ctx);
+ iflib_rx_structures_free(ctx);
fail:
IFDI_DETACH(ctx);
CTX_UNLOCK(ctx);
@@ -5065,14 +5066,16 @@ iflib_qset_structures_setup(if_ctx_t ctx)
{
int err;
+ /*
+ * It is expected that the caller takes care of freeing queues if this
+ * fails.
+ */
if ((err = iflib_tx_structures_setup(ctx)) != 0)
return (err);
- if ((err = iflib_rx_structures_setup(ctx)) != 0) {
+ if ((err = iflib_rx_structures_setup(ctx)) != 0)
device_printf(ctx->ifc_dev, "iflib_rx_structures_setup failed: %d\n", err);
- iflib_tx_structures_free(ctx);
- iflib_rx_structures_free(ctx);
- }
+
return (err);
}
More information about the svn-src-all
mailing list