brian [Tue, 27 Oct 1998 22:53:18 +0000 (22:53 +0000)]
Stress that ``none'' must be specified on the `set callback'
line if callback is to be optional.
Requested by: Andrzej Tobola <san@koziolek.lublin.top.pl>
bde [Tue, 27 Oct 1998 11:47:08 +0000 (11:47 +0000)]
Oops, the redundant tests for major numbers weren't redundant here.
They checked for the magic major number for the "device" behind mfs
mount points. Use a more obvious check for this device.
Debugged by: Andrew Gallatin <gallatin@cs.duke.edu>
brian [Mon, 26 Oct 1998 19:07:39 +0000 (19:07 +0000)]
Add ``enable proxyall'' support. This adds proxy ARP entries
for every machine on every class C or smaller subnet that we
route to.
Add ``set {send,recv}pipe'' for controlling our socket buffer
sizes.
Mention the IP number with the problem in a few error messages.
All submitted by: Craig Leres <leres@ee.lbl.gov>
Modified slightly by: me
to DTRT, despite the SIOCAIFADDR for each new alias returning
-1 & EEXIST while adding the alias anyway. In real life, once
we have the second alias with the same destination, nothing will
route any more ! Also, because I was ignoring EEXIST, the
dynamic IP assignment code was assigning duplicate addresses
('cos it was being lied to by iface_inAdd()).
This works - stuff bound to 10.1 & 10.3 will be considered alive
by the kernel, and when they route back to the tun device, the
packets get aliased to 10.2 and go out to 10.100 (as with the
original plan).
We still see the EEXIST in SIOCAIFADDR, but ignore it when our
destination is 255.255.255.255, assuming that the alias *was*
actually added.
Additionally, ``iface add'' may now optionally be given only
the interface address. The mask & destination default to
255.255.255.255.
bde [Mon, 26 Oct 1998 08:07:00 +0000 (08:07 +0000)]
Updated the major number check in vfs_object_create(). It's not
clear if the check is necessary, but vfs_object_create() is called
for all vnodes and it was silly to create objects for VBLK vnodes
that don't even have a driver.
fenner [Mon, 26 Oct 1998 02:39:21 +0000 (02:39 +0000)]
If we know the content-length, only read that number of bytes from
the server. There exists a broken server which sends a few extra
garbage bytes in response to HTTP/1.1 requests.
bde [Sun, 25 Oct 1998 19:26:18 +0000 (19:26 +0000)]
Don't follow null bdevsw pointers. The `major(dev) < nblkdev' test rotted
when bdevsw[] became sparse. We still depend on magic to avoid having to
check that (v_rdev) device numbers in vnodes are not NODEV.
bde [Sun, 25 Oct 1998 19:24:04 +0000 (19:24 +0000)]
Don't follow null bdevsw pointers. The `major(dev) < nblkdev' test rotted
when bdevsw[] became sparse. We still depend on magic to avoid having to
check that (v_rdev) device numbers in vnodes are not NODEV.
Removed a redundant `major(dev) < nblkdev' test instead of updating it.
Don't follow a garbage bdevsw pointer for attempts to swap on empty
regular files. This case currently can't happen. Swapping on regular
files is ifdefed out in swapon() and isn't attempted for empty files
in nfs_mountroot().
bde [Sun, 25 Oct 1998 19:02:48 +0000 (19:02 +0000)]
Don't follow null bdevsw pointers. The `major(dev) < nblkdev' test rotted
when bdevsw[] became sparse. We still depend on magic to avoid having to
check that (v_rdev) device numbers in vnodes are not NODEV.
Removed redundant `major(dev) < nblkdev' tests instead of updating them.
bde [Sun, 25 Oct 1998 16:11:49 +0000 (16:11 +0000)]
Fixed device number checking in bdevvp():
- dev != NODEV was checked for, but 0 was returned on failure. This was
fixed in Lite2 (except the return code was still slightly wrong (ENODEV
instead of ENXIO)) but the changes were not merged. This case probably
doesn't actually occur under FreeBSD.
- major(dev) was not checked to have a valid non-NULL bdevsw entry. This
caused panics when the driver for the root device didn't exist.
Fixed minor misformattings in bdevvp(). Rev.1.14 consisted mainly of
gratuitous reformattings that seem to have caused many Lite2 merge
errors.
msmith [Sat, 24 Oct 1998 23:12:09 +0000 (23:12 +0000)]
Work around some variables having N_UNDF types but valid values; this
makes vmstat work on ELF kernels again.
Submitted by: Daniel Rock <rock@cs.uni-sb.de>
brian [Sat, 24 Oct 1998 01:08:45 +0000 (01:08 +0000)]
Loosen our restrictions on setting enddisc, mrru,
shortseq, authname and authkey.
o Auth{name,key} may additionally be set in PHASE_ESTABLISH.
o The others may be set in PHASE_ESTABLISH as long as no links
have yet reached DATALINK_LCP.
phk [Fri, 23 Oct 1998 10:44:52 +0000 (10:44 +0000)]
Change the way we simulate stable storage for timecounters.
If you have problems with the "calcru" messages and processes being
killed for excessive cpu time, try to increase the NTIMECOUNTER
#define and report your findings.
dg [Fri, 23 Oct 1998 05:43:13 +0000 (05:43 +0000)]
Oops, revert part of last fix. vm_pager_dealloc() can't be called until
after the pages are removed from the object...so fix the problem by
not printing the diagnostic for wired fictitious pages (which is normal).
dg [Fri, 23 Oct 1998 05:25:49 +0000 (05:25 +0000)]
Fixed two bugs in recent commit: in vm_object_terminate, vm_pager_dealloc
needs to be called prior to freeing remaining pages in the object so that
the device pager has an opportunity to grab its "fake" pages. Also, in
the case of wired pages, the page must be made busy prior to calling
vm_page_remove. This is a difference from 2.2.x that I overlooked when
I brought these changes forward.
ken [Thu, 22 Oct 1998 22:16:56 +0000 (22:16 +0000)]
Fix a problem with the way we handled device invalidation when attaching
to a device failed.
In theory, the same steps that happen when we get an AC_LOST_DEVICE async
notification should have been taken when a driver fails to attach. In
practice, that wasn't the case.
This only affected the da, cd and ch drivers, but the fix affects all
peripheral drivers.
There were several possible problems:
- In the da driver, we didn't remove the peripheral's softc from the da
driver's linked list of softcs. Once the peripheral and softc got
removed, we'd get a kernel panic the next time the timeout routine
called dasendorderedtag().
- In the da, cd and possibly ch drivers, we didn't remove the
peripheral's devstat structure from the devstat queue. Once the
peripheral and softc were removed, this could cause a panic if anyone
tried to access device statistics. (one component of the linked list
wouldn't exist anymore)
- In the cd driver, we didn't take the peripheral off the changer run
queue if it was scheduled to run. In practice, it's highly unlikely,
and maybe impossible that the peripheral would have been on the
changer run queue at that stage of the probe process.
The fix is:
- Add a new peripheral callback function (the "oninvalidate" function)
that is called the first time cam_periph_invalidate() is called for a
peripheral.
- Create new foooninvalidate() routines for each peripheral driver. This
routine is always called at splsoftcam(), and contains all the stuff
that used to be in the AC_LOST_DEVICE case of the async callback
handler.
- Move the devstat cleanup call to the destructor/cleanup routines, since
some of the drivers do I/O in their close routines.
- Make sure that when we're flushing the buffer queue, we traverse it at
splbio().
- Add a check for the invalid flag in the pt driver's open routine.
msmith [Thu, 22 Oct 1998 21:42:20 +0000 (21:42 +0000)]
Honour the spirit rather than the implementation of the previous changes;
if we are invoked with -m, use chmod() on the final directory component
in order to ensure the mode is correctly set.
msmith [Thu, 22 Oct 1998 20:22:07 +0000 (20:22 +0000)]
Pop the return address off the stack before making a V86_CALLF call;
this allows us to implement what look like C function calls from user
space "directly" to v86 mode code. (Used for calling the PnP BIOS)
bde [Thu, 22 Oct 1998 16:10:29 +0000 (16:10 +0000)]
Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.
Attempted to update the generated interrupt handler attachment to the
current "temporary" method. Not tested. To test it, someone would first
have to fix the bitrot in the ioctl command arg type.
wpaul [Thu, 22 Oct 1998 15:52:25 +0000 (15:52 +0000)]
Close PR #8384:
Revert the transmission packet queueing strategy changes. Clearly I missed
something while debugging this, although I never encountered any problems
on my test machines.
Also make one other minor change: jack up the TX reclaim threshold for
3c90xB adapters in order to stave off 'transmission error: 82' errors.
Document the existence of the tx reclaim register (for inspecting the
current reclaim threshold) in register window 5 (if_xlreg.h).
bde [Thu, 22 Oct 1998 13:49:51 +0000 (13:49 +0000)]
Quote port names that have a digit in them. IO_TIMER1 was lexed as
{ port_name = "IO_TIMER", port_number = 1 } and only worked because
it was reassembled to "IO_TIMER1". Trailing digits always work, but
this is too magic to depend on.
Don't quote port names that don't have a digit in them.