From 474e30f0b1d6d570a307e1b96d5f06a156fde80f Mon Sep 17 00:00:00 2001 From: Scott Long Date: Sun, 29 Feb 2004 09:26:01 +0000 Subject: [PATCH] All three of these drivers abused cv_waitq_empty in the same way by spinning on it in hopes of making sure that the waitq was empty before going on. This wasn't needed and probably never would have worked as intended. Now that cv_waitq_empty() and friends are gone, the code in these drivers that spins on it can go away too. This should unbreak LINT. Discussed with: kan --- sys/dev/en/midway.c | 5 +---- sys/dev/hatm/if_hatm.c | 9 ++------- sys/dev/patm/if_patm.c | 5 +---- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/sys/dev/en/midway.c b/sys/dev/en/midway.c index 494a61e60285..3aa001618c5e 100644 --- a/sys/dev/en/midway.c +++ b/sys/dev/en/midway.c @@ -1415,10 +1415,7 @@ en_reset_ul(struct en_softc *sc) /* * Unstop all waiters */ - while (!cv_waitq_empty(&sc->cv_close)) { - cv_broadcast(&sc->cv_close); - DELAY(100); - } + cv_broadcast(&sc->cv_close); } /* diff --git a/sys/dev/hatm/if_hatm.c b/sys/dev/hatm/if_hatm.c index a411d061caa2..80c8ff09215a 100644 --- a/sys/dev/hatm/if_hatm.c +++ b/sys/dev/hatm/if_hatm.c @@ -2312,13 +2312,8 @@ hatm_stop(struct hatm_softc *sc) * Give any waiters on closing a VCC a chance. They will stop * to wait if they see that IFF_RUNNING disappeared. */ - while (!(cv_waitq_empty(&sc->vcc_cv))) { - cv_broadcast(&sc->vcc_cv); - DELAY(100); - } - while (!(cv_waitq_empty(&sc->cv_rcclose))) { - cv_broadcast(&sc->cv_rcclose); - } + cv_broadcast(&sc->vcc_cv); + cv_broadcast(&sc->cv_rcclose); /* * Now free all resources. diff --git a/sys/dev/patm/if_patm.c b/sys/dev/patm/if_patm.c index b10603bdcc4f..3728ecc61d70 100644 --- a/sys/dev/patm/if_patm.c +++ b/sys/dev/patm/if_patm.c @@ -269,10 +269,7 @@ patm_stop(struct patm_softc *sc) * Give any waiters on closing a VCC a chance. They will stop * to wait if they see that IFF_RUNNING disappeared. */ - while (!(cv_waitq_empty(&sc->vcc_cv))) { - cv_broadcast(&sc->vcc_cv); - DELAY(100); - } + cv_broadcast(&sc->vcc_cv); /* free large buffers */ patm_debug(sc, ATTACH, "freeing large buffers...");