Page MenuHomeFreeBSD

D59599.diff
No OneTemporary

D59599.diff

Index: sys/dev/e1000/if_em.c
===================================================================
--- sys/dev/e1000/if_em.c
+++ sys/dev/e1000/if_em.c
@@ -6571,7 +6571,6 @@
if_softc_ctx_t scctx = iflib_get_softc_ctx(ctx);
if_t ifp = iflib_get_ifp(ctx);
bool reset_needed;
- int drvflags;
if (!em_unsupported_tso && sc->link_speed &&
sc->link_speed != SPEED_1000 &&
@@ -6591,16 +6590,13 @@
}
/*
- * Reset a running interface, or one being initialized while
- * administratively up. OACTIVE remains set after iflib_stop(), so
- * it alone cannot distinguish initialization from an interface that
- * is down. In other states, the next initialization will apply the
- * updated capabilities.
+ * Apply the new capabilities to a running or administratively-up
+ * interface, including one whose initialization has not completed.
+ * A stopped, administratively-down interface will apply them at the
+ * next initialization; driver flags do not describe that intent.
*/
- drvflags = if_getdrvflags(ifp);
- reset_needed = (drvflags & IFF_DRV_RUNNING) != 0 ||
- ((drvflags & IFF_DRV_OACTIVE) != 0 &&
- (if_getflags(ifp) & IFF_UP) != 0);
+ reset_needed = iflib_is_running(ctx) ||
+ (if_getflags(ifp) & IFF_UP) != 0;
if (!reset_needed)
return (false);

File Metadata

Mime Type
text/plain
Expires
Sat, Sep 12, 10:41 PM (5 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38823079
Default Alt Text
D59599.diff (1 KB)

Event Timeline