diff options
| author | knakahara <knakahara@NetBSD.org> | 2022-03-30 02:45:14 +0000 |
|---|---|---|
| committer | knakahara <knakahara@NetBSD.org> | 2022-03-30 02:45:14 +0000 |
| commit | c366f81d7b24d1db2b922bdf4ce531b0011af0fe (patch) | |
| tree | e82d663e89d3015ffa3c5945a195229ffb29a72f /sys/dev | |
| parent | d7bdf3223cc1da25e097c52122975bc71c101d70 (diff) | |
vmxnet3_stop_rendezvous() requires workqueue_wait() to wait workqueue not scheduled yet.
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/pci/if_vmx.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/dev/pci/if_vmx.c b/sys/dev/pci/if_vmx.c index 6db4752cd36..89b071d5095 100644 --- a/sys/dev/pci/if_vmx.c +++ b/sys/dev/pci/if_vmx.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_vmx.c,v 1.6 2022/02/13 19:07:38 riastradh Exp $ */ +/* $NetBSD: if_vmx.c,v 1.7 2022/03/30 02:45:14 knakahara Exp $ */ /* $OpenBSD: if_vmx.c,v 1.16 2014/01/22 06:04:17 brad Exp $ */ /* @@ -19,7 +19,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_vmx.c,v 1.6 2022/02/13 19:07:38 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_vmx.c,v 1.7 2022/03/30 02:45:14 knakahara Exp $"); #include <sys/param.h> #include <sys/cpu.h> @@ -2714,6 +2714,7 @@ vmxnet3_stop_rendezvous(struct vmxnet3_softc *sc) { struct vmxnet3_rxqueue *rxq; struct vmxnet3_txqueue *txq; + struct vmxnet3_queue *vmxq; int i; for (i = 0; i < sc->vmx_nrxqueues; i++) { @@ -2726,6 +2727,10 @@ vmxnet3_stop_rendezvous(struct vmxnet3_softc *sc) VMXNET3_TXQ_LOCK(txq); VMXNET3_TXQ_UNLOCK(txq); } + for (i = 0; i < sc->vmx_nrxqueues; i++) { + vmxq = &sc->vmx_queue[i]; + workqueue_wait(sc->vmx_queue_wq, &vmxq->vxq_wq_cookie); + } } static void |
