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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~