From: Theodore Ts'o <tytso@athena.mit.edu> Subject: New patches to the serial driver in 0.99pl6..... Date: 28 Feb 1993 23:28:11 -0500
I've uploaded a new set of patches to the serial driver, this time versus
Linux 0.99pl6, on tsx-11.mit.edu, in /pub/ftp/ALPHA/serial/serpatches.
It has the following features:
* Closes a minor security hole on vhangup(), by preventing
vhungup processes from using ioctl() on the hung up
device. (The trick was that I had to allow ioctl()
access to processes that had been hung up as a result
of the hardware.)
* Break, frame error, and parity error handling was moved to
tty_io.c. This simplified the interrupt handler, and
fixed a bug where ISTRIP and PARMRK interacted badly.
* The INPCK is now honored; this allows for output parity
generation while disabling input parity checking.
This is *not* the same as IGNPAR, which causes
characters with parity or frame errors to be
discarded. If INPCK is disabled, parity errors are
just ignored.
* The interrupt routine has been restructured to recover from
losing a serial interrupt (because of a slow CPU or
because some other kernel routine had interrupts
turned off for too long.)
* Also added in the above restructring; support has been added
to support serial cards with no IRQ vector. This is
works at only very slow baud rates (2400 buad if you
have a 16550A, 300 baud if you don't) and takes up a
lot of CPU time, as it is continuously polling the
serial device. Still, it may be useful for someone who
has a fast machine, and wants to run a mouse off of a
spare RS-232 line.
This feature is not enabled automatically; you have to
configure the port yourself using the setserial command.
Just set the irq vector to zero, and set the uart to
16550 or 16550A. For example:
setserial /dev/ttys7 irq 0 uart 1550a
* The serial driver will now drop DTR for 0.5 seconds if the
callout device is closed and there is a getty waiting
on the dialin device.
If you have any bug reports or comments, send them to tytso@mit.edu.
Enjoy!
Ted Ts'o, 2/28/92
tytso@mit.edu