From 0dd691b41276ce13d25ffb1443af27f85038aa3f Mon Sep 17 00:00:00 2001 From: Kyle Evans Date: Tue, 9 Mar 2021 06:13:31 -0600 Subject: [PATCH] iflib: allow clone detach if not yet init If we hit an error during init, then we'll unwind our state and attempt to detach the device -- don't block it. This was discovered by creating a wg0 with missing parameters; said failure ended up leaving this orphaned device in place and ended up panicking the system upon enumeration of the dev.* sysctl space. Reviewed by: gallatin, markj MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D29145 --- sys/net/iflib_clone.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/net/iflib_clone.c b/sys/net/iflib_clone.c index 975873c4a19c..fc4e71806926 100644 --- a/sys/net/iflib_clone.c +++ b/sys/net/iflib_clone.c @@ -83,7 +83,8 @@ iflib_pseudo_detach(device_t dev) if_ctx_t ctx; ctx = device_get_softc(dev); - if ((iflib_get_flags(ctx) & IFC_IN_DETACH) == 0) + if ((iflib_get_flags(ctx) & (IFC_INIT_DONE | IFC_IN_DETACH)) == + IFC_INIT_DONE) return (EBUSY); return (0); }