diff options
author | peter <peter@FreeBSD.org> | 1997-05-31 10:13:46 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1997-05-31 10:13:46 +0000 |
commit | e194f5cbd7677b14292463d8d1a11200c37d522a (patch) | |
tree | bb5ce61a942a92790d1550214e31c9b70a953070 /sys | |
parent | 577ee2ecf9e67baaef64eb8a232bc5645892c708 (diff) | |
download | FreeBSD-src-e194f5cbd7677b14292463d8d1a11200c37d522a.zip FreeBSD-src-e194f5cbd7677b14292463d8d1a11200c37d522a.tar.gz |
Bruce mentioned to me that Paul Traina had noticed that the ppp_tty
interrupt mask hackery wasn't happening when being modloaded via the
if_ppp lkm. It seems that the lkm system doesn't particularly like having
two sets of load/unload/etc routines. :-] This really should be fixed
by having a seperate if_ppp and ppp_tty lkm, but that requires that ppp_tty
is loaded after if_ppp, and needs to be able to link with symbols in
if_ppp. This gets messy, it is a better task for the in-kernel linker.
(if_ppp is generic, ppp_tty is a tty-specific bottom end for if_ppp, it's
not _too_ hard to have another "provider" (such as a hdlc sync card)
connected to if_ppp)
Diffstat (limited to 'sys')
-rw-r--r-- | sys/net/if_ppp.c | 10 | ||||
-rw-r--r-- | sys/net/ppp_tty.c | 8 |
2 files changed, 13 insertions, 5 deletions
diff --git a/sys/net/if_ppp.c b/sys/net/if_ppp.c index 2abdf2d..c75eb39 100644 --- a/sys/net/if_ppp.c +++ b/sys/net/if_ppp.c @@ -69,7 +69,7 @@ * Paul Mackerras (paulus@cs.anu.edu.au). */ -/* $Id: if_ppp.c,v 1.39 1997/02/22 09:41:03 peter Exp $ */ +/* $Id: if_ppp.c,v 1.40 1997/03/24 11:52:29 bde Exp $ */ /* from if_ppp.c,v 1.5 1995/08/16 01:36:38 paulus Exp */ /* from if_sl.c,v 1.11 84/10/04 12:54:47 rick Exp */ @@ -126,6 +126,9 @@ struct ppp_softc ppp_softc[NPPP]; +/* XXX layering violation */ +extern void pppasyncattach __P((void *)); + static void pppattach __P((void *)); PSEUDO_SET(pppattach, if_ppp); @@ -206,6 +209,11 @@ pppattach(dummy) #endif } register_netisr(NETISR_PPP, pppintr); + /* + * XXX layering violation - if_ppp can work over any lower level + * transport that cares to attach to it. + */ + pppasyncattach(dummy); } /* diff --git a/sys/net/ppp_tty.c b/sys/net/ppp_tty.c index 4f8107b..f0a0408 100644 --- a/sys/net/ppp_tty.c +++ b/sys/net/ppp_tty.c @@ -70,7 +70,7 @@ * Paul Mackerras (paulus@cs.anu.edu.au). */ -/* $Id: ppp_tty.c,v 1.15 1997/03/24 11:24:46 bde Exp $ */ +/* $Id: ppp_tty.c,v 1.16 1997/05/31 09:49:35 peter Exp $ */ /* from Id: ppp_tty.c,v 1.3 1995/08/16 01:36:40 paulus Exp */ /* from if_sl.c,v 1.11 84/10/04 12:54:47 rick Exp */ @@ -113,9 +113,6 @@ #include <net/if_ppp.h> #include <net/if_pppvar.h> -static void pppasyncattach __P((void *)); -PSEUDO_SET(pppasyncattach, ppp_tty); - static int pppopen __P((dev_t dev, struct tty *tp)); static int pppclose __P((struct tty *tp, int flag)); static int pppread __P((struct tty *tp, struct uio *uio, int flag)); @@ -134,6 +131,9 @@ static void ppp_timeout __P((void *)); static void pppgetm __P((struct ppp_softc *sc)); static void ppplogchar __P((struct ppp_softc *, int)); +/* XXX called from if_ppp.c - layering violation */ +void pppasyncattach __P((void *)); + /* * Some useful mbuf macros not in mbuf.h. */ |