[comp.bugs.4bsd] 4.3BSD DEQUNA Driver Panics MicroVax

robert@hslrswi.UUCP (03/09/87)

Index:	 /sys/vaxif/if_qe.c 4.3BSD

Description:
	The 4.3 BSD diver for the DEQUNA contains a bug that causes the
	MicroVax to panic with a "Protection fault" as soon as one
	does an "ifconfig qe0 <flags> <address>".

	The problem here is that, inside qerestart(), the driver requires
	the `addr' field of the `qe_softc' structure to be set before an
	ioctl( ..., SIOCSIFFLAGS, ... ) is done. This field is set inside
	qeinit() when an ioctl( ..., SIOCSIFADDR, ... ) is called.
	Unfortunately, ifconfig calls the ioctl's in the opposite order -
	that is, SIOCSIFFLAGS before SIOCSIFADDR - regardless of the order
	of the command flags.

Repeat-By:
	Bring up 4.3BSD on a MicroVax. Type something like:

	ifconfig qe0 myaddress broadcast ... trailers up

	Watch as your MicroVax immediately blows up with a
	"Panic: protection fault"

Fix:
	I haven't got a fix for this but here is a ...

Work-Around:
	Split the ifconfig command into two parts. Thus:

	ifconfig qe0 myaddress
	ifconfig qe0 broadcast ... trailers up


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    J. Robert Ward,						   ___________
    Hasler AG, Belpstrasse 23, CH-3000 Berne 14, Switzerland	   |    _    |
								   |  _| |_  |
Tel.:	    +41 31 632319					   | |_   _| |
X.400:	    robert@hslrswi.hasler				   |   |_|   |
Bitnet:	    robert%hslrswi.UUCP@cernvax.BITNET	   		   |_________|
Uucp:	    ... {seismo,ukc, ... }!mcvax!cernvax!hslrswi!robert
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~