Module Name: src Committed By: knakahara Date: Wed Mar 30 02:45:14 UTC 2022
Modified Files: src/sys/dev/pci: if_vmx.c Log Message: vmxnet3_stop_rendezvous() requires workqueue_wait() to wait workqueue not scheduled yet. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/dev/pci/if_vmx.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/if_vmx.c diff -u src/sys/dev/pci/if_vmx.c:1.6 src/sys/dev/pci/if_vmx.c:1.7 --- src/sys/dev/pci/if_vmx.c:1.6 Sun Feb 13 19:07:38 2022 +++ src/sys/dev/pci/if_vmx.c Wed Mar 30 02:45:14 2022 @@ -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_s { 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_s 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