Page MenuHomeFreeBSD

D47296.diff
No OneTemporary

D47296.diff

Index: sys/net/iflib.c
===================================================================
--- sys/net/iflib.c
+++ sys/net/iflib.c
@@ -3095,10 +3095,16 @@
retval |= IFLIB_RXEOF_MORE;
return (retval);
err:
- STATE_LOCK(ctx);
- ctx->ifc_flags |= IFC_DO_RESET;
- iflib_admin_intr_deferred(ctx);
- STATE_UNLOCK(ctx);
+ /*
+ * Allow drivers to use EBADMSG for transient errors, otherwise consider
+ * other errors as contractual failures and reset the interface.
+ */
+ if (err != EBADMSG) {
+ STATE_LOCK(ctx);
+ ctx->ifc_flags |= IFC_DO_RESET;
+ iflib_admin_intr_deferred(ctx);
+ STATE_UNLOCK(ctx);
+ }
return (0);
}

File Metadata

Mime Type
text/plain
Expires
Wed, Nov 6, 7:15 AM (5 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14479761
Default Alt Text
D47296.diff (631 B)

Event Timeline