Commit Graph

2713 Commits

Author SHA1 Message Date
wollman
2a30dae2a5 This should be splimp() rather than splnet() since ifaddrs might go away
as a result of link-layer processing.
1995-03-20 18:31:51 +00:00
wollman
fd40ec89df Fix race conditions involved in setting IP multicast options. This should
fix Dennis Fortin's problem for good, if I've got it figured out right.

(The problem was that a `struct ifaddr' could get deleted out from under
the current requester, thus leaving him with an invalid interface pointer
and causing even more bogus accesses.)
1995-03-20 18:11:31 +00:00
dg
5d88c07ee1 Don't gain/lose an object reference in vnode_pager_setsize(). It will
cause vnode locking problems in vm_object_terminate().
Implement proper vnode locking in vm_object_terminate().
1995-03-20 10:20:42 +00:00
dg
b9e7140c7c Don't gain/lose a reference to the object when yanking its pages in
vinvalbuf()...it will cause vnode locking problems in vm_object_terminate,
and isn't necessary anyway.
1995-03-20 10:19:09 +00:00
dg
ba7cc6e6a9 Fixed "objde1" hang. It was caused by a "&" where an "&&" belonged in the
expression that decides if a wakeup should occur.
1995-03-20 10:14:55 +00:00
dg
cfecdfd362 Don't attempt to sync pages in the V_SAVE case of vinvalbuf; doing so can
lead to a deadlock. Just let the VM system deal with it.
1995-03-20 02:08:24 +00:00
dg
27e7e16904 Removed an unnecessary call to vinvalbuf after the page clean. 1995-03-20 02:06:09 +00:00
dg
bc768fa088 Do proper vnode locking when doing paging I/O. Removed the asynchronous
paging capability to facilitate this (we saw little or no measureable
improvement with this anyway).

Submitted by:	John Dyson
1995-03-19 23:46:25 +00:00
dg
23d0a8bc3c Fixed bug introduced in the previous commit - the lock must be held until
after the call to exec_check_permissions().
1995-03-19 23:27:57 +00:00
dg
d337091388 Lose the lock on the vnode. Changes to implement proper locking in the
vnode pager now require this.

Submitted by:	John Dyson
1995-03-19 23:08:12 +00:00
dg
9cd78521d8 Removed redundant newlines that were in some panic strings. 1995-03-19 14:29:26 +00:00
dg
f572de6775 Backed out change to panic call: As Chris just pointed out to me, panic()
does indeed work like printf(). gdb gets the string untranslated for some
reason.
1995-03-19 13:44:03 +00:00
dg
568f2efc88 Fix from Doug Rabson: Don't try to release a pbuf we didn't get.
Minor style change by me.
1995-03-19 13:28:54 +00:00
dg
390bfe9b40 Incorporated 4.4-lite vnode_pager_uncache() and vnode_pager_umount()
routines (and merged local changes). The changed vnode_pager_uncache
gets rids of the bogosity that you can call the routine without
having the vnode locked. The changed vnode_pager_umount properly locks
the vnode before calling vnode_pager_uncache.
1995-03-19 12:36:10 +00:00
dg
b556b80a98 Removed bogus, commented out, call to vnode_pager_uncache(). 1995-03-19 12:11:13 +00:00
dg
fa7269fdef Removed unnecessary call to vnode_pager_uncache(). We automatically clear
the VTEXT flag after all mappers have finished with the object.
1995-03-19 12:08:03 +00:00
dg
a62ef20881 Moved call to vnode_pager_uncache in rename() to before the VOP_RENAME.
It was previously after the VOP_RENAME and the reference and lock on
the vnode had already been lost, allowing interesting internel
inconsistencies. This is one of the two reasons why freefall was crashing
every hour or two (the other being nullfs bugs).
Don't call vnode_pager_uncache in revoke(). revoke() is only allowed on
VCHR and VBLK vnodes.
1995-03-19 11:16:58 +00:00
dg
ed63bd3315 Fix a call to panic: panic doesn't do token substitution on the panic
string.
1995-03-19 09:47:32 +00:00
dg
8809f325f3 Patch from Kirk McKusick to fix a bug introduced in the Poul's vfs_cache
rewrite.
1995-03-19 09:33:51 +00:00
phk
9f5fdc8c96 Make newvers.sh usable from other places... 1995-03-19 07:25:41 +00:00
phk
dff6bf2b1c And all serial chars with 0x7f to discard parity bits. 1995-03-19 06:10:32 +00:00
swallace
9bbe457704 Add back SNDCTL_DSP_SETBLKSIZE ioctl code that got zapped.
Submitted by:	Jim Lowe <james@miller.cs.uwm.edu>
1995-03-18 20:01:10 +00:00
dg
e38e0cc286 Don't sync the inode date changes of character special devices
during the FS sync. The system would appear to hang momentarily
if there was a large backlog of I/O. This is because the vnode
remains locked during the output - preventing normal character
I/O. The problem was exacerbated by the FFS contiguous block
allocation fixes and a semi-broken disksort(). The inode/date
will still be synced during a normal FS dismount and whenever
the inode is changed for other reasons.
1995-03-18 18:03:29 +00:00
rgrimes
157d75c19a Add Intel EtherExpress16 (ix0) driver.
Reviewed by:
Submitted by:
Obtained from:
1995-03-18 08:12:48 +00:00
dg
6037557863 Woops, add back that #define...it's used later in the file. 1995-03-18 07:06:51 +00:00
dg
84d7516af3 Fixed comments and removed b_cylinder #define. 1995-03-18 06:38:04 +00:00
dg
c07d989087 Integrated change from 1.1.5: Fixed broken disksort to sort by pblkno
rather than by cylinder.
1995-03-18 06:32:48 +00:00
dg
cc818c5048 In vm_page_alloc_contig: Removed a redundant semicolon and used 'm' instead
of &pga[i] in one place.
1995-03-18 01:04:36 +00:00
gibbs
107fa9cbb1 Increase the DELAY used in ahc_poll. This is only used during intial
probe of the device and shouldn't affect normal operation.  It seems that
some version of the aic7870 are extreamly slow in clearing their interrupt
register so the added delay is required to ensure we don't poll a stale
interrupt value.

Clean up debugging printfs and stuff superflous output into #ifdef AHC_DEBUG.

Ensure that sdtrpending and wdtrpending are cleared in all cases after
we recieve an SDTR or WDTR message.

With this commit, the 294x should work or at least be much closer to
working properly.
1995-03-17 23:58:27 +00:00
gibbs
0be8d9c7f6 Make the aic7xxx assembler take quoted strings as a single token.
Make $Id the version variable which required the quoted string "feature".
1995-03-17 23:54:17 +00:00
wollman
d06f6b4e4f Beginnings of support for loadable pseudo-devices. bsd.kmod.mk support
and Makefiles for the more interesting ones to come on Monday.
1995-03-17 22:02:18 +00:00
swallace
5dc0a50ecf Change probe output to gus0 instead of snd4. 1995-03-17 21:27:39 +00:00
dg
ca2e4bfc64 Changed some (incorrect) nfsrv_vput()'s back into regular vput()'s. This
fixes the last of the known NQNFS problems (until I find more, that is :-)).
1995-03-17 07:45:19 +00:00
phk
ab48163ad2 <libkern/libkern.h> has moved to <sys/libkern.h> (repository copy).
Since /usr/include/libkern doesn't and shouldn't exist, this is the
least evil way to handle this.
1995-03-17 06:15:40 +00:00
phk
ee3d6a59f6 Remove a spurious printf. 1995-03-17 04:39:41 +00:00
dg
b553215b12 Added a new field to the pci_device struct called pd_shutdown to specify
a device specific shutdown routine for devconf. Assign the value of this
to the kern_devconf struct. Implement a device shutdown routine for if_de
that disables the device. This will stop the device from corrupting memory
after a reboot.
1995-03-17 04:27:21 +00:00
dg
865b8325a4 Call dev_shutdownall() just after unmounting filesystems. 1995-03-17 04:19:19 +00:00
dg
14517b375e Changed names of goaway routines into shutdown routines. 1995-03-17 04:18:07 +00:00
wollman
8e37e9f479 Add four more filesystem flags:
VFCF_NETWORK (this FS goes over the net)
	VFCF_READONLY (read-write mounts do not make any sense)
	VFCF_SYNTHETIC (data in this FS is not real)
	VFCF_LOOPBACK (this FS aliases something else)

cd9660 is readonly; nullfs, umapfs, and union are loopback; NFS is netowkr;
procfs, kernfs, and fdesc are synthetic.
1995-03-16 20:23:48 +00:00
wollman
27511388bb Statically-compiled filesystems now use a VFCF_STATIC flag rather than
abusing the refcount.
1995-03-16 18:31:00 +00:00
wollman
a428f47a5d Reject source routes unless configured on by administrator. 1995-03-16 18:22:28 +00:00
bde
289f11acb4 Add and move declarations to fix all of the warnings from `gcc -Wimplicit'
(except in netccitt, netiso and netns) and most of the warnings from
`gcc -Wnested-externs'.  Fix all the bugs found.  There were no serious
ones.
1995-03-16 18:17:34 +00:00
se
4c4945abee Prepare for shared interrupts (required by the new PCI code that adds
support for PCI PCI bridges, e.g. found on 4ch. Ethernet cards).

Submitted by:   Wolfgang Stanglmeier <wolf@kintaro.cologne.de>
1995-03-16 17:41:20 +00:00
wollman
8882d76eda Add inet_ntoa() and replace ARP's private routine with same. 1995-03-16 17:32:27 +00:00
se
9c613cfeae Prepare for shared interrupts (required by the new PCI code that adds
support for PCI PCI bridges, e.g. found on 4ch. Ethernet cards).

Submitted by:	Wolfgang Stanglmeier <wolf@kintaro.cologne.de>
1995-03-16 17:31:19 +00:00
bde
0a1bcbbaf5 Remove isa/prof_machdep.c. It doesn't exist yet. 1995-03-16 17:18:49 +00:00
wollman
b6beceae27 This set of patches enables IP multicasting to work under FreeBSD. I am
submitting them as context diffs for the following files:

sys/netinet/ip_mroute.c
sys/netinet/ip_var.h
sys/netinet/raw_ip.c
usr.sbin/mrouted/igmp.c
usr.sbin/mrouted/prune.c

The routine rip_ip_input in raw_ip.c is suggested by Mark Tinguely
(tinguely@plains.nodak.edu). I have been running mrouted with these patches
for over a week and nothing has seemed seriously wrong. It is being run in
two places on our network as a tunnel on one and a subnet querier on the
other. The only problem I have run into is that mrouted on the tunnel must
start up last or the pruning isn't done correctly and multicast packets
flood your subnets.

Submitted by:	Soochon Radee <slr@mitre.org>
1995-03-16 16:25:55 +00:00
se
d5b7bdded1 Make ncr.c compile again (PRINT_ADDR() had been patched
into the middle of a printf() by a buggy diff ...).

Submitted by:	rgrimes
1995-03-16 13:02:40 +00:00
dufault
28a0824062 Plug lurking bug when a device returns ASC:ASCQ 0xff:0xff 1995-03-15 22:42:25 +00:00
se
0a35f1faf5 Conditionalise debug message.
Submitted by:	Peter Dufault <dufault@hda.com>
1995-03-15 18:15:32 +00:00
bde
42f54543e6 Fix support for extended partitions (forgot to release the buffer). 1995-03-15 16:25:08 +00:00
dufault
45a99b7dba Change it so it doesn't say "probe0" for SCSI probe "device". 1995-03-15 14:44:01 +00:00
dufault
0c96fcbafe Document scsi options 1995-03-15 14:27:01 +00:00
dufault
70dcd74c76 Add scsi/scsi_sense.c 1995-03-15 14:23:18 +00:00
dufault
a2ba9cd1b8 1. Add text for ASC/ASCQ
2. Clean up probe messages.  This is how I propose it looks for 2.1 so
if you don't like it you have my e-mail address.
1995-03-15 14:22:12 +00:00
dg
c20bdce1e0 Special cased the handling of mb_map in the M_WAITOK case. kmem_malloc()
now returns NULL and sets a global 'mb_map_full' when the map is full.
m_clalloc() has further been taught to expect this and do the right thing.
This should fix the "mb_map full" panics that several people have reported.
1995-03-15 07:52:06 +00:00
dg
2c25def852 Added $Id$ 1995-03-14 22:15:36 +00:00
dg
903067464b pcb allocations are not always done on behalf of a process; it is not
okay to wait.
1995-03-14 21:50:55 +00:00
dg
68d73d5130 Added support for generic FDDI and the DEC DEFEA and DEFPA FDDI adapters.
Submitted by:	Matt Thomas
1995-03-14 09:16:07 +00:00
dg
070760fddb Removed "-D" option and made symbols load all the time. They will be
discarded if the kernel isn't built with DDB.
1995-03-14 08:21:53 +00:00
swallace
d3b9df0ced Change device entry examples to reflect the following:
Remove PAS-only entry for OPL as ache pointed out.
Update OPL comment to show OPL-2 or OPL-3 support as it is auto-detected.
1995-03-13 18:49:37 +00:00
swallace
d3db38add4 Remove old snd file configuration list and add new file list
for the snd controller and the different sound devices.

Update LINT to include all sound device drivers using new format.

Reviewed by:	wollman
1995-03-12 23:43:15 +00:00
swallace
918019dbbd Reorganize how sound devices are configured. Use a snd controller
with individual devices for each type of sound card:
  opl, sb, sbxvi, sbmidi, pas, mpu, gus, gusxvi, gusmax, mss, uart

EXCLUDE_* options are no longer required to be included in the config file.
They are automatically determined by local.h depending on the devices
included.

Move #includes in local.h to os.h so files are included in the proper
order to avoid warnings.

soundcard.c now has additional code to reflect the device driver
routines needed.

Define new EXCLUDE_SB16MIDI for use in sb16_midi.c and dev_table.h.

#ifndef EXCLUDE_SEQUENCER or EXCLUDE_AUDIO have been added to
soundcard.c and sound_switch.c where appropriate.

Probe outputs changed to reflect new device names.

Readme.freebsd not needed.  Update sound.doc with new config instructions.

Reviewed by:	wollman
1995-03-12 23:34:12 +00:00
joerg
d96851c187 Finally get rid of this bothering ``biodone: buffer already done''
warning.  The buffer needs only to be `biodone()' again if the format
operation timed out; otherwise fdstate() did already do the job.
1995-03-12 22:40:56 +00:00
ugen
b132c690f3 Allocate memory as M_IPFW,now we can watch firewall memory usage
in vmstat..
1995-03-12 13:28:13 +00:00
ugen
3fefa68386 Save all changed devices so thet dset would be able to retrive
data and device driver could change it as it wishes to..
1995-03-12 13:25:51 +00:00
ugen
e05c371e44 Add M_DEVS for list of saved isa_device's
and M_IPFW for firewall chans memory on the same opportunity,
theese types of memory are unique enough to have own identifiers and
besides vmstat looks much more useful and right for those now
1995-03-12 13:25:01 +00:00
ugen
016906e77e Add id_next field to struct isa_device,this does not
breaks anything and needed only in userconfig to make dset work
for now..
1995-03-12 13:23:10 +00:00
bde
257edadbd4 Move a kernel inline function inside `#ifdef KERNEL' so that including
<vm/vm.h> doesn't cause warnings about nonexistent functions called
by the inline function.  Clean up the formatting of the function.
1995-03-12 12:42:00 +00:00
bde
d26caae19b Fix config-time syntax errors in sound options. 1995-03-12 12:18:43 +00:00
amurai
5944836548 Adding tunnel pseudo-device for Network Installation with User process PPP.
Reviewed by:	amruai@spec.co.jp
1995-03-12 12:10:35 +00:00
bde
bc56901dc4 Finish the previous change. The device name got lost in diskerr(). 1995-03-12 08:17:30 +00:00
dg
266265f981 Fixed obsolete comment. 1995-03-12 08:11:34 +00:00
dg
60d9c2c849 Deleted vm_object_setpager(). 1995-03-12 08:05:46 +00:00
dg
a013c3ca28 Deleted vm_object_setpager(). 1995-03-12 07:58:29 +00:00
dg
edbe52ceb3 Explicitly set object->flags = OBJ_CANPERSIST. 1995-03-12 07:56:06 +00:00
phk
6d3911a952 Update a couple of counters. 1995-03-12 02:01:20 +00:00
dg
12b812885a Added a comment. 1995-03-11 22:29:07 +00:00
dg
2ff0acd8ef Added some additional DIAGNOSTIC code that makes sure that freed
memory addresses and types are with the valid range. Increased
MAX_COPY to 256 (used to verify no freed memory use with DIAGNOSTIC).
1995-03-11 22:28:16 +00:00
dg
d0a0d19a5f Fix completely bogus comment. 1995-03-11 22:25:20 +00:00
dg
ff36772fd1 Clear OBJ_INTERNAL flag for device pager objects and named anonymous
objects.
1995-03-11 22:25:02 +00:00
dg
b556619d08 Removed gratuitous and *extremely* evil setting of OBJ_INTERNAL. This
caused a cascade of problems including kernel memory corruption, file
corruption, system hangs, and panics.
1995-03-11 22:23:14 +00:00
phk
2269686ee1 A substantial change to the way this works. Not the "TEST_LABELING" is
a option you can turn on and of on the fly, as is debugging.
1995-03-11 09:32:45 +00:00
phk
a6008cc672 Moved bb stuff to support.s per Bruces suggestion. 1995-03-11 03:49:50 +00:00
dg
c4a2f8db8d Increased default minfree to 8%. 1995-03-10 22:18:16 +00:00
dg
251a107ca6 The threshold for switching from time-space and space-time is too small
when minfree is 5%...so make it stay at space in this case.

Submitted by:	Kirk McKusick
1995-03-10 22:11:50 +00:00
dg
b017660c3e Patch to fix quota panic from Mike Karels:
allow Q_SYNC regardless of "target" uid, we allow it with -1;
fix bug that caused all ops to refer to user quotas, not group.

Submitted by:	Mike Karels
1995-03-10 22:06:39 +00:00
dg
4e060d1941 Reorganized an if() expression for efficiency. 1995-03-10 21:18:24 +00:00
dg
1b881d5453 Whoops, back out that last change - I misread what Poul had done there. 1995-03-10 20:29:51 +00:00
dg
0edff5994e Don't thrash the name cache while trying to fill up the object cache.
(Make a new cache entry until desiredvnodes is reached).
1995-03-10 20:26:29 +00:00
dg
589ce9b43d Removed some #include's of unnecessary include files. 1995-03-10 08:44:20 +00:00
phk
2c992ab302 Add a dummy ___bb_init_func for BB profiling of the kernel.
To use this: recompile src/gnu/usr.bin/cc, compile your kernel.  The
files you want to profile should be compiled with '-a -g'.  "strip -x"
the kernel and run.  You don't need to profile all files in the kernel.
My next commit is the program to extract the data from the running kernel.
1995-03-10 08:41:26 +00:00
dg
d918180488 kmem_alloc() returns zero-filled memory; it isn't necessary to bzero()
it.
1995-03-10 08:13:07 +00:00
dg
15bcb91065 Removed unnecessary routines vm_get_pmap() and vm_put_pmap().
kmem_alloc() returns zero filled memory, so no need to explicitly
bzero() it.
1995-03-10 08:05:00 +00:00
phk
73699a95c4 Clean up and improve the namecache.
1. We always keep one 16th of the vnodes on the freelist, so that the
namecache doesn't get trashed.  It used to be that it wasn't a problem, but
the only vnodes getting released these days are directories and things which
Clean up and improve the namecache.

1. We always keep one 16th of the vnodes on the freelist, so that the
namecache doesn't get trashed.  It used to be that it wasn't a problem, but
the only vnodes getting released these days are directories and things which
gets forced out of the VM/cache.  The latter is not numerous enough to keep
the pool of vnodes needed for the namecache sufficiently big.

2. Purge invalid entries in the namecache as soon as we notice them.  This
avoids a stale entry pushing out a valid entry on the LRU list.

3. Speed up the lookup in the namecache by avoid a special case branch.

4. Make the cache purge routines do the thing they're supposed to, and in
a decently efficient manner.

5. Make the size of the namecache follow the number of vnodes, so that we
can always point to all the vnodes we have in core.

6. Readability has gone way up.

7. Added a "options NCH_STATISTICS" feature that will gather more
detailed statistics on the performance of the namecache.

Reviewed by:    davidg
1995-03-09 20:27:21 +00:00
phk
5ac4500e79 Clean up and improve the namecache.
1. We always keep one 16th of the vnodes on the freelist, so that the
namecache doesn't get trashed.  It used to be that it wasn't a problem, but
the only vnodes getting released these days are directories and things which
Clean up and improve the namecache.

1. We always keep one 16th of the vnodes on the freelist, so that the
namecache doesn't get trashed.  It used to be that it wasn't a problem, but
the only vnodes getting released these days are directories and things which
gets forced out of the VM/cache.  The latter is not numerous enough to keep
the pool of vnodes needed for the namecache sufficiently big.

2. Purge invalid entries in the namecache as soon as we notice them.  This
avoids a stale entry pushing out a valid entry on the LRU list.

3. Speed up the lookup in the namecache by avoid a special case branch.

4. Make the cache purge routines do the thing they're supposed to, and in
a decently efficient manner.

5. Make the size of the namecache follow the number of vnodes, so that we
can always point to all the vnodes we have in core.

6. Readability has gone way up.

7. Added a "options NCH_STATISTICS" feature that will gather more
detailed statistics on the performance of the namecache.

Reviewed by:    davidg

(cvs is dumping core on me :-(  )
1995-03-09 20:27:04 +00:00
phk
a64ffc7c28 Clean up and improve the namecache.
1. We always keep one 16th of the vnodes on the freelist, so that the
namecache doesn't get trashed.  It used to be that it wasn't a problem, but
the only vnodes getting released these days are directories and things which
gets forced out of the VM/cache.  The latter is not numerous enough to keep
the pool of vnodes needed for the namecache sufficiently big.

2. Purge invalid entries in the namecache as soon as we notice them.  This
avoids a stale entry pushing out a valid entry on the LRU list.

3. Speed up the lookup in the namecache by avoid a special case branch.

4. Make the cache purge routines do the thing they're supposed to, and in
a decently efficient manner.

5. Make the size of the namecache follow the number of vnodes, so that we
can always point to all the vnodes we have in core.

6. Readability has gone way up.

7. Added a "options NCH_STATISTICS" feature that will gather more
detailed statistics on the performance of the namecache.

Reviewed by:	davidg
1995-03-09 20:23:45 +00:00
ugen
e2865708e0 Remove redundant IORW definition..
because of this definition never ioctl's for sound
devices worked..For me this resulted also in  loss of
snd1 device...
1995-03-08 18:43:49 +00:00
phk
25a158ff39 Another little optimization to the nameicache.
If an entry is stale, ditch it.
1995-03-08 01:40:44 +00:00
phk
f4953438ea Improve the quality of the hash used in the namei-cache. 1995-03-08 01:08:03 +00:00