net: iflib: sync isc_capenable to if_capenable
On SIOCSIFCAP, some bits in ifp->if_capenable may be toggled. When this happens, apply the same change to isc_capenable, which is the iflib private copy of if_capenable (for a subset of the IFCAP_* bits). In this way the iflib drivers can check the bits using isc_capenable rather than if_capenable. This is convenient because the latter access requires an additional indirection through the ifp, and it is also less likely to be in cache. PR: 260068 Reviewed by: kbowling, gallatin MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D33156
This commit is contained in:
parent
a7ba00a438
commit
4561c4f0ca
@ -4449,6 +4449,7 @@ iflib_if_ioctl(if_t ifp, u_long command, caddr_t data)
|
||||
iflib_stop(ctx);
|
||||
STATE_LOCK(ctx);
|
||||
if_togglecapenable(ifp, setmask);
|
||||
ctx->ifc_softc_ctx.isc_capenable ^= setmask;
|
||||
STATE_UNLOCK(ctx);
|
||||
if (bits & IFF_DRV_RUNNING && setmask & ~IFCAP_WOL)
|
||||
iflib_init_locked(ctx);
|
||||
|
Loading…
Reference in New Issue
Block a user