aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/neta
diff options
context:
space:
mode:
authorKornel Dulęba <kd@FreeBSD.org>2022-08-18 16:53:14 +0000
committerKornel Dulęba <kd@FreeBSD.org>2022-08-18 16:53:14 +0000
commit97ecdc00ac5ac506f4119be9570d13de2d3a003a (patch)
treeee037145666ceacc52065b5c21ec80566705157b /sys/dev/neta
parent6d645da0d49decc0352f27b8b5ff1983c611659d (diff)
Diffstat (limited to 'sys/dev/neta')
-rw-r--r--sys/dev/neta/if_mvneta.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/neta/if_mvneta.c b/sys/dev/neta/if_mvneta.c
index c2eb32947716..eb6c9eec74ce 100644
--- a/sys/dev/neta/if_mvneta.c
+++ b/sys/dev/neta/if_mvneta.c
@@ -2054,9 +2054,11 @@ mvneta_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
struct ifreq *ifr;
int error, mask;
uint32_t flags;
+ bool reinit;
int q;
error = 0;
+ reinit = false;
sc = ifp->if_softc;
ifr = (struct ifreq *)data;
switch (cmd) {
@@ -2157,8 +2159,10 @@ mvneta_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
* Reinitialize RX queues.
* We need to update RX descriptor size.
*/
- if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+ if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
+ reinit = true;
mvneta_stop_locked(sc);
+ }
for (q = 0; q < MVNETA_RX_QNUM_MAX; q++) {
mvneta_rx_lockq(sc, q);
@@ -2172,7 +2176,7 @@ mvneta_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
}
mvneta_rx_unlockq(sc, q);
}
- if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+ if (reinit)
mvneta_init_locked(sc);
mvneta_sc_unlock(sc);