rwatson [Fri, 8 Nov 2002 19:00:17 +0000 (19:00 +0000)]
To reduce per-return overhead of userret(), call into
mac_thread_userret() only if PS_MACPEND is set in the process AST mask.
This avoids the cost of the entry point in the common case, but
requires policies interested in the userret event to set the flag
(protected by the scheduler lock) if they do want the event. Since
all the policies that we're working with which use mac_thread_userret()
use the entry point only selectively to perform operations deferred
for locking reasons, this maintains the desired semantics.
bmah [Fri, 8 Nov 2002 18:36:04 +0000 (18:36 +0000)]
Connect the ia64 versions of the release documentation to the RELNOTESng
build.
This will give ia64 folks the chance to help flesh these out, and
also ensure that (when the time comes) ia64 releases with documentation
won't fall over due to missing RELNOTESng files.
jhb [Fri, 8 Nov 2002 18:27:30 +0000 (18:27 +0000)]
- Change the ATM stack functions to use intptr_t instead of int for opaque
arguments.
- Fix a few other places that assumed that sizeof(int) == sizeof(void *).
pdeuskar [Fri, 8 Nov 2002 18:14:17 +0000 (18:14 +0000)]
- Set RS (Report Status) bit on all descriptors of a packet instead of just the last one.
- Set RDTR to zero by default instead of 28.
- Fixed a problem with TX hangs with jumbo frames when number of fragments in the mbuf chain
is large.
- Added support for 82540EP based cards.
rwatson [Fri, 8 Nov 2002 18:04:00 +0000 (18:04 +0000)]
Add an explicit execlabel argument to exec-related MAC policy entry
points, rather than relying on policies to grub around in the
image activator instance structure.
gordon [Fri, 8 Nov 2002 17:06:15 +0000 (17:06 +0000)]
Diff reduction to NetBSD:
Fix a minor grammer nit.
Get rid of _echo that uses logger and just call logger in the 3 routines
that need it.
Add a comment referencing rc.conf(5) in the case of an incorrectly set
variable.
This pulls rc.subr up to 1.51 of rc.subr. I skipped 1.49 (systrace support)
since I don't have systrace.
jmallett [Fri, 8 Nov 2002 16:59:11 +0000 (16:59 +0000)]
Convert some broken cases where Error is called, but we try to continue,
to Fatal errors, because the logic that we use to try to continue is far
too broken, and makes things look and act weird, because we end up pointing
past the end of a buffer boundry into freed memory in the caller, as we
don't come close to setting the lengthPtr to a sane value.
Reviewed by: make@
(This only changes failure cases which would have died horrid deaths to
explicit clean death failure cases.)
jhb [Fri, 8 Nov 2002 15:16:38 +0000 (15:16 +0000)]
Remove #ifdef DEBUG signal debugging code brought over from NetBSD with the
original signal handling code. It doesn't compile and it seems the rest of
the infrastructure was never brought over from NetBSD.
rwatson [Fri, 8 Nov 2002 15:01:28 +0000 (15:01 +0000)]
Update acl.3 to xref getfacl(1) and setfacl(1), the recommended tools for
manipulating file ACLs. Update the status of the implementation a bit,
update the copyright, etc.
jhb [Fri, 8 Nov 2002 15:01:02 +0000 (15:01 +0000)]
Wrap a device_printf() that violates bus space abstractions to figure out
if it's IO port resource is IO or memory mapped for the sake of a printf
using i386-specific values in #ifdef __i386__.
mjacob [Fri, 8 Nov 2002 13:58:48 +0000 (13:58 +0000)]
Make changes such that the kernel will now fit on floppy #1.
This involves moving all networking drivers to floppy 2, all RAID
nfsclient && cd9660 to floppy 3 (and adding ispfw).
COMPAT_FREEBSD4 had to come back, maxusers is down to 2.
AHC is out until somebody can make it a module for alpha.
TurboLaser is out because it rarely has a floppy and probably
no longer works *anyway*.
There's probably some cleanup that can be done because I was told
that things in drivers.conf don't have to be removed via dokern.sh,
but because I formally tested the release build with this version
and don't want to spend another half day on it, it's going in.
I'm sure we'll have to do some further changes prior to release.
NB: Not tested end to end yet because I've been told that sysinstall
doesn't yet work.
bmah [Fri, 8 Nov 2002 04:52:04 +0000 (04:52 +0000)]
Try to make this document reflect reality better:
o All of the Q&A entries in this section were i386-specific, so make
these conditional on building for that platform. If
non-i386-platforms need similar Q&A lists, they can add their own to
this file.
o Coalesce the two Q&A sections into one.
o Correct some device names (wd(4) devices have not existed for quite
some time).
o Get rid of a number of obsolete entries (suggested by jhb).
tmm [Thu, 7 Nov 2002 23:57:17 +0000 (23:57 +0000)]
Move the definitions of the hw.physmem, hw.usermem and hw.availpages
sysctls to MI code; this reduces code duplication and makes all of them
available on sparc64, and the latter two on powerpc.
The semantics by the i386 and pc98 hw.availpages is slightly changed:
previously, holes between ranges of available pages would be included,
while they are excluded now. The new behaviour should be more correct
and brings i386 in line with the other architectures.
Move physmem to vm/vm_init.c, where this variable is used in MI code.
mux [Thu, 7 Nov 2002 21:56:05 +0000 (21:56 +0000)]
- Fix a bunch of casts to long which were truncating off_t's.
- Remove the comments which were justifying this by the fact
that we don't have %q in the kernel, this was probably right
back in time, but we now have %q, and we even have better to
print those types (%j).
jhb [Thu, 7 Nov 2002 21:52:51 +0000 (21:52 +0000)]
Explicitly cast daddr_t's to long long's when printing them since daddr_t
is not long long on all archs. (They happen to be long's on 64-bit arch's
and gcc considers that significant enough to warn about it.) These should
probably be uintmax_t but I didn't feel like adding all the extra includes.
jhb [Thu, 7 Nov 2002 21:19:47 +0000 (21:19 +0000)]
Print pointers with %p instead of casting them to an unsigned int and
then printing them with 0x%x which doesn't work when sizeof(void *) >
sizeof(int).
jhb [Thu, 7 Nov 2002 21:13:15 +0000 (21:13 +0000)]
Fix lots of places that assume sizeof(int) == sizeof(void *). Most of
these were cosmetic. However, at least two of these changes fix bugs
where a (fake) pointer to a RX descriptor was added to the physical
memory start address with the cast in the wrong place resulting in
rxdesc[pmem_start] instead of (uintptr_t)rxdesc + pmem_start.
rwatson [Thu, 7 Nov 2002 20:46:37 +0000 (20:46 +0000)]
Do a bit more work in the aio code to simulate the credential environment
of the original AIO request: save and restore the active thread credential
as well as using the file credential, since MAC (and some other bits of
the system) rely on the thread credential instead of/as well as the
file credential. In brief: cache td->td_ucred when the AIO operation
is queued, temporarily set and restore the kernel thread credential,
and release the credential when done. Similar to ktrace credential
management.
thomas [Thu, 7 Nov 2002 19:53:29 +0000 (19:53 +0000)]
Factor out the code that determines whether a message must be skipped
as a consequence of a host or program name specification into a common
function, skip_pmessage.
alc [Thu, 7 Nov 2002 18:33:55 +0000 (18:33 +0000)]
Simplify and optimize pmap_object_init_pt(). More specifically,
take advantage of the fact that the vm object's list of pages is
now ordered to reduce the overhead of finding the desired set of
pages to be mapped. (See revision 1.215 of vm/vm_page.c.)
tmm [Thu, 7 Nov 2002 16:07:46 +0000 (16:07 +0000)]
Add two new workaround for firmware anomalies:
1. At least some Netra t1 models have PCI buses with no associated
interrupt map, but obviously expect the PCI swizzle to be done with
the interrupt number from the higher level as intpin. In this case,
the mapping also needs to continue at parent bus nodes.
To handle that, add a quirk table based on the "name" property of
the root node to avoid breaking other boxen. This property is now
retrieved and printed at boot.
2. On SPARCengine Ultra AX machines, interrupt numbers are not mapped
at all, and full interrupt numbers (not just INOs) are given in
the interrupt properties. This is more or less cosmetical; the
PCI interrupt numbers would be wrong, but the psycho resource
allocation method would pass the right numbers on anyway.
iedowse [Thu, 7 Nov 2002 16:04:07 +0000 (16:04 +0000)]
Properly fix the occassional random crash issue that revision 1.142
just limited to the DEVICE_POLLING case. This removes the FXP_RFA_RNRMARK
hack, and replaces it with a softc flag that is used to record when
the handling of a no-resource condition was deferred due to running
out of DEVICE_POLLING cycles. This was tested on -stable, but the
code is essentially the same as in -current. It should only affect
the case where DEVICE_POLLING is defined.
The details of the mechanism behind the crashes are still uncertain
but the most likely cause seems to be some kind of hardware confusion
when the no-resource recovery code is accidentally invoked while
the receiver is still active. This could have happened if the
hardware left the 0x4000 bit of the RFA status word set. The comments
in the commit log for revision 1.142 stating that the driver could
clash with the hardware writing to this status word were not correct.
jhb [Thu, 7 Nov 2002 15:01:12 +0000 (15:01 +0000)]
Create a MACHINE_ARCH == i386 section that first lists modules common
to both i386 and pc98 and then uses MACHINE subsections to list modules
specific to i386/i386 and i386/pc98.
jhb [Thu, 7 Nov 2002 14:39:21 +0000 (14:39 +0000)]
Get this closer to working. The Write_Disk() function's for loop needed
to use the same start condition as the i386 version. However, since
Alpha's only have one fake "slice" from sysinstall's perspective we don't
need to use a loop, but can just write out the BSD label in the first
fake "slice".
davidxu [Thu, 7 Nov 2002 01:34:23 +0000 (01:34 +0000)]
1.Fix smp race between kernel vm86 BIOS calling and userland vm86 mode code,
remove global variable in_vm86call, set vm86 calling flag in PCB flags.
2.Fix vm86 BIOS calling preempted problem by changing vm86_lock mutex type
from MTX_DEF to MTX_SPIN. vm86pcb is not remembered in thread struct,
when the thread calling vm86 BIOS is preempted by interrupt thread,
and later switching back to the thread would cause incorrect context be
loaded into CPU registers, this leads to kernel crash.
jhb [Wed, 6 Nov 2002 22:30:33 +0000 (22:30 +0000)]
Make firewire i386-only for now. It doesn't quite handle machines with
64-bit address spaces yet. Pointy hat to myself for sticking it in the MI
NOTES file to begin with.
jhb [Wed, 6 Nov 2002 22:18:26 +0000 (22:18 +0000)]
Wrap ()'s around an argument before casting it to a void *. If the
argument is an expression you can end up casting part of it to void *.
This resulted in bogus warnings about pointer arith using void *'s for
the ep(4) driver.
jhb [Wed, 6 Nov 2002 21:42:42 +0000 (21:42 +0000)]
Move the drm code to the i386 MD NOTES file. It can be added to other MD
NOTES files if desired, but this code is not MI on FreeBSD. The Alpha
support is Linux specific and does not compile on FreeBSD.
joe [Wed, 6 Nov 2002 21:37:21 +0000 (21:37 +0000)]
Packed structures are defined differently in older gcc's, like the one
currently in -stable. Put the exception into usb.h instead of having it
hard coded in the sound code.