summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1997-05-31 10:13:46 +0000
committerpeter <peter@FreeBSD.org>1997-05-31 10:13:46 +0000
commite194f5cbd7677b14292463d8d1a11200c37d522a (patch)
treebb5ce61a942a92790d1550214e31c9b70a953070
parent577ee2ecf9e67baaef64eb8a232bc5645892c708 (diff)
downloadFreeBSD-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)
-rw-r--r--sys/net/if_ppp.c10
-rw-r--r--sys/net/ppp_tty.c8
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.
*/
OpenPOWER on IntegriCloud