bde [Wed, 2 May 2001 13:06:58 +0000 (13:06 +0000)]
Fixed panics in npx exception handling. When using IRQ13 exception
handling, SMPng always switches the npx context away from curproc
before calling the handler, so the handler always paniced. When using
exception 16 exception handling, SMPng sometimes switches the npx
context away from curproc before calling the handler, so the handler
sometimes paniced. Also, we didn't lock the context while using it,
so we sometimes didn't detect the switch and then paniced in a less
controlled way.
Just lock the context while using it, and return without doing anything
except clearing the busy latch if the context is not for curproc. This
fixes the exception 16 case and makes the IRQ13 case harmless. In both
cases, the instruction that caused the exception is restarted and the
exception repeats. In the exception 16 case, we soon get an exception
that can be handled without doing anything special. In the IRQ13 case,
we get an easy to kill hung process.
- assign a separate debugging flag for debugging messages regarding the
valid keyword handling and the holiday file processing
- don't issue a warning in case the holiday file is not found
- enable inclusion of ../Makefile.inc to reenable compiling-in monitor
support into isdnd
- update manual page, add a comma and correct authors mail address
Implement the -r and -w options as `-o ro' and `-o noro', respectively. At
least in -w's case, simply unsetting the correct bit in init_flags was not
enough. The bit may be reset later if, say, the filesystem is marked `ro'
in fstab. The command line option should override the fstab setting, but
did not. The implementation of -r was changed for consistency.
brian [Wed, 2 May 2001 01:08:09 +0000 (01:08 +0000)]
Add a ``digi'' driver.
This driver supports PCI Xr-based and ISA Xem Digiboard cards.
dgm will go away soon if there are no problems reported. For now,
configuring dgm into your kernel warns that you should be using
digi. This driver is probably close to supporting Xi, Xe and Xeve
cards, but I wouldn't expect them to work properly (hardware
donations welcome).
The digi_* pseudo-drivers are not drivers themselves but contain
the BIOS and FEP/OS binaries for various digiboard cards and are
auto-loaded and auto-unloaded by the digi driver at initialisation
time. They *may* be configured into the kernel, but waste a lot
of space if they are. They're intended to be left as modules.
The digictl program is (mainly) used to re-initialise cards that
have external port modules attached such as the PC/Xem.
ken [Tue, 1 May 2001 19:37:25 +0000 (19:37 +0000)]
Fix up unit attention and selection timeout handling in various peripheral
drivers.
- change daprevent() to set CAM_RETRY_SELTO and SF_RETRY_UA when it calls
cam_periph_runccb().
- change the pt(4) driver to ignore unit attentions
- change the targ(4) driver to retry selection timeouts
- clean up a few formatting glitches in the targ(4) driver
dwmalone [Tue, 1 May 2001 10:34:15 +0000 (10:34 +0000)]
Don't give a warning about "proc size mismatch" if no struct were
returned. (This arose on a list about a month ago when someone
found bogus warnings if they used "ps -Uuser_with_no_processes".)
joe [Tue, 1 May 2001 09:25:24 +0000 (09:25 +0000)]
* Add Config.pm to fight situations when perldoc(1) showed a manual page
for a module overridden by BSDPAN instead of the original module.
* Fix wrong manual section numbers in SEE ALSO.
* Add `Revision 42' to the beer-ware license. The BSDPAN author did not
originally get the reference and removed the revision from original
phk's version.
ken [Mon, 30 Apr 2001 21:40:09 +0000 (21:40 +0000)]
Add sense key table entries for DATA PROTECT and BLANK CHECK. This will
prevent scsi_sense_desc() from deferencing a NULL pointer when a drive
happens to return one of these sense keys.
The pkg_version -c output will now call for a "make clean" before and
after the port build/install. The former cleans up "dirty" port work
directories that happen to be lying around, and the latter cleans up
after we're done so that they won't trip up someone else.
Backed out previous commit. It cause massive filesystem corruption,
not to mention a compile-time warning about the critical function
becoming unused, by replacing spec_bmap() with vop_stdbmap().
ntfs seems to have the same bug.
The factor for converting specfs block numbers to physical block
numbers is 1, but vop_stdbmap() uses the bogus factor
btodb(ap->a_vp->v_mount->mnt_stat.f_iosize), which is 16 for ffs with
the default block size of 8K. This factor is bogus even for vop_stdbmap()
-- the correct factor is related to the filesystem blocksize which is not
necessarily the same to the optimal i/o size. vop_stdbmap() was apparently
cloned from nfs where these sizes happen to be the same.
There may also be a problem with a_vp->v_mount being null. spec_bmap()
still checks for this, but I think the checks in specfs are dead code
which used to support block devices.
Make rtprio work again.
- add a missing break which caused RTP_SET to always return EINVAL
- break instead of returning if p_can fails so proc_lock is always
dropped correctly
- only copyin data that is actually needed
- use break instead of goto
- make rtp_to_pri return EINVAL instead of -1 if the values are out
or range so we don't have to translate
Build system:
o Define a RELN_ROOT variable which points to the root of the relnotes
tree (i.e., src/release/doc).
o By default, define DOC_PREFIX in terms of RELN_ROOT; this gives a
bigger chance of finding the doc/ tree without help in the form of
setting DOC_PREFIX on the command line.
o Respect DOCDIR; `make install` works now.
o As part of the move to not maintaining copies of the vnode owning uid
and gid in the ACL, vaccess_acl_posix1e() was changed to accept
explicit file_uid and file_gid as arguments. However, in making the
change, I explicitly checked file_gid against cr->cr_groups[0], rather
than using groupmember, resulting in ACL_GROUP_OBJ entries being
compared to the caller's effective gid only, not the remainder of
its groups. This was recently corrected for the version of the
group call without privilege, but the second test (when privilege is
added) was missed. This change replaces an additiona cr->cr_groups[0]
check with groupmember().
Add a vop_stdbmap(), and make it part of the default vop vector.
Make 7 filesystems which don't really know about VOP_BMAP rely
on the default vector, rather than more or less complete local
vop_nopbmap() implementations.
peter [Sun, 29 Apr 2001 03:19:58 +0000 (03:19 +0000)]
Disable llib. The previous commit does not go anywhere near far enough
to enable this.
1: it was running xlint out of the object directory, which is not
safe (ie: run a 5.x binary on a 4.x world - no libc.so.5, or run an
alpha binary on x86).
2: lint has /usr/libexec/lint1 and /usr/libexec/lint2 hard coded in.
This is the same as problem 1.
3: lint has got /usr/bin/cc hard coded in as well. Also, see problem 1.
There are probably more problems, but these are enough of a showstopper.
This version has a step debugger, which now completely replaces the
old trace feature. Also, we moved all of the FreeBSD-specific MI
code to loader.c, reducing the diff between this and the official
FICL distribution.
Add category definitions (which were missing) for locale categories LC_MESSAGES,
LC_NUMERIC, LC_MONETARY. Information source is POSIX locale defintions
collection at ftp://dkuug.dk/i18n/WG15-collection/