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.
jhb [Wed, 6 Nov 2002 21:07:13 +0000 (21:07 +0000)]
- Move comments regarding flags for dgb(4) over to the MD NOTES file where
dgb(4) lives.
- Move dgb(4) back to where it used to be relative to other drives in the
old NOTES/LINT file.
jhb [Wed, 6 Nov 2002 20:34:38 +0000 (20:34 +0000)]
Add some band-aid casts to quiet warnings. This driver still assumes
that sizeof(int) == sizeof(void *) == 4. However, it also seems that the
hardware assumes this.
jhb [Wed, 6 Nov 2002 19:42:59 +0000 (19:42 +0000)]
Use a bandaid to fix a warning. However, this driver is very, very far
from being MI in any fashion. It currently "assumes" that it can get
a kernel virtual address for a phyiscal address by adding KERNBASE to the
physical address. It also tries to read values out of a the PC BIOS on
all archs. It also uses "manual" inb() and outb()'s to talk to the mcclock
device which just happens to be at that location on both i386 and alpha.
This driver should likely be i386-only.
jhb [Wed, 6 Nov 2002 19:27:09 +0000 (19:27 +0000)]
Make the ar(4) driver i386-only for now. It has lots of sizeof(int) ==
sizeof(void *) assumptions and doesn't use busdma yet (it uses kvtop()
which is not an MI interface).
jmallett [Wed, 6 Nov 2002 14:53:35 +0000 (14:53 +0000)]
Remove what was a temporary bogus assignment of bits of siginfo_t, as it does
not look like the prerequisites to fill it in properly will be in the tree
for the upcoming release, but it's mostly done, so there is no need for these
to stay around to remind us.
jmallett [Wed, 6 Nov 2002 14:01:08 +0000 (14:01 +0000)]
Add a MAINTAINERS entry for make(1), to the make@ alias, which anyone can use
to run patches to make(1) by. Hopefully this will make it easier to get bugs
fixed in make(1), as well as get review by people with experience working on,
in, around, etc., make(1).
Currently it points to two people who have demonstrated maintainership (ru@
and myself) and one person interested in helping (alane@). That list is
subject to expansion and contraction.
dougb [Wed, 6 Nov 2002 09:21:39 +0000 (09:21 +0000)]
Import the latest hints file from Internic. The most important change
is that J has moved, however I'm sure you'll all be very disappointed
to hear that you can no longer retrieve this file via gopher.
marcel [Wed, 6 Nov 2002 03:36:57 +0000 (03:36 +0000)]
Check the FSLABEL argument and invoke the generic doFS.sh script
if it's not defined as efi. This makes sure we create a proper
MFS root filesystem and still allow the boot disk to be EFI
based.
At this time EFI auto boot works and we're properly loading the
MFS root file system. Time to create drivers.conf and get this
show on the road!
kbyanc [Tue, 5 Nov 2002 18:52:25 +0000 (18:52 +0000)]
Spotted a couple of places where the socket buffer's counters were being
manipulated directly (rather than using sballoc()/sbfree()); update them
to tweak the new sb_ctl field too.
marcel [Tue, 5 Nov 2002 18:06:01 +0000 (18:06 +0000)]
o Introduce variable DOFS_SH to hold the path of the doFS.sh.
o ia64: Set DOFS_SH to point to an alternate version.
o ia64: Lower BIGBOOTSIZE from 120M (LS-120) to ~5M.
o ia64: Set BIGBOOTLABEL to efi so that we can check for it
in the alternate doFS.sh script. If the label is not efi, we
can invoke the generic doFS.sh.
rwatson [Tue, 5 Nov 2002 17:52:42 +0000 (17:52 +0000)]
Update policy modules for changes in arguments associated with support
for label access on the interpreter, not just the shell script. No
policies currently present in the system rely on the new labels.
rwatson [Tue, 5 Nov 2002 17:51:56 +0000 (17:51 +0000)]
Bring in two sets of changes:
(1) Permit userland applications to request a change of label atomic
with an execve() via mac_execve(). This is required for the
SEBSD port of SELinux/FLASK. Attempts to invoke this without
MAC compiled in result in ENOSYS, as with all other MAC system
calls. Complexity, if desired, is present in policy modules,
rather than the framework.
(2) Permit policies to have access to both the label of the vnode
being executed as well as the interpreter if it's a shell
script or related UNIX nonsense. Because we can't hold both
vnode locks at the same time, cache the interpreter label.
SEBSD relies on this because it supports secure transitioning
via shell script executables. Other policies might want to
take both labels into account during an integrity or
confidentiality decision at execve()-time.
rwatson [Tue, 5 Nov 2002 15:11:33 +0000 (15:11 +0000)]
Assert that appropriate vnodes are locked in mac_execve_will_transition().
Allow transitioning to be twiddled off using the process and fs enforcement
flags, although at some point this should probably be its own flag.
rwatson [Tue, 5 Nov 2002 14:57:49 +0000 (14:57 +0000)]
Hook up the mac_will_execve_transition() and mac_execve_transition()
entrypoints, #ifdef MAC. The supporting logic already existed in
kern_mac.c, so no change there. This permits MAC policies to cause
a process label change as the result of executing a binary --
typically, as a result of executing a specially labeled binary.
For example, the SEBSD port of SELinux/FLASK uses this functionality
to implement TE type transitions on processes using transitioning
binaries, in a manner similar to setuid. Policies not implementing
a notion of transition (all the ones in the tree right now) require
no changes, since the old label data is copied to the new label
via mac_create_cred() even if a transition does occur.