From f4c118d7a32370516b0871920b36002895f14f1d Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 27 Mar 2002 14:36:07 +0000 Subject: 2002-03-27 Ilya Alexeev * PR162 * net/if_ppp.c ppp_txdaemon(), net/if_pppvar.h pppstart(): Local variables must not be used in a device write routines. Now ppp_softc structure have own character for writing to device (sc_outchar). I think that converting local variables to static is not a right solution, because problems will occur in the case of two or more ppp instances. * net/ppp_tty.c pppstart(): Type of the ioffset variable must be u_long, otherwise in the case of the big output packet endless loop may occur. --- cpukit/libnetworking/net/if_ppp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'cpukit/libnetworking/net/if_ppp.c') diff --git a/cpukit/libnetworking/net/if_ppp.c b/cpukit/libnetworking/net/if_ppp.c index bb90eac78a..d4e0847655 100644 --- a/cpukit/libnetworking/net/if_ppp.c +++ b/cpukit/libnetworking/net/if_ppp.c @@ -243,7 +243,6 @@ static rtems_task ppp_rxdaemon(rtems_task_argument arg) static rtems_task ppp_txdaemon(rtems_task_argument arg) { rtems_event_set events; - char cFrame = (char )PPP_FLAG; int iprocess = (int )0; struct ppp_softc *sc = (struct ppp_softc *)arg; struct mbuf *mp; @@ -351,7 +350,8 @@ static rtems_task ppp_txdaemon(rtems_task_argument arg) microtime(&sc->sc_if.if_lastchange); /* write out frame byte to start the transmission */ - (*tp->device.write)(tp->minor, &cFrame, 1); + sc->sc_outchar = (u_char)PPP_FLAG; + (*tp->device.write)(tp->minor, &sc->sc_outchar, 1); } /* check to see if we need to free some empty mbufs */ -- cgit v1.2.3