mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-16 10:20:30 +00:00
Prevent modem hanging forever on close with CTS off:
use 1min timeout to wakeup ttywait
This commit is contained in:
parent
61181d7df2
commit
22171b7a33
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=3620
@ -31,7 +31,7 @@
|
|||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
|
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
|
||||||
* $Id: sio.c,v 1.53 1994/09/21 19:39:25 davidg Exp $
|
* $Id: sio.c,v 1.54 1994/10/12 19:49:11 bde Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "sio.h"
|
#include "sio.h"
|
||||||
@ -876,7 +876,9 @@ sioclose(dev, flag, mode, p)
|
|||||||
com = com_addr(MINOR_TO_UNIT(mynor));
|
com = com_addr(MINOR_TO_UNIT(mynor));
|
||||||
tp = com->tp;
|
tp = com->tp;
|
||||||
s = spltty();
|
s = spltty();
|
||||||
|
timeout((timeout_func_t)wakeup, (caddr_t)&tp->t_outq, 60*hz);
|
||||||
(*linesw[tp->t_line].l_close)(tp, flag);
|
(*linesw[tp->t_line].l_close)(tp, flag);
|
||||||
|
untimeout((timeout_func_t)wakeup, (caddr_t)&tp->t_outq);
|
||||||
siostop(tp, FREAD | FWRITE);
|
siostop(tp, FREAD | FWRITE);
|
||||||
comhardclose(com);
|
comhardclose(com);
|
||||||
ttyclose(tp);
|
ttyclose(tp);
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
|
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
|
||||||
* $Id: sio.c,v 1.53 1994/09/21 19:39:25 davidg Exp $
|
* $Id: sio.c,v 1.54 1994/10/12 19:49:11 bde Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "sio.h"
|
#include "sio.h"
|
||||||
@ -876,7 +876,9 @@ sioclose(dev, flag, mode, p)
|
|||||||
com = com_addr(MINOR_TO_UNIT(mynor));
|
com = com_addr(MINOR_TO_UNIT(mynor));
|
||||||
tp = com->tp;
|
tp = com->tp;
|
||||||
s = spltty();
|
s = spltty();
|
||||||
|
timeout((timeout_func_t)wakeup, (caddr_t)&tp->t_outq, 60*hz);
|
||||||
(*linesw[tp->t_line].l_close)(tp, flag);
|
(*linesw[tp->t_line].l_close)(tp, flag);
|
||||||
|
untimeout((timeout_func_t)wakeup, (caddr_t)&tp->t_outq);
|
||||||
siostop(tp, FREAD | FWRITE);
|
siostop(tp, FREAD | FWRITE);
|
||||||
comhardclose(com);
|
comhardclose(com);
|
||||||
ttyclose(tp);
|
ttyclose(tp);
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
|
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
|
||||||
* $Id: sio.c,v 1.53 1994/09/21 19:39:25 davidg Exp $
|
* $Id: sio.c,v 1.54 1994/10/12 19:49:11 bde Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "sio.h"
|
#include "sio.h"
|
||||||
@ -876,7 +876,9 @@ sioclose(dev, flag, mode, p)
|
|||||||
com = com_addr(MINOR_TO_UNIT(mynor));
|
com = com_addr(MINOR_TO_UNIT(mynor));
|
||||||
tp = com->tp;
|
tp = com->tp;
|
||||||
s = spltty();
|
s = spltty();
|
||||||
|
timeout((timeout_func_t)wakeup, (caddr_t)&tp->t_outq, 60*hz);
|
||||||
(*linesw[tp->t_line].l_close)(tp, flag);
|
(*linesw[tp->t_line].l_close)(tp, flag);
|
||||||
|
untimeout((timeout_func_t)wakeup, (caddr_t)&tp->t_outq);
|
||||||
siostop(tp, FREAD | FWRITE);
|
siostop(tp, FREAD | FWRITE);
|
||||||
comhardclose(com);
|
comhardclose(com);
|
||||||
ttyclose(tp);
|
ttyclose(tp);
|
||||||
|
Loading…
Reference in New Issue
Block a user