diff options
author | bde <bde@FreeBSD.org> | 1998-11-28 13:18:16 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1998-11-28 13:18:16 +0000 |
commit | 8f11507158b1ddd01885cc36b8da7e9f3e076721 (patch) | |
tree | 2f60487d168a2bb1f1c1a46dfcd5797d5ac0417e /sys/i386/isa/cy.c | |
parent | db70b202394164c029f74456ac007910e2be176d (diff) | |
download | FreeBSD-src-8f11507158b1ddd01885cc36b8da7e9f3e076721.zip FreeBSD-src-8f11507158b1ddd01885cc36b8da7e9f3e076721.tar.gz |
Merge from sio.c rev.1.163:
Don't call timeout() for DTR wakeup if the relevant timeout is already
active. This fixes "timeout table full" panics when sufficiently many
cyopen()s are interrupted while they are sleeping waiting for the
timeout to expire.
Diffstat (limited to 'sys/i386/isa/cy.c')
-rw-r--r-- | sys/i386/isa/cy.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/i386/isa/cy.c b/sys/i386/isa/cy.c index 1d41b5b..6e810c0 100644 --- a/sys/i386/isa/cy.c +++ b/sys/i386/isa/cy.c @@ -27,7 +27,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: cy.c,v 1.73 1998/11/22 17:40:32 bde Exp $ + * $Id: cy.c,v 1.74 1998/11/23 13:58:55 bde Exp $ */ #include "opt_compat.h" @@ -931,7 +931,7 @@ comhardclose(com) | CD1400_CCR_RCVDIS; cd1400_channel_cmd(com, com->channel_control); - if (com->dtr_wait != 0) { + if (com->dtr_wait != 0 && !(com->state & CS_DTR_OFF)) { timeout(siodtrwakeup, com, com->dtr_wait); com->state |= CS_DTR_OFF; } |