3518 Commits

Author SHA1 Message Date
mpp
b772633f52 Fix various kernfs file system problems, which can result in
umountable file systems, hung processes, or system panics:

- Some operations could return without decrementing the vnode
  reference count.
- Some operations could leave the vnode locked.
- Generalize the /kern/rootdev & rrootdev files so that they
  are no longer special cased in kernfs_lookup().

Note: procfs, fdescfs, and most of the other miscfs/* file systems
also suffer from the same type of problems and I will work on
fixing them one at a time.
1995-07-31 08:52:02 +00:00
gibbs
1214917908 Long overdue, more complete, reset code. These changes implement a
BUS DEVICE RESET followed by BUS RESET failure recovery strategy including
the necesary renegotiation of sync/wide transfers after recovery completes.

Clean up debugging code to make it more finely selectable.  Reset code
debugging is enabled for now so I can get more feedback on how this
code behaves in real life.
1995-07-31 08:25:36 +00:00
gibbs
8c18a11f08 Pause the sequencer when message only requests complete. This allows the
kernel driver to know the exact state of the sequencer after a BUS DEVICE
RESET or ABORT completes so it can properly clean up the request.
1995-07-31 08:21:59 +00:00
bde
3029c788af Ignore trailing slashes in pathnames that "refer to a directory",
as is required to be POSIXLY_CORRECT and "right".  I interpret
"referring to a directory" as being a directory or becoming a
directory.  E.g., the trailing slashes in mkdir("/nonesuch/"),
rename("/tmp", /nonesuch/") and link("/tmp", "/root_can_like_dirs/")
are ignored because the target will become a directory if the
syscall succeeds.  A trailing slash on a symlink causes the symlink
to be followed (this is a bug if the symlink doesn't point to a
directory; fix later).
1995-07-31 00:35:58 +00:00
dg
5d75ddee49 Fix a bug in my disabled version of trap_pfault()...curpcb may be NULL even
when curproc isn't. This condition occurs at system startup and perhaps
at other times.
1995-07-30 17:49:24 +00:00
dg
5768022506 Rewrote shutdown_nice() to fix the init-not-yet-started panic(). 1995-07-30 17:10:36 +00:00
bde
f128be1e30 Don't swap the queue headers to implement concatenation of the
queues for TIOCSETA[W].  Swapping an even number of times broke
the queue resource limits.  This would have broken CRTSCTS flow
control if the clist slush list was used up.

Don'concatenate the queues for TIOCSETA[W] if one of the queues
has a resource limit of 0.  Concatenation would cause a panic if
one of the queues is nonempty and the other is limited to length
0.  This may have caused panics in PPPDISC.

Wake up readers after all transitions of ICANON.  When ICANON is
turned off it is quite likely that characters will become available
to be read.

Reduce indentation near these changes.
1995-07-30 13:52:56 +00:00
bde
817ff6d360 Split TS_ASLEEP (sleep on output [below low water])into TS_SO_OLOWAT (sleep
on output below low water) and TS_SO_OCOMPLETE (sleep on output complete).
Most of the support for this has already been committed.  Drivers should
call ttwwakeup() to handle wakeups whenever output is below low water
(and some output event causes this condition to be checked) or TS_BUSY is
cleared.

tty.c:
Fix the livelock in ttywait() properly by sleeping on output complete, not
on output below low water.

Use ttwwakeup() instead of separate select and output wakeups for all
wakeups of writers.

Add wakeups of writers for output flushes and carrier/clocal transitions.

Don't go to sleep in ttycheckoutq() if ttstart() reduces the queue to below
low water.

Use the timeout built into tsleep() in ttycheckoutq().

Optimize the select wakeup in ttwwakeup().  It seems reasonable to know
too much about the internals of tp->t_wsel now that the knowledge is
localised in tty.c.
1995-07-30 12:39:42 +00:00
dg
03d42e175c Add connection drop capability for persist timeouts.
Reviewed by:	Andras Olah
Obtained from:	4.4BSD-lite2 via W. Richard Stevens
1995-07-29 18:48:44 +00:00
rgrimes
5d491c53f6 Add new ``SNAPDATE=""'' for use in snapshot building.
Reviewed by:	jkh
1995-07-29 18:42:29 +00:00
dg
03e89dc270 Initialize "name" to quiet compiler. 1995-07-29 18:21:48 +00:00
bde
47d4076d8f Fix enough of the recently introduced brokenness for LINT to compile.
The U6850* changes in sound_config.h are probably wrong.

Recent commits lost:
- include paths.
- copyrights.
- cvs Ids.
- infamous whitespace changes.
- other cosmetic changes.
1995-07-29 14:20:54 +00:00
bde
14ed6d3cb4 Obtained from: partly from ancient patches by ache and me via 1.1.5
Remove nullmodem().

It may be useful to have a null modem routine, but nullmodem()
wasn't one.  nullmodem() was identical to ttymodem() except it
didn't implement MDMBUF (carrier) flow control, didn't do any
wakeups for off to on carrier transitions, and didn't flush the
i/o queues for on to off carrier transitions (flushing has the side
effect of waking up readers and writers) although it did generate
SIGHUPs.  The wakeups must normally be done even if nullmodem() is
null in case something is sleeping waiting for a carrier transition.
In any case, the wakeups should be harmless.  They may cause bogus
results for select(), but select() is already bogus for nonstandard
line disciplines.
1995-07-29 13:40:13 +00:00
paul
2ac9b4768c The lemac driver didn't pass transmitted packets to bpf. Now it does.
Reviewed by:
Submitted by:
Obtained from:
1995-07-29 13:00:17 +00:00
bde
38a74a7bc2 Eliminate sloppy common-style declarations. There should be none left for
the LINT configuation.
1995-07-29 11:44:31 +00:00
bde
795b455aac Removed the poorly named unused bogus common variable `total'. It was
obsoleted by the VM_METER sysctl a long time ago.
1995-07-29 10:47:05 +00:00
bde
76510cf9d2 Don't let IXOFF or ECHONL stop the setting of TS_CAN_BYPASS_L_RINT. IXOFF
is handled at a low level, and ECHONL only applies if ICANON is set,
although tty.c sometimes bogusly applies it when ICANON isn't set.
1995-07-29 08:33:13 +00:00
bde
fc1f58e6bb Always wake up writers after clearing TS_BUSY. This will soon be
essential when I fix excessive wakeups for output-below-low-water.
In cy.c and sio.c, wake up via the driver start routine to also
eliminate duplicated code involving the clearing of TS_TTSTOP.

Always (except in code to be replaced soon) call driver start
routine directly instead of going through ttstart().
1995-07-29 04:05:57 +00:00
jkh
cc9aba91ef This file got left out for some reason - merge it in with the rest of
the VOXWARE 3.05 stuff.
Submitted by:	Amancio Hasty and Jim Lowe
Obtained from: Hannu Savolainen
1995-07-28 23:37:32 +00:00
jkh
cd8b6dc515 Merge in changes for VOXWARE 3.05
Submitted by:	Amancio Hasty and Jim Lowe
1995-07-28 22:30:53 +00:00
jkh
27f97d82dc Support for voxware 3.05.
Submitted by:	Amancio Hasty and Jim Lowe
1995-07-28 22:25:52 +00:00
jkh
19112b8b1d Update the sound driver to VOXWARE 3.05 with one GUS patch from
Amancio.  There is some SoundSource support here that is primitive and
probably doesn't work, but I'll let the two submitters let me know
how my integration of that was since I don't have this card to test.
I've only tested this on my GUS MAX since it's all I have.

This all probably needs to be re-done anyway since we're widely variant
from the original VOXWARE source in the current layout.
Submitted by:	Amancio Hasty and Jim Lowe
Obtained from:  Hannu Savolainen
1995-07-28 21:40:49 +00:00
dg
ccee31df86 Fixed panic in fill_eproc() caused by inadequate checking for NULL pointers. 1995-07-28 18:04:47 +00:00
dg
ca0ba93fd5 Fixed bug where a bogus packet length could cause a panic if the length
was less than sizeof(struct ed_ring).
1995-07-28 12:15:16 +00:00
dg
a9ef3872d1 Fixed bug I introduced with the memory-size code rewrite that broke
floppy DMA buffers...use avail_start not "first". Removed duplicate
(and wrong) declaration of phys_avail[].

Submitted by:	Bruce Evans, but fixed differently by me.
1995-07-28 11:21:06 +00:00
se
0d80d6cf0d Add a few chip set IDs. 1995-07-27 22:14:25 +00:00
se
48d4f5cf6b Add config messages for the Intel 82378 chip.
Submitted by:   Danny J. Zerkel <dzerkel@feephi.phofarm.com>
1995-07-27 22:04:57 +00:00
se
9b9a2a321d Add a few vendor IDs. 1995-07-27 21:56:51 +00:00
se
648aadf62b Get rid of references to the linker supplied set length field.
Use the terminating NULL pointer as the end of list marker instead.
1995-07-27 21:38:45 +00:00
wollman
39a85a58ed Fix test for determining when RSVP is inactive in a router. (In this
case, multicast options are not passed to ip_mforward().)  The previous
version had a wrong test, thus causing RSVP mrouters to forward RSVP messages
in violation of the spec.
1995-07-26 18:05:16 +00:00
dg
94e5a8eb42 Corrected a comment.
Submitted by:	Sean Eric Fagan
1995-07-26 17:25:48 +00:00
bde
7dbfc21cec Change bogus extern inline' to static inline'.
This finishes making the kernel compile without -O.

The "optimized" asm version of the function being inlined
(translate_bytes()) uses slow instructions.  On a 486, assuming
everything is in the cache (unlikely), it is 21/15 times slower
than the dumb C version and 21/3 times slower than the best
possible bytewise method.
1995-07-25 23:03:22 +00:00
bde
3055a59ca7 Change memcmp() to bcmp(). memcmp() isn't declared or implemented
for the kernel, but gcc provides an inline version of it if the
kernel is compiled with -O.
1995-07-25 22:18:56 +00:00
bde
dc57933a47 Change memcmp() to bcmp(). memcmp() isn't declared or implemented
for the kernel, but gcc provides an inline version of it if the
kernel is compiled with -O.

The inline memcmp() is OK for small compares and is better than
the dumb kernel bcmp() in all cases, but it has been hiding the
library memcmp() which is 4 times faster for large compares.
1995-07-25 22:09:06 +00:00
bde
a4688d0202 Change extern inline' to static inline' so that several functions
don't go away when the kernel is compiled with -O.

The functions are backed up by extern versions in cd9660_util.c,
but these versions are disabled by `#ifdef __notanymore__'.  They
could have been enabled by using `#if defined(__notanymore__) ||
!defined(__OPTIMIZE__)' but then I would have had to check that
they still work.  The correct way to handle all this is to replace
`extern inline' by `EXTERN_INLINE' and define `EXTERN_INLINE' as
`extern inline' in most modules and as empty in one module.
1995-07-25 21:50:50 +00:00
bde
dd85198e40 Fix bogus constraint "i" that only worked with -O. The cases where it
didn't work are somewhat bogusly optimized away before the constraint
is checked.  We still expect constants passed to inline functions to
remain constant, but if the compiler ever decides that they aren't
constant then it will just generate slightly slower code instead of
an error.
1995-07-25 21:28:47 +00:00
bde
bd544640b4 Restore the the fix in revision 1.23 that was blown away by a later commit:
remove unused variable `u_char bt_scratch_buf[256];'.
1995-07-25 16:06:06 +00:00
bde
f21ab33b23 First step of fixing the remaining sloppy common-style declarations.
Declare `cheat' as static.  It was bogusly shared between the aha1742 and
ultrastor drivers.

Even static variables should have unique names so that they can be
debugged, but fixing them can wait.
1995-07-25 15:53:11 +00:00
dg
affc720ff1 Killed bogus casts in tsleep/wakeup calls. 1995-07-25 05:41:57 +00:00
dg
107327f072 Fixed broken offset use in vfs_unbusy_pages() which resulted in several
different types of panics/inconsistencies with NFS clients.
Cleared PG_WANTED where appropriate.
Added checks for buffer busy in allocbuf and biodone.

Reviewed by:	John Dyson
1995-07-25 05:03:06 +00:00
bde
f5284ed86d Change install' to ${INSTALL}' so that default install flags can be
specified in the top level Makefiles.
1995-07-25 00:37:58 +00:00
wollman
9fcb833ae6 Declare rsvp_input() to take the correct set of arguments and figure out
the receipt interface in the correct way.
1995-07-24 18:15:13 +00:00
dfr
d79a9f7537 Slightly better fix than previous revision.
Submitted by:	Rick Macklem <rick@snowhite.cis.uoguelph.ca>
1995-07-24 16:38:05 +00:00
wollman
f5dd123567 Completely turn off RSVP intercept when a socket being used for that purpose
is PRU_DETACHed.  This solves the problem that RSVP would not come up inm
raw mode if previously killed.
1995-07-24 16:33:51 +00:00
dfr
8395ec3635 Fix a problem which appeared to truncate a file to the nearest block boundary
when it is moved to an NFS filesystem from from another filesystem and /bin/mv
failed to set the file ownership during the move.

I believe that this bug is present in STABLE but I have not tested it.  The fix
would be the same in STABLE even though the code has changed quite considerably
in CURRENT.
1995-07-24 12:50:49 +00:00
dg
c49bb0ab42 Panic if no object in biodone. Slightly optimized allocbuf() again. 1995-07-24 03:16:41 +00:00
mpp
09298b57cf Use the same method to determine the time that the process
ended that fork() uses to determine the time that the process
started when calculating the elapsed time.  This prevents the
ac_etime field in the accounting record from getting set to -1
if the process exists for a VERY short period of time.
1995-07-23 23:02:20 +00:00
dg
3cd91f70c5 Added some additional diagnostic information output when panicing in
biodone().
1995-07-23 19:37:52 +00:00
dg
1bda950a58 Fixed two cases where some parans were missing, resulting in some bogus
logic. Slightly simplified allocbuf().
1995-07-23 18:49:48 +00:00
dg
3da1e3ecc4 Added $Id$. 1995-07-23 05:36:31 +00:00