From pst@Shockwave.COM Tue Feb 11 02:55:00 1997 Received: from precipice.shockwave.com (ppp-206-170-5-55.rdcy01.pacbell.net [206.170.5.55]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id CAA14563 for ; Tue, 11 Feb 1997 02:54:59 -0800 (PST) Received: (from pst@localhost) by precipice.shockwave.com (8.8.4/8.7.3) id CAA00379; Tue, 11 Feb 1997 02:54:55 -0800 (PST) Message-Id: <199702111054.CAA00379@precipice.shockwave.com> Date: Tue, 11 Feb 1997 02:54:55 -0800 (PST) From: Paul Traina Reply-To: pst@Shockwave.COM To: FreeBSD-gnats-submit@freebsd.org Subject: if_ppp LKM does not allow ppp line discipline to be set X-Send-Pr-Version: 3.2 >Number: 2710 >Category: i386 >Synopsis: if_ppp LKM does not allow ppp line discipline to be set >Confidential: no >Severity: non-critical >Priority: medium >Responsible: pst >State: closed >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Feb 11 03:00:01 PST 1997 >Closed-Date: Tue Jun 3 21:15:10 PDT 1997 >Last-Modified: Tue Jun 3 21:15:33 PDT 1997 >Originator: Paul Traina >Release: FreeBSD 3.0-CURRENT i386 >Organization: Juniper Networks >Environment: -current as of last week >Description: I was playing about with the kernel mode PPP code, and had forgotten to compile kernel mode PPP support into the kernel I was running. Never fear, I had a if_ppp lkm handy for that kernel, so I modloaded it. pppd recognized that the kernel ppp code had been installed, but gave the following error: Feb 11 02:27:27 precipice pppd[862]: pppd 2.2.0 started by pst, uid 0 Feb 11 02:27:31 precipice pppd[862]: ioctl(TIOCSETD): Operation not supported by device A quick perusal of the kernel source shows pppasyncattach appearing as the argument to a PSEUDO_SET macro, but there are other attach routines in if_ppp.c, so my totally unreasearched GUESS is that one of the other PSEUDO_SET vectors is wiping out the first, or some such rot (sorry, I didn't look). I worked around the problem by hard-compiling kernel mode ppp back into that kernel, which suggested to me that it's an LKM initialization problem only. Feb 11 02:46:46 precipice pppd[250]: pppd 2.2.0 started by pst, uid 0 Feb 11 02:46:49 precipice pppd[250]: Connect: ppp0 <--> /dev/cuaa1 Feb 11 02:46:53 precipice pppd[250]: local IP address 206.170.5.55 Feb 11 02:46:53 precipice pppd[250]: remote IP address 206.171.128.66 >How-To-Repeat: Run kernel with no kernel ppp (pppd) support. modload /lkm/if_ppp.o pppd /dev/cuaa1 115200 ...other options... get "ioctl(TIOCSETD): Operation not supported by device" message >Fix: >Release-Note: >Audit-Trail: From: Garrett Wollman To: pst@Shockwave.COM Cc: FreeBSD-gnats-submit@freebsd.org Subject: i386/2710: if_ppp LKM does not allow ppp line discipline to be set Date: Tue, 11 Feb 1997 10:59:24 -0500 < said: > A quick perusal of the kernel source shows pppasyncattach appearing as > the argument to a PSEUDO_SET macro, but there are other attach routines > in if_ppp.c, so my totally unreasearched GUESS is that one of the other > PSEUDO_SET vectors is wiping out the first, or some such rot (sorry, I > didn't look). Aha. This is indeed erroneous. There can only be one entry point to an LKM, which means that there can only be one PSEUDO_SET per LKM (see /sys/sys/kernel.h under #ifdef PSEUDO_LKM). The ppp driver's attach routine needs to be written to perform ALL initialization at once. -GAWollman -- Garrett A. Wollman | O Siem / We are all family / O Siem / We're all the same wollman@lcs.mit.edu | O Siem / The fires of freedom Opinions not those of| Dance in the burning flame MIT, LCS, ANA, or NSA| - Susan Aglukark and Chad Irschick Responsible-Changed-From-To: freebsd-bugs->pst Responsible-Changed-By: pst Responsible-Changed-When: Fri Feb 14 10:07:41 PST 1997 Responsible-Changed-Why: I'll try to pull my fair share, since I know how to fix this. State-Changed-From-To: open->closed State-Changed-By: pst State-Changed-When: Tue Jun 3 21:15:10 PDT 1997 State-Changed-Why: Peter fixed. >Unformatted: