Subject: port-alpha/9275: PPP on Alpha nonfunctional with only one ppp configured in kernel.
To: None <gnats-bugs@gnats.netbsd.org>
From: None <kpn@neutralgood.org>
List: netbsd-bugs
Date: 01/22/2000 10:23:11
>Number:         9275
>Category:       port-alpha
>Synopsis:       PPP nonfunctional w/ pseudo-device ppp 1
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    port-alpha-maintainer (NetBSD/alpha Portmaster)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jan 22 10:20:59 2000
>Last-Modified:
>Originator:     Kevin P. Neal
>Organization:
-- 
Kevin P. Neal                                http://www.pobox.com/~kpn/

"You know, I think I can hear the machine screaming from here...  \
'help me! hellpp meeee!'"  - Heather Flanagan, 14:52:23 Wed Jun 10 1998
>Release:        1.4.1
>Environment:
System: NetBSD tome.neutralgood.org 1.4.1 NetBSD 1.4.1 (TOME) #37: Sat Jan 22 02:57:05 EST 2000 kpn@tome.neutralgood.org:/usr/src/sys/arch/alpha/compile/TOME alpha


>Description:
See kern/8816 for original report. 

If a kernel is configured on an Alpha with:

pseudo-device ppp 1

... then PPP is nonfunctional. Instead ppp logs an error about the line
being only 7 bits wide. 

Originally I confirmed that ppp would work if four devices were configured
in (the default in GENERIC and ALPHA). It looks like ppp will work if more
than one device is configured. 

>How-To-Repeat:

1) Compile a kernel on an Alpha with only one ppp pseudo-device. 

2) Try to use ppp.

3) Lose.

>Fix:

Change /usr/src/sys/arch/alpha/alpha/machdep.c like so:

*** machdep.c   Sat Jan 22 02:52:08 2000
--- machdep.c.old       Sat Jan 22 13:06:53 2000
***************
*** 1995,2005 ****
        DONETISR(NETISR_CCITT, ccittintr());
  #endif
  #ifdef NATM
        DONETISR(NETISR_NATM, natmintr());
  #endif
! #if NPPP > 0
        DONETISR(NETISR_PPP, pppintr());
  #endif
  
  #undef DONETISR
  }
--- 1995,2005 ----
        DONETISR(NETISR_CCITT, ccittintr());
  #endif
  #ifdef NATM
        DONETISR(NETISR_NATM, natmintr());
  #endif
! #if NPPP > 1
        DONETISR(NETISR_PPP, pppintr());
  #endif
  
  #undef DONETISR
  }

>Audit-Trail:
>Unformatted: